Newer
Older
Pospelov, Gennady
committed
#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());
Pospelov, Gennady
committed
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());
Pospelov, Gennady
committed
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());
Pospelov, Gennady
committed
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());
Pospelov, Gennady
committed
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());
Pospelov, Gennady
committed
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());
Pospelov, Gennady
committed
EXPECT_DOUBLE_EQ(1.5, cv1.getAverage());
EXPECT_DOUBLE_EQ(0.75, cv1.getRMS()*cv1.getRMS());
Pospelov, Gennady
committed
cv1.add(3.0);
cv1.add(3.0);
EXPECT_EQ(4, cv1.getNumberOfEntries());
EXPECT_DOUBLE_EQ(10.0, cv1.getContent());
Pospelov, Gennady
committed
EXPECT_DOUBLE_EQ(2.0, cv1.getAverage());
Pospelov, Gennady
committed
}
TEST_F(CumulativeValueTest, Comparison)
{
CumulativeValue cv1, cv2;
cv1.add(1.0);
cv2.add(2.0);
EXPECT_TRUE(cv2 > cv1);
EXPECT_TRUE(cv1 < cv2);
}