This commit is contained in:
2019-06-28 17:05:15 +03:00
parent 0114b91917
commit ac17680e9a
10 changed files with 41 additions and 19 deletions
+27 -6
View File
@@ -18,13 +18,18 @@ struct Average
{
int mCount = 0;
T mSum = 0;
T getAverage() const
T average() const
{
if (!mCount)
return 0;
return mSum / mCount;
}
T value() const
{
return average();
}
void process(T value)
{
mCount++;
@@ -32,13 +37,13 @@ struct Average
}
};
template<typename T, int minimum = 100000, int maximum = 0>
template<typename T, int minimum = 100000, int maximum = 0, int default_value = 0>
struct TestResult
{
T mMin = minimum;
T mMax = maximum;
Average<T> mAverage;
T mCurrent = minimum;
T mCurrent = default_value;
void process(T value)
{
@@ -50,18 +55,34 @@ struct TestResult
mAverage.process(value);
}
bool isInitialized() const
bool is_initialized() const
{
return mAverage.mCount > 0;
}
T getCurrent() const
T current() const
{
if (isInitialized())
if (is_initialized())
return mCurrent;
else
return 0;
}
T value() const
{
return current();
}
TestResult<T>& operator = (T value)
{
process(value);
return *this;
}
operator T()
{
return mCurrent;
}
};