8
8
import fr .sncf .osrd .envelope .part .EnvelopePart ;
9
9
import fr .sncf .osrd .envelope .part .EnvelopePartBuilder ;
10
10
import fr .sncf .osrd .envelope .part .constraints .EnvelopeConstraint ;
11
+ import fr .sncf .osrd .envelope_sim .EnvelopeProfile ;
11
12
import org .junit .jupiter .api .Test ;
12
13
import org .junit .jupiter .params .ParameterizedTest ;
13
14
import org .junit .jupiter .params .provider .ValueSource ;
@@ -66,6 +67,7 @@ void testConstantSpeedOverlay() {
66
67
var builder = OverlayEnvelopeBuilder .forward (constSpeedEnvelope );
67
68
{
68
69
var partBuilder = new EnvelopePartBuilder ();
70
+ partBuilder .setAttr (EnvelopeProfile .COASTING );
69
71
var overlayBuilder = new ConstrainedEnvelopePartBuilder (
70
72
partBuilder , new EnvelopeConstraint (constSpeedEnvelope , CEILING ));
71
73
overlayBuilder .initEnvelopePart (3 , constSpeedEnvelope .interpolateSpeed (3 ), 1 );
@@ -94,6 +96,7 @@ void testMultipleOverlays() {
94
96
95
97
{
96
98
var partBuilder = new EnvelopePartBuilder ();
99
+ partBuilder .setAttr (EnvelopeProfile .COASTING );
97
100
var overlayBuilder = new ConstrainedEnvelopePartBuilder (
98
101
partBuilder , new EnvelopeConstraint (constSpeedEnvelope , CEILING ));
99
102
overlayBuilder .initEnvelopePart (0 , constSpeedEnvelope .interpolateSpeed (0 ), 1 );
@@ -104,6 +107,7 @@ void testMultipleOverlays() {
104
107
105
108
{
106
109
var partBuilder = new EnvelopePartBuilder ();
110
+ partBuilder .setAttr (EnvelopeProfile .COASTING );
107
111
var overlayBuilder = new ConstrainedEnvelopePartBuilder (
108
112
partBuilder , new EnvelopeConstraint (constSpeedEnvelope , CEILING ));
109
113
overlayBuilder .initEnvelopePart (6 , constSpeedEnvelope .interpolateSpeed (6 ), 1 );
@@ -123,7 +127,7 @@ void testMultipleOverlays() {
123
127
@ ValueSource (booleans = {false , true })
124
128
void testSymmetricOverlay (boolean backwardDir ) {
125
129
var constSpeedPart = EnvelopePart .generateTimes (
126
- List .of (TestAttr .B ),
130
+ List .of (TestAttr .B , EnvelopeProfile . CONSTANT_SPEED ),
127
131
new double []{0 , 3.5 , 8 },
128
132
new double []{2 , 2 , 2 }
129
133
);
@@ -134,6 +138,7 @@ void testSymmetricOverlay(boolean backwardDir) {
134
138
{
135
139
var partBuilder = new EnvelopePartBuilder ();
136
140
partBuilder .setAttr (TestAttr .A );
141
+ partBuilder .setAttr (EnvelopeProfile .COASTING );
137
142
var overlayBuilder = new ConstrainedEnvelopePartBuilder (
138
143
partBuilder , new EnvelopeConstraint (constSpeedEnvelope , CEILING ));
139
144
overlayBuilder .initEnvelopePart (overlayPoints [0 ], 2 , backwardDir ? -1 : 1 );
@@ -149,7 +154,7 @@ void testSymmetricOverlay(boolean backwardDir) {
149
154
var expectedFirst = constSpeedPart .sliceBeginning (constSpeedPart .findLeft (3 ), 3 , Double .NaN );
150
155
EnvelopeTestUtils .assertEquals (expectedFirst , envelope .get (0 ));
151
156
var expectedMid = EnvelopePart .generateTimes (
152
- List .of (TestAttr .A ),
157
+ List .of (TestAttr .A , EnvelopeProfile . COASTING ),
153
158
new double []{3 , 4 , 5 },
154
159
new double []{2 , 1 , 2 }
155
160
);
@@ -190,7 +195,8 @@ void testBaseCurveSplit(boolean isBackward) {
190
195
var cursor = new EnvelopeCursor (baseEnvelope , isBackward );
191
196
var positions = new double [] { 3 , 4 , 6 };
192
197
var speeds = new double [] { 4 , 3 , 4 };
193
- builder .addPart (EnvelopeTestUtils .buildContinuous (cursor , List .of (), positions , speeds , isBackward ));
198
+ builder .addPart (EnvelopeTestUtils .buildContinuous (cursor , List .of (EnvelopeProfile .COASTING ), positions , speeds ,
199
+ isBackward ));
194
200
var envelope = builder .build ();
195
201
assertEquals (4 , envelope .size ());
196
202
assertTrue (envelope .continuous );
@@ -233,6 +239,7 @@ void testDiscontinuityOverlayEnd() {
233
239
234
240
{
235
241
var partBuilder = new EnvelopePartBuilder ();
242
+ partBuilder .setAttr (EnvelopeProfile .BRAKING );
236
243
var overlayBuilder = new ConstrainedEnvelopePartBuilder (
237
244
partBuilder ,
238
245
new EnvelopeConstraint (baseEnvelope , CEILING )
@@ -279,7 +286,8 @@ void testLongOverlay(boolean reverse) {
279
286
var cursor = new EnvelopeCursor (baseEnvelope , reverse );
280
287
var positions = new double [] { 3 , 4 , 5 , 6 };
281
288
var speeds = new double [] { 4 , 3 , 3 , 4 };
282
- builder .addPart (EnvelopeTestUtils .buildContinuous (cursor , List .of (), positions , speeds , reverse ));
289
+ builder .addPart (EnvelopeTestUtils .buildContinuous (cursor , List .of (EnvelopeProfile .COASTING ), positions , speeds ,
290
+ reverse ));
283
291
var envelope = builder .build ();
284
292
assertEquals (4 , envelope .size ());
285
293
assertTrue (envelope .continuous );
@@ -296,6 +304,7 @@ void testUnlikelyIntersection() {
296
304
297
305
{
298
306
var partBuilder = new EnvelopePartBuilder ();
307
+ partBuilder .setAttr (EnvelopeProfile .COASTING );
299
308
var overlayBuilder = new ConstrainedEnvelopePartBuilder (
300
309
partBuilder ,
301
310
new EnvelopeConstraint (inputEnvelope , CEILING )
@@ -322,6 +331,7 @@ void testIncreasingContinuousOverlay() {
322
331
323
332
{
324
333
var partBuilder = new EnvelopePartBuilder ();
334
+ partBuilder .setAttr (EnvelopeProfile .ACCELERATING );
325
335
var overlayBuilder = new ConstrainedEnvelopePartBuilder (
326
336
partBuilder ,
327
337
new EnvelopeConstraint (inputEnvelope , CEILING )
0 commit comments