@@ -593,6 +593,55 @@ TEST(ADT, zero) {
593
593
EXPECT_DOUBLES_EQUAL (0 , anotb (x11), 1e-9 );
594
594
}
595
595
596
+ // / Example ADT from 0 to 11.
597
+ ADT exampleADT () {
598
+ DiscreteKey A (0 , 2 ), B (1 , 3 ), C (2 , 2 );
599
+ ADT f (A & B & C, " 0 6 2 8 4 10 1 7 3 9 5 11" );
600
+ return f;
601
+ }
602
+ /* ************************************************************************** */
603
+ // Test sum
604
+ TEST (ADT, Sum) {
605
+ ADT a = exampleADT ();
606
+ double expected_sum = 0 ;
607
+ for (double i = 0 ; i < 12 ; i++) {
608
+ expected_sum += i;
609
+ }
610
+ EXPECT_DOUBLES_EQUAL (expected_sum, a.sum (), 1e-9 );
611
+ }
612
+
613
+ /* ************************************************************************** */
614
+ // Test normalize
615
+ TEST (ADT, Normalize) {
616
+ ADT a = exampleADT ();
617
+ double sum = a.sum ();
618
+ auto actual = a.normalize (sum);
619
+
620
+ DiscreteKey A (0 , 2 ), B (1 , 3 ), C (2 , 2 );
621
+ DiscreteKeys keys = DiscreteKeys{A, B, C};
622
+ std::vector<double > cpt{0 / sum, 6 / sum, 2 / sum, 8 / sum,
623
+ 4 / sum, 10 / sum, 1 / sum, 7 / sum,
624
+ 3 / sum, 9 / sum, 5 / sum, 11 / sum};
625
+ ADT expected (keys, cpt);
626
+ EXPECT (assert_equal (expected, actual));
627
+ }
628
+
629
+ /* ************************************************************************** */
630
+ // Test min
631
+ TEST (ADT, Min) {
632
+ ADT a = exampleADT ();
633
+ double min = a.min ();
634
+ EXPECT_DOUBLES_EQUAL (0.0 , min, 1e-9 );
635
+ }
636
+
637
+ /* ************************************************************************** */
638
+ // Test max
639
+ TEST (ADT, Max) {
640
+ ADT a = exampleADT ();
641
+ double max = a.max ();
642
+ EXPECT_DOUBLES_EQUAL (11.0 , max, 1e-9 );
643
+ }
644
+
596
645
/* ************************************************************************* */
597
646
int main () {
598
647
TestResult tr;
0 commit comments