Skip to content
Snippets Groups Projects
CumulativeValueTest.h 2.08 KiB
Newer Older
  • Learn to ignore specific revisions
  • #ifndef CUMULATIVEVALUETEST_H
    #define CUMULATIVEVALUETEST_H
    
    #include "CumulativeValue.h"
    
    #include "gtest/gtest.h"
    
    class CumulativeValueTest : public ::testing::Test
    {
     protected:
        CumulativeValueTest(){}
        virtual ~CumulativeValueTest(){}
    };
    
    TEST_F(CumulativeValueTest, InitialState)
    {
        CumulativeValue cv;
        EXPECT_EQ(0, cv.getNumberOfEntries());
    
        EXPECT_EQ(0.0, cv.getContent());
    
        EXPECT_EQ(0.0, cv.getAverage());
        EXPECT_EQ(0.0, cv.getRMS());
    }
    
    TEST_F(CumulativeValueTest, AddValue)
    {
        CumulativeValue cv1;
        cv1.add(1.0);
        EXPECT_EQ(1, cv1.getNumberOfEntries());
    
        EXPECT_EQ(1.0, cv1.getContent());
    
        EXPECT_EQ(1.0, cv1.getAverage());
        EXPECT_EQ(0.0, cv1.getRMS());
    
        // adding value with weight, all number should stay the same
        CumulativeValue cv2;
        cv2.add(1.0, 10.0);
        EXPECT_EQ(1, cv2.getNumberOfEntries());
    
        EXPECT_EQ(1.0, cv2.getContent());
    
        EXPECT_EQ(1.0, cv2.getAverage());
        EXPECT_EQ(0.0, cv2.getRMS());
    
    }
    
    TEST_F(CumulativeValueTest, AddValues)
    {
        CumulativeValue cv1;
        cv1.add(1.0);
        cv1.add(3.0);
        EXPECT_EQ(2, cv1.getNumberOfEntries());
    
        EXPECT_DOUBLE_EQ(4.0, cv1.getContent());
    
        EXPECT_DOUBLE_EQ(2.0, cv1.getAverage());
        EXPECT_DOUBLE_EQ(1.0, cv1.getRMS());
    
        cv1.clear();
        EXPECT_EQ(0, cv1.getNumberOfEntries());
    
        EXPECT_EQ(0.0, cv1.getContent());
    
        EXPECT_EQ(0.0, cv1.getAverage());
        EXPECT_EQ(0.0, cv1.getRMS());
    }
    
    TEST_F(CumulativeValueTest, AddValuesWithWeights)
    {
        CumulativeValue cv1;
        cv1.add(1.0, 3.0);
        cv1.add(3.0);
        EXPECT_EQ(2, cv1.getNumberOfEntries());
    
        EXPECT_DOUBLE_EQ(4.0, cv1.getContent());
    
        EXPECT_DOUBLE_EQ(1.5, cv1.getAverage());
    
        EXPECT_DOUBLE_EQ(0.75, cv1.getRMS()*cv1.getRMS());
    
    
        cv1.add(3.0);
        cv1.add(3.0);
        EXPECT_EQ(4, cv1.getNumberOfEntries());
    
        EXPECT_DOUBLE_EQ(10.0, cv1.getContent());
    
        EXPECT_DOUBLE_EQ(2.0, cv1.getAverage());
    
    	EXPECT_DOUBLE_EQ(1.0, cv1.getRMS());
    
    TEST_F(CumulativeValueTest, Comparison)
    {
        CumulativeValue cv1, cv2;
        cv1.add(1.0);
        cv2.add(2.0);
    
        EXPECT_TRUE(cv2 > cv1);
        EXPECT_TRUE(cv1 < cv2);
    
    }