stats: Add stats unittest for total calculations.
authorAli Saidi <Ali.Saidi@ARM.com>
Tue, 5 Jun 2012 05:23:10 +0000 (01:23 -0400)
committerAli Saidi <Ali.Saidi@ARM.com>
Tue, 5 Jun 2012 05:23:10 +0000 (01:23 -0400)
src/unittest/stattest.cc

index ccce2173b7d26245927395ce8a691f586925a336..67eb5c323218f1e2a0b968614535d707d6dba71f 100644 (file)
@@ -94,27 +94,37 @@ struct StatTest
     Histogram h12;
     SparseHistogram sh1;
 
+    Vector s19;
+    Vector s20;
+
     Formula f1;
     Formula f2;
     Formula f3;
     Formula f4;
     Formula f5;
+    Formula f6;
 
     void run();
     void init();
 };
 
-StatTest __stattest;
+StatTest &
+__stattest()
+{
+    static StatTest st;
+    return st;
+}
+
 void
 stattest_init()
 {
-    __stattest.init();
+    __stattest().init();
 }
 
 void
 stattest_run()
 {
-    __stattest.run();
+    __stattest().run();
 }
 
 void
@@ -352,6 +362,24 @@ StatTest::init()
         .desc("this is formula 4")
         ;
 
+    s19
+        .init(2)
+        .name("Stat19")
+        .desc("this is statistic 19 for vector op testing")
+        .flags(total | nozero | nonan)
+    ;
+    s20
+        .init(2)
+        .name("Stat20")
+        .desc("this is statistic 20 for vector op testing")
+        .flags(total | nozero | nonan)
+    ;
+
+    f6
+        .name("vector_op_test_formula")
+        .desc("The total stat should equal 1")
+        .flags(total |nozero |nonan)
+        ;
 
     f1 = s1 + s2;
     f2 = (-s1) / (-s2) * (-s3 + ULL(100) + s4);
@@ -359,6 +387,7 @@ StatTest::init()
     f4 += constant(10.0);
     f4 += s5[3];
     f5 = constant(1);
+    f6 = s19/s20;
 }
 
 void
@@ -634,4 +663,10 @@ StatTest::run()
     for (int i = 0; i < 1000; i++) {
         sh1.sample(random() % 10000);
     }
+
+    s19[0] = 1;
+    s19[1] = 100000;
+    s20[0] = 100000;
+    s20[1] = 1;
+
 }