This commit is contained in:
@@ -258,6 +258,67 @@ final class ManagerReglerTest extends TestCase
|
||||
self::assertSame(0, $ergebnis['Restabweichung_W']);
|
||||
}
|
||||
|
||||
public function testPvBetriebNutztBeiPositivemBudgetKeineNegativeLeistungsstufe(): void
|
||||
{
|
||||
$ergebnis = ManagerRegler::verteile(
|
||||
0.0,
|
||||
500.0,
|
||||
[
|
||||
$this->verbraucher(10, 0, [-1000, 5000], 0),
|
||||
$this->verbraucher(20, 1, [0, 3000], 0),
|
||||
],
|
||||
'PrioritaetPV'
|
||||
);
|
||||
|
||||
self::assertSame(500, $ergebnis['Verteilbudget_W']);
|
||||
self::assertSame([10 => 5000, 20 => 0], $ergebnis['Sollwerte']);
|
||||
self::assertGreaterThanOrEqual(0, $ergebnis['Sollwerte'][10]);
|
||||
self::assertSame(-4500, $ergebnis['Restabweichung_W']);
|
||||
}
|
||||
|
||||
public function testPvBetriebNutztNegativeLeistungErstBeiTatsaechlichemDefizit(): void
|
||||
{
|
||||
$ergebnis = ManagerRegler::verteile(
|
||||
1000.0,
|
||||
0.0,
|
||||
[
|
||||
$this->verbraucher(
|
||||
10,
|
||||
0,
|
||||
[['Von_W' => -5000, 'Bis_W' => 5000]],
|
||||
0
|
||||
),
|
||||
$this->verbraucher(20, 1, [0, 3000], 0),
|
||||
],
|
||||
'PrioritaetPV'
|
||||
);
|
||||
|
||||
self::assertSame(-1000, $ergebnis['Verteilbudget_W']);
|
||||
self::assertSame([10 => -1000, 20 => 0], $ergebnis['Sollwerte']);
|
||||
self::assertSame(0, $ergebnis['Restabweichung_W']);
|
||||
}
|
||||
|
||||
public function testFestgehaltenerVerbraucherBilanziertIstUndBehaeltSollwert(): void
|
||||
{
|
||||
$festgehalten = $this->verbraucher(10, 0, [0, 3000, 5000], 2000, false);
|
||||
$festgehalten['Daten']['Zustand'][0]['Wert'] = 3000;
|
||||
|
||||
$ergebnis = ManagerRegler::verteile(
|
||||
0.0,
|
||||
3000.0,
|
||||
[
|
||||
$festgehalten,
|
||||
$this->verbraucher(20, 1, [['Von_W' => 0, 'Bis_W' => 5000]], 0),
|
||||
],
|
||||
'PrioritaetPV'
|
||||
);
|
||||
|
||||
self::assertSame(5000, $ergebnis['Verteilbudget_W']);
|
||||
self::assertSame(2000, $ergebnis['NichtSteuerbar_W']);
|
||||
self::assertSame([10 => 3000, 20 => 3000], $ergebnis['Sollwerte']);
|
||||
self::assertSame(0, $ergebnis['Restabweichung_W']);
|
||||
}
|
||||
|
||||
public function testFehlendeIstleistungFaelltAufAngenommenenSollwertZurueck(): void
|
||||
{
|
||||
$verbraucher = $this->verbraucher(10, 0, [3000], null, false);
|
||||
|
||||
Reference in New Issue
Block a user