---
title: "Testovanie — Trading Analytics for Laravel | Roundly"
description: "Testujte svoje prehľady na ručne vytvorených obchodoch — bez databázy a bez náhradných implementácií — a overujte presné reťazce."
url: https://roundly-consulting.com/sk/open-source/navody/trading-analytics-for-laravel/testovanie
language: sk
---

[Všetky balíky](https://roundly-consulting.com/sk/open-source.md)

[Trading Analytics for Laravel](https://roundly-consulting.com/sk/open-source/navody/trading-analytics-for-laravel.md)

# Testovanie

TradingAnalytics::fake() neexistuje: engine je čistý výpočet bez vedľajších účinkov — bez databázy, HTTP či frontu —, takže test mu odovzdá potrebné obchody a overí čísla. Vytvorte niekoľko obchodov cez Trade::make(), v poradí podľa času zatvorenia, a overujte presné reťazce; výstup bcmath je deterministický:

```php
use RoundlyConsulting\TradingAnalytics\DataTransferObjects\Trade;
use RoundlyConsulting\TradingAnalytics\Facades\TradingAnalytics;

it('reports realized p&l, win ratio and drawdown', function () {
    $trades = [
        Trade::make('BTC', 'USD', '40000', '42000', '0.5', 'buy', '2024-03-01 09:00', '10', '2024-03-01 15:00'),
        Trade::make('ETH', 'USD', '3000', '3150', '2', 'sell', '2024-03-02 10:00', '6', '2024-03-02 12:00'),
    ];

    $analytics = TradingAnalytics::for($trades)->scale(2)->calculate();

    expect((string) $analytics->realizedProfitAndLoss->gross->global->total->total)->toBe('700.00')
        ->and((string) $analytics->realizedProfitAndLoss->net->global->total->total)->toBe('684.00')
        ->and((string) $analytics->wins->winRatio->global->total)->toBe('0.50')
        ->and((string) $analytics->maxDrawdown->value)->toBe('306.00');
});
```

V testoch nastavte ->scale(), aby boli očakávané reťazce krátke, a výsledky pred porovnaním pretypujte cez (string). Fasáda potrebuje kontajner Laravelu; v čistom PHPUnit teste bez spustenej aplikácie spustite priamo triedu enginu — použijú sa vstavané predvolené hodnoty:

```php
use Illuminate\Support\LazyCollection;
use RoundlyConsulting\TradingAnalytics\Analytics;

// No booted app (plain PHPUnit): run the engine class itself
$analytics = Analytics::for(LazyCollection::make($trades))->scale(2)->calculate();
```

## Testy samotného balíka

Balík obsahuje sadu testov v Peste so statickou analýzou: end-to-end test, ktorý uloží 600 obchodov z referenčného datasetu do SQLite a každú hlavnú metriku porovná so zafixovanými očakávanými hodnotami, zafixované referenčné vektory, ručne prepočítané metriky a streamovací test, ktorý pošle 50 000 obchodov cez všetky kalkulátory — z generátora aj z query buildera po 500-riadkových stránkach — pri stálej pamäti. Spustíte ju v adresári balíka:

```bash
composer test
```

## Prejavte lásku k open source

Tento balík je zadarmo pod licenciou MIT. Ak vám šetrí čas, jednorazový príspevok alebo členstvo na Patreone nám pomôže ho ďalej udržiavať, testovať a dokumentovať.

[Ďalšie spôsoby podpory vrátane kryptomien](https://roundly-consulting.com/sk/podporte-nas.md)

Odoslaním daru súhlasíte s našimi [podmienkami prijímania darov](https://roundly-consulting.com/sk/podmienky-darov.md).

[Podporte našu open-source prácu (otvorí sa v novej karte)](https://donate.stripe.com/dRmeVe8FX5PF1Qd9pXcEw00) [Pridajte sa k nám na Patreone (otvorí sa v novej karte)](https://www.patreon.com/cw/roundly)

## Chcete to zabudovať do svojho produktu?

Naše balíky integrujeme do zákazkových Laravel a AI riešení. Napíšte nám, na čom pracujete, a ozveme sa do 48 hodín.

[Ponuka do 48 hodín](https://roundly-consulting.com/sk/kontakt.md) [Prezrieť všetky balíky](https://roundly-consulting.com/sk/open-source/navody/trading-analytics-for-laravel.md)
