|
7 | 7 | */ |
8 | 8 | package com.powsybl.iidm.network.impl; |
9 | 9 |
|
| 10 | +import com.powsybl.iidm.network.Generator; |
| 11 | +import com.powsybl.iidm.network.Network; |
| 12 | +import com.powsybl.iidm.network.ReactiveCapabilityCurve; |
10 | 13 | import com.powsybl.iidm.network.ReactiveCapabilityCurve.Point; |
11 | 14 | import com.powsybl.iidm.network.impl.ReactiveCapabilityCurveImpl.PointImpl; |
| 15 | +import com.powsybl.iidm.network.test.FictitiousSwitchFactory; |
| 16 | +import org.junit.jupiter.api.BeforeEach; |
12 | 17 | import org.junit.jupiter.api.Test; |
13 | 18 | import org.junit.jupiter.params.ParameterizedTest; |
14 | 19 | import org.junit.jupiter.params.provider.ValueSource; |
15 | 20 |
|
16 | 21 | import java.util.TreeMap; |
17 | 22 |
|
| 23 | +import static com.powsybl.iidm.network.ReactiveLimitsKind.CURVE; |
18 | 24 | import static org.junit.jupiter.api.Assertions.assertEquals; |
19 | 25 | /** |
20 | 26 | * |
@@ -53,6 +59,32 @@ void testReactiveCapabilityCurve() { |
53 | 59 | assertEquals(400.0, curve.getMaxQ(1000.0), 0.0); |
54 | 60 | } |
55 | 61 |
|
| 62 | + @Test |
| 63 | + void testReactiveCapabilityCurveWithInvertedMinQMaxQ() { |
| 64 | + |
| 65 | + Network network = FictitiousSwitchFactory.create(); |
| 66 | + Generator generator = network.getGenerator("CB"); |
| 67 | + |
| 68 | + ReactiveCapabilityCurve reactiveCapabilityCurve = generator.newReactiveCapabilityCurve() |
| 69 | + .beginPoint() |
| 70 | + .setP(1.0) |
| 71 | + .setMaxQ(5.0) |
| 72 | + .setMinQ(1.0) |
| 73 | + .endPoint() |
| 74 | + .beginPoint() |
| 75 | + .setP(100.0) |
| 76 | + .setMaxQ(2.0) // minQ > maxQ : this is incorrect |
| 77 | + .setMinQ(10.0) |
| 78 | + .endPoint() |
| 79 | + .add(); |
| 80 | + |
| 81 | + assertEquals(1.0, reactiveCapabilityCurve.getMinQ(1.0), 0.0); |
| 82 | + assertEquals(5.0, reactiveCapabilityCurve.getMaxQ(1.0), 0.0); |
| 83 | + //minQ and maxQ have been put in the right order : |
| 84 | + assertEquals(2.0, reactiveCapabilityCurve.getMinQ(100.0), 0.0); |
| 85 | + assertEquals(10.0, reactiveCapabilityCurve.getMaxQ(100.0), 0.0); |
| 86 | + } |
| 87 | + |
56 | 88 | @ParameterizedTest |
57 | 89 | @ValueSource(booleans = {true, false}) |
58 | 90 | void testReactiveCapabilityCurveWithReactiveLimitsExtrapolation(boolean extrapolate) { |
|
0 commit comments