78 lines
2.2 KiB
PHP
78 lines
2.2 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace Belevo\EnelixUtils\Tests;
|
|
|
|
use Belevo\EnelixUtils\VGTRegler;
|
|
use PHPUnit\Framework\TestCase;
|
|
|
|
require_once __DIR__ . '/../VGTSchnittstelle/libs/VGTRegler.php';
|
|
|
|
final class VGTReglerTest extends TestCase
|
|
{
|
|
public function testPVActivateUndStopBleibenKompatibel(): void
|
|
{
|
|
self::assertSame(
|
|
4000.0,
|
|
VGTRegler::zielwert(0, 'activate', 4000.0, 10000.0, 0.0, 0.0, 0.0, 0.0, 0.0, 100.0)
|
|
);
|
|
self::assertSame(
|
|
10000.0,
|
|
VGTRegler::zielwert(0, 'stop', 4000.0, 10000.0, 0.0, 0.0, 0.0, 0.0, 0.0, 100.0)
|
|
);
|
|
}
|
|
|
|
public function testBatterieActivateInvertiertDenSetpointWieEnelixEins(): void
|
|
{
|
|
self::assertSame(
|
|
-3500.0,
|
|
VGTRegler::zielwert(1, 'activate', 3500.0, 10000.0, 50.0, 50.0, 2500.0, 2500.0, 10.0, 90.0)
|
|
);
|
|
}
|
|
|
|
public function testRestoreRegeltAufZielLadezustand(): void
|
|
{
|
|
self::assertSame(
|
|
2500.0,
|
|
VGTRegler::zielwert(1, 'restore', 0.0, 10000.0, 40.0, 50.0, 2500.0, 3000.0, 10.0, 90.0)
|
|
);
|
|
self::assertSame(
|
|
-3000.0,
|
|
VGTRegler::zielwert(1, 'restore', 0.0, 10000.0, 60.0, 50.0, 2500.0, 3000.0, 10.0, 90.0)
|
|
);
|
|
}
|
|
|
|
public function testLadezustandsgrenzenStoppenFalscheRichtung(): void
|
|
{
|
|
self::assertSame(
|
|
0.0,
|
|
VGTRegler::zielwert(1, 'activate', 3000.0, 10000.0, 10.0, 50.0, 2500.0, 2500.0, 10.0, 90.0)
|
|
);
|
|
}
|
|
|
|
public function testFesteMQTTSchnittstelleBleibtImModulErhalten(): void
|
|
{
|
|
$modul = file_get_contents(
|
|
__DIR__ . '/../VGTSchnittstelle/module.php'
|
|
);
|
|
self::assertNotFalse($modul);
|
|
foreach ([
|
|
'feedback-request/',
|
|
'feedback-response/',
|
|
'remote-control-request/',
|
|
'remote-control-response/',
|
|
"'power_setpoint'",
|
|
"'strategy'",
|
|
"'power_production'",
|
|
"'is_ready'",
|
|
"'is_running'",
|
|
"'state_of_charge'",
|
|
"'min_soc'",
|
|
"'max_soc'",
|
|
] as $bestandteil) {
|
|
self::assertStringContainsString($bestandteil, $modul);
|
|
}
|
|
}
|
|
}
|