@@ -401,6 +401,37 @@ TEST(HybridNonlinearFactorGraph, Partial_Elimination) {
401
401
EXPECT (remainingFactorGraph->at (2 )->keys () == KeyVector ({M (0 ), M (1 )}));
402
402
}
403
403
404
+ /* ****************************************************************************/
405
+ TEST (HybridNonlinearFactorGraph, Error) {
406
+ Switching self (3 );
407
+ HybridNonlinearFactorGraph fg = self.nonlinearFactorGraph ;
408
+
409
+ {
410
+ HybridValues values (VectorValues (), DiscreteValues{{M (0 ), 0 }, {M (1 ), 0 }},
411
+ self.linearizationPoint );
412
+ // regression
413
+ EXPECT_DOUBLES_EQUAL (152.791759469 , fg.error (values), 1e-9 );
414
+ }
415
+ {
416
+ HybridValues values (VectorValues (), DiscreteValues{{M (0 ), 0 }, {M (1 ), 1 }},
417
+ self.linearizationPoint );
418
+ // regression
419
+ EXPECT_DOUBLES_EQUAL (151.598612289 , fg.error (values), 1e-9 );
420
+ }
421
+ {
422
+ HybridValues values (VectorValues (), DiscreteValues{{M (0 ), 1 }, {M (1 ), 0 }},
423
+ self.linearizationPoint );
424
+ // regression
425
+ EXPECT_DOUBLES_EQUAL (151.703972804 , fg.error (values), 1e-9 );
426
+ }
427
+ {
428
+ HybridValues values (VectorValues (), DiscreteValues{{M (0 ), 1 }, {M (1 ), 1 }},
429
+ self.linearizationPoint );
430
+ // regression
431
+ EXPECT_DOUBLES_EQUAL (151.609437912 , fg.error (values), 1e-9 );
432
+ }
433
+ }
434
+
404
435
/* ****************************************************************************/
405
436
TEST (HybridNonlinearFactorGraph, PrintErrors) {
406
437
Switching self (3 );
0 commit comments