feat(manager): Energieaufzeichnung und Visualisierungen integrieren
Tests / test (push) Successful in 47s
Tests / test (push) Successful in 47s
This commit is contained in:
@@ -0,0 +1,66 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Belevo\EnelixEMS\Tests;
|
||||
|
||||
use Belevo\EnelixEMS\EnergieMessung;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
final class EnergieMessungTest extends TestCase
|
||||
{
|
||||
public function testIntegriertVierLeistungenMitVorzeichenrichtung(): void
|
||||
{
|
||||
$werte = EnergieMessung::energieDeltas([
|
||||
'PV' => 7200.0,
|
||||
'Haus' => 3600.0,
|
||||
'Netz' => -1800.0,
|
||||
'Batterie' => 900.0,
|
||||
], 300);
|
||||
|
||||
self::assertEqualsWithDelta(0.6, $werte['PVEnergie'], 0.000001);
|
||||
self::assertEqualsWithDelta(0.3, $werte['Hausenergie'], 0.000001);
|
||||
self::assertSame(0.0, $werte['NetzbezugEnergie']);
|
||||
self::assertEqualsWithDelta(0.15, $werte['EinspeisungEnergie'], 0.000001);
|
||||
self::assertEqualsWithDelta(0.075, $werte['BatterieLadenEnergie'], 0.000001);
|
||||
self::assertSame(0.0, $werte['BatterieEntladenEnergie']);
|
||||
}
|
||||
|
||||
public function testTrenntBezugUndBatterieentladung(): void
|
||||
{
|
||||
$werte = EnergieMessung::energieDeltas([
|
||||
'PV' => -10.0,
|
||||
'Haus' => -10.0,
|
||||
'Netz' => 1000.0,
|
||||
'Batterie' => -2000.0,
|
||||
], 3600);
|
||||
|
||||
self::assertSame(0.0, $werte['PVEnergie']);
|
||||
self::assertSame(0.0, $werte['Hausenergie']);
|
||||
self::assertSame(1.0, $werte['NetzbezugEnergie']);
|
||||
self::assertSame(0.0, $werte['EinspeisungEnergie']);
|
||||
self::assertSame(0.0, $werte['BatterieLadenEnergie']);
|
||||
self::assertSame(2.0, $werte['BatterieEntladenEnergie']);
|
||||
}
|
||||
|
||||
public function testBerechnetHausverbrauchAusDerAnlagenbilanz(): void
|
||||
{
|
||||
self::assertSame(2700.0, EnergieMessung::hausleistung(4200.0, -800.0, 700.0));
|
||||
self::assertSame(3500.0, EnergieMessung::hausleistung(2000.0, 500.0, -1000.0));
|
||||
self::assertSame(0.0, EnergieMessung::hausleistung(500.0, -1200.0, 0.0));
|
||||
}
|
||||
|
||||
public function testIgnoriertUngueltigeDauerUndNichtEndlicheWerte(): void
|
||||
{
|
||||
$werte = EnergieMessung::energieDeltas([
|
||||
'PV' => INF,
|
||||
'Haus' => NAN,
|
||||
'Netz' => 1000.0,
|
||||
'Batterie' => -1000.0,
|
||||
], -1);
|
||||
|
||||
foreach ($werte as $wert) {
|
||||
self::assertSame(0.0, $wert);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user