@@ -406,7 +406,7 @@ TEST_F(DiscreteTraject0ryTest, DetachSegments) {
406
406
}
407
407
}
408
408
409
- TEST_F (DiscreteTraject0ryTest, AttachSegments ) {
409
+ TEST_F (DiscreteTraject0ryTest, AttachSegmentsMatching ) {
410
410
auto trajectory1 = MakeTrajectory ();
411
411
auto trajectory2 = MakeTrajectory (
412
412
t0_ + 14 * Second,
@@ -453,6 +453,32 @@ TEST_F(DiscreteTraject0ryTest, AttachSegments) {
453
453
}
454
454
}
455
455
456
+ TEST_F (DiscreteTraject0ryTest, AttachSegmentsMismatching) {
457
+ auto trajectory1 = MakeTrajectory ();
458
+ auto trajectory2 = MakeTrajectory (
459
+ t0_ + 15 * Second,
460
+ DegreesOfFreedom<World>(
461
+ World::origin + Displacement<World>({5 * Metre,
462
+ 5 * Metre,
463
+ 5 * Metre}),
464
+ Velocity<World>({0 * Metre / Second,
465
+ 0 * Metre / Second,
466
+ 1 * Metre / Second})));
467
+ trajectory1.AttachSegments (std::move (trajectory2));
468
+ EXPECT_EQ (6 , trajectory1.segments ().size ());
469
+ EXPECT_EQ (t0_, trajectory1.begin ()->time );
470
+ EXPECT_EQ (t0_ + 29 * Second, trajectory1.rbegin ()->time );
471
+
472
+ EXPECT_EQ (trajectory1.EvaluatePosition (t0_ + 14 * Second),
473
+ World::origin + Displacement<World>({4 * Metre,
474
+ 4 * Metre,
475
+ 4 * Metre}));
476
+ EXPECT_EQ (trajectory1.EvaluatePosition (t0_ + 15 * Second),
477
+ World::origin + Displacement<World>({5 * Metre,
478
+ 5 * Metre,
479
+ 5 * Metre}));
480
+ }
481
+
456
482
TEST_F (DiscreteTraject0ryTest, DeleteSegments) {
457
483
auto trajectory = MakeTrajectory ();
458
484
auto const first_segment = trajectory.segments ().begin ();
0 commit comments