@@ -519,6 +519,24 @@ TEST(GaussianMixtureFactor, TwoStateModel2) {
519
519
{
520
520
// Start with no measurement on x1, only on x0
521
521
HybridGaussianFactorGraph gfg = hbn.toFactorGraph (given);
522
+
523
+ {
524
+ VectorValues vv{
525
+ {X (0 ), Vector1 (0.0 )}, {X (1 ), Vector1 (1.0 )}, {Z (0 ), Vector1 (0.5 )}};
526
+ HybridValues hv0 (vv, DiscreteValues{{M (1 ), 0 }}),
527
+ hv1 (vv, DiscreteValues{{M (1 ), 1 }});
528
+ EXPECT_DOUBLES_EQUAL (gfg.error (hv0) / hbn.error (hv0),
529
+ gfg.error (hv1) / hbn.error (hv1), 1e-9 );
530
+ }
531
+ {
532
+ VectorValues vv{
533
+ {X (0 ), Vector1 (0.5 )}, {X (1 ), Vector1 (3.0 )}, {Z (0 ), Vector1 (0.5 )}};
534
+ HybridValues hv0 (vv, DiscreteValues{{M (1 ), 0 }}),
535
+ hv1 (vv, DiscreteValues{{M (1 ), 1 }});
536
+ EXPECT_DOUBLES_EQUAL (gfg.error (hv0) / hbn.error (hv0),
537
+ gfg.error (hv1) / hbn.error (hv1), 1e-9 );
538
+ }
539
+
522
540
HybridBayesNet::shared_ptr bn = gfg.eliminateSequential ();
523
541
524
542
// Since no measurement on x1, we a 50/50 probability
@@ -535,6 +553,28 @@ TEST(GaussianMixtureFactor, TwoStateModel2) {
535
553
536
554
given.insert (z1, Vector1 (2.2 ));
537
555
HybridGaussianFactorGraph gfg = hbn.toFactorGraph (given);
556
+
557
+ {
558
+ VectorValues vv{{X (0 ), Vector1 (0.0 )},
559
+ {X (1 ), Vector1 (1.0 )},
560
+ {Z (0 ), Vector1 (0.5 )},
561
+ {Z (1 ), Vector1 (2.2 )}};
562
+ HybridValues hv0 (vv, DiscreteValues{{M (1 ), 0 }}),
563
+ hv1 (vv, DiscreteValues{{M (1 ), 1 }});
564
+ EXPECT_DOUBLES_EQUAL (gfg.error (hv0) / hbn.error (hv0),
565
+ gfg.error (hv1) / hbn.error (hv1), 1e-9 );
566
+ }
567
+ {
568
+ VectorValues vv{{X (0 ), Vector1 (0.5 )},
569
+ {X (1 ), Vector1 (3.0 )},
570
+ {Z (0 ), Vector1 (0.5 )},
571
+ {Z (1 ), Vector1 (2.2 )}};
572
+ HybridValues hv0 (vv, DiscreteValues{{M (1 ), 0 }}),
573
+ hv1 (vv, DiscreteValues{{M (1 ), 1 }});
574
+ EXPECT_DOUBLES_EQUAL (gfg.error (hv0) / hbn.error (hv0),
575
+ gfg.error (hv1) / hbn.error (hv1), 1e-9 );
576
+ }
577
+
538
578
HybridBayesNet::shared_ptr bn = gfg.eliminateSequential ();
539
579
540
580
// Since we have a measurement on z2, we get a definite result
0 commit comments