Use AppEnum for DateTimePeriod

This commit is contained in:
Magne Sjaastad 2020-04-02 07:16:44 +02:00
parent acd151744a
commit 4967a8c9b2
15 changed files with 162 additions and 207 deletions

View File

@ -41,14 +41,6 @@ const DateTimeSpan RiaQDateTimeTools::TIMESPAN_HALFYEAR = DateTimeSpan( 0, 6, 0
const DateTimeSpan RiaQDateTimeTools::TIMESPAN_YEAR = DateTimeSpan( 1, 0, 0 ); const DateTimeSpan RiaQDateTimeTools::TIMESPAN_YEAR = DateTimeSpan( 1, 0, 0 );
const DateTimeSpan RiaQDateTimeTools::TIMESPAN_DECADE = DateTimeSpan( 10, 0, 0 ); const DateTimeSpan RiaQDateTimeTools::TIMESPAN_DECADE = DateTimeSpan( 10, 0, 0 );
const QString RiaQDateTimeTools::TIMESPAN_DAY_NAME = "Day";
const QString RiaQDateTimeTools::TIMESPAN_WEEK_NAME = "Week";
const QString RiaQDateTimeTools::TIMESPAN_MONTH_NAME = "Month";
const QString RiaQDateTimeTools::TIMESPAN_QUARTER_NAME = "Quarter";
const QString RiaQDateTimeTools::TIMESPAN_HALFYEAR_NAME = "Half Year";
const QString RiaQDateTimeTools::TIMESPAN_YEAR_NAME = "Year";
const QString RiaQDateTimeTools::TIMESPAN_DECADE_NAME = "Decade";
namespace caf namespace caf
{ {
template <> template <>
@ -70,6 +62,21 @@ void caf::AppEnum<RiaQDateTimeTools::TimeFormatComponents>::setUp()
addItem( RiaQDateTimeTools::TIME_FORMAT_HOUR_MINUTE_SECOND, "HOUR_MINUTE_SECONDS", "Hour, Minutes and Seconds" ); addItem( RiaQDateTimeTools::TIME_FORMAT_HOUR_MINUTE_SECOND, "HOUR_MINUTE_SECONDS", "Hour, Minutes and Seconds" );
setDefault( RiaQDateTimeTools::TIME_FORMAT_NONE ); setDefault( RiaQDateTimeTools::TIME_FORMAT_NONE );
} }
template <>
void caf::AppEnum<RiaQDateTimeTools::DateTimePeriod>::setUp()
{
addItem( RiaQDateTimeTools::DateTimePeriod::NONE, "NONE", "None" );
addItem( RiaQDateTimeTools::DateTimePeriod::DAY, "DAY", "Day" );
addItem( RiaQDateTimeTools::DateTimePeriod::WEEK, "WEEK", "Week" );
addItem( RiaQDateTimeTools::DateTimePeriod::MONTH, "MONTH", "Month" );
addItem( RiaQDateTimeTools::DateTimePeriod::QUARTER, "QUARTER", "Quarter," );
addItem( RiaQDateTimeTools::DateTimePeriod::HALFYEAR, "HALFYEAR", "Half Year" );
addItem( RiaQDateTimeTools::DateTimePeriod::YEAR, "YEAR,", "Year," );
addItem( RiaQDateTimeTools::DateTimePeriod::DECADE, "DECADE", "Decade" );
setDefault( RiaQDateTimeTools::DateTimePeriod::NONE );
}
} // namespace caf } // namespace caf
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
@ -188,7 +195,7 @@ QDateTime RiaQDateTimeTools::subtractSpan( const QDateTime& dt, DateTimeSpan spa
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
QDateTime RiaQDateTimeTools::addPeriod( const QDateTime& dt, DateTimePeriod period ) QDateTime RiaQDateTimeTools::addPeriod( const QDateTime& dt, RiaQDateTimeTools::DateTimePeriod period )
{ {
return addSpan( dt, timeSpan( period ) ); return addSpan( dt, timeSpan( period ) );
} }
@ -196,7 +203,7 @@ QDateTime RiaQDateTimeTools::addPeriod( const QDateTime& dt, DateTimePeriod peri
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
QDateTime RiaQDateTimeTools::subtractPeriod( const QDateTime& dt, DateTimePeriod period ) QDateTime RiaQDateTimeTools::subtractPeriod( const QDateTime& dt, RiaQDateTimeTools::DateTimePeriod period )
{ {
return subtractSpan( dt, timeSpan( period ) ); return subtractSpan( dt, timeSpan( period ) );
} }
@ -266,23 +273,23 @@ bool RiaQDateTimeTools::lessThan( const QDateTime& dt1, const QDateTime& dt2 )
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
const DateTimeSpan RiaQDateTimeTools::timeSpan( DateTimePeriod period ) const DateTimeSpan RiaQDateTimeTools::timeSpan( RiaQDateTimeTools::DateTimePeriod period )
{ {
switch ( period ) switch ( period )
{ {
case DateTimePeriod::DAY: case RiaQDateTimeTools::DateTimePeriod::DAY:
return TIMESPAN_DAY; return TIMESPAN_DAY;
case DateTimePeriod::WEEK: case RiaQDateTimeTools::DateTimePeriod::WEEK:
return TIMESPAN_WEEK; return TIMESPAN_WEEK;
case DateTimePeriod::MONTH: case RiaQDateTimeTools::DateTimePeriod::MONTH:
return TIMESPAN_MONTH; return TIMESPAN_MONTH;
case DateTimePeriod::QUARTER: case RiaQDateTimeTools::DateTimePeriod::QUARTER:
return TIMESPAN_QUARTER; return TIMESPAN_QUARTER;
case DateTimePeriod::HALFYEAR: case RiaQDateTimeTools::DateTimePeriod::HALFYEAR:
return TIMESPAN_HALFYEAR; return TIMESPAN_HALFYEAR;
case DateTimePeriod::YEAR: case RiaQDateTimeTools::DateTimePeriod::YEAR:
return TIMESPAN_YEAR; return TIMESPAN_YEAR;
case DateTimePeriod::DECADE: case RiaQDateTimeTools::DateTimePeriod::DECADE:
return TIMESPAN_DECADE; return TIMESPAN_DECADE;
} }
CVF_ASSERT( false ); CVF_ASSERT( false );
@ -292,7 +299,7 @@ const DateTimeSpan RiaQDateTimeTools::timeSpan( DateTimePeriod period )
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
QDateTime RiaQDateTimeTools::truncateTime( const QDateTime& dt, DateTimePeriod period ) QDateTime RiaQDateTimeTools::truncateTime( const QDateTime& dt, RiaQDateTimeTools::DateTimePeriod period )
{ {
int y = dt.date().year(); int y = dt.date().year();
int m = dt.date().month(); int m = dt.date().month();
@ -301,19 +308,19 @@ QDateTime RiaQDateTimeTools::truncateTime( const QDateTime& dt, DateTimePeriod p
switch ( period ) switch ( period )
{ {
case DateTimePeriod::DAY: case RiaQDateTimeTools::DateTimePeriod::DAY:
return createUtcDateTime( QDate( y, m, d ) ); return createUtcDateTime( QDate( y, m, d ) );
case DateTimePeriod::WEEK: case RiaQDateTimeTools::DateTimePeriod::WEEK:
return createUtcDateTime( QDate( y, m, d ).addDays( -dow + 1 ) ); return createUtcDateTime( QDate( y, m, d ).addDays( -dow + 1 ) );
case DateTimePeriod::MONTH: case RiaQDateTimeTools::DateTimePeriod::MONTH:
return createUtcDateTime( QDate( y, m, 1 ) ); return createUtcDateTime( QDate( y, m, 1 ) );
case DateTimePeriod::QUARTER: case RiaQDateTimeTools::DateTimePeriod::QUARTER:
return createUtcDateTime( QDate( y, ( ( m - 1 ) / 3 ) * 3 + 1, 1 ) ); return createUtcDateTime( QDate( y, ( ( m - 1 ) / 3 ) * 3 + 1, 1 ) );
case DateTimePeriod::HALFYEAR: case RiaQDateTimeTools::DateTimePeriod::HALFYEAR:
return createUtcDateTime( QDate( y, ( ( m - 1 ) / 6 ) * 6 + 1, 1 ) ); return createUtcDateTime( QDate( y, ( ( m - 1 ) / 6 ) * 6 + 1, 1 ) );
case DateTimePeriod::YEAR: case RiaQDateTimeTools::DateTimePeriod::YEAR:
return createUtcDateTime( QDate( y, 1, 1 ) ); return createUtcDateTime( QDate( y, 1, 1 ) );
case DateTimePeriod::DECADE: case RiaQDateTimeTools::DateTimePeriod::DECADE:
return createUtcDateTime( QDate( ( y / 10 ) * 10, 1, 1 ) ); return createUtcDateTime( QDate( ( y / 10 ) * 10, 1, 1 ) );
} }
CVF_ASSERT( false ); CVF_ASSERT( false );
@ -323,44 +330,24 @@ QDateTime RiaQDateTimeTools::truncateTime( const QDateTime& dt, DateTimePeriod p
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
std::vector<DateTimePeriod> RiaQDateTimeTools::dateTimePeriods() std::vector<RiaQDateTimeTools::DateTimePeriod> RiaQDateTimeTools::dateTimePeriods()
{ {
return std::vector<DateTimePeriod>( { std::vector<DateTimePeriod> allPeriods;
DateTimePeriod::NONE,
DateTimePeriod::DAY, for ( size_t i = 0; i < DateTimePeriodEnum::size(); i++ )
DateTimePeriod::WEEK, {
DateTimePeriod::MONTH, allPeriods.push_back( DateTimePeriodEnum::fromIndex( i ) );
DateTimePeriod::QUARTER, }
DateTimePeriod::HALFYEAR,
DateTimePeriod::YEAR, return allPeriods;
DateTimePeriod::DECADE,
} );
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
QString RiaQDateTimeTools::dateTimePeriodName( DateTimePeriod period ) QString RiaQDateTimeTools::dateTimePeriodName( RiaQDateTimeTools::DateTimePeriod period )
{ {
switch ( period ) return DateTimePeriodEnum::uiText( period );
{
case DateTimePeriod::DAY:
return TIMESPAN_DAY_NAME;
case DateTimePeriod::WEEK:
return TIMESPAN_WEEK_NAME;
case DateTimePeriod::MONTH:
return TIMESPAN_MONTH_NAME;
case DateTimePeriod::QUARTER:
return TIMESPAN_QUARTER_NAME;
case DateTimePeriod::HALFYEAR:
return TIMESPAN_HALFYEAR_NAME;
case DateTimePeriod::YEAR:
return TIMESPAN_YEAR_NAME;
case DateTimePeriod::DECADE:
return TIMESPAN_DECADE_NAME;
default:
return "None";
}
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------

View File

@ -18,6 +18,8 @@
#pragma once #pragma once
#include "cafAppEnum.h"
#include <qglobal.h> #include <qglobal.h>
#include <qnamespace.h> #include <qnamespace.h>
@ -40,21 +42,6 @@ namespace caf
class PdmOptionItemInfo; class PdmOptionItemInfo;
}; };
//==================================================================================================
//
//==================================================================================================
enum class DateTimePeriod
{
NONE = -1,
DAY,
WEEK,
MONTH,
QUARTER,
HALFYEAR,
YEAR,
DECADE
};
//================================================================================================== //==================================================================================================
// //
//================================================================================================== //==================================================================================================
@ -90,13 +77,18 @@ public:
TIME_FORMAT_SIZE TIME_FORMAT_SIZE
}; };
static const QString TIMESPAN_DAY_NAME; enum class DateTimePeriod
static const QString TIMESPAN_WEEK_NAME; {
static const QString TIMESPAN_MONTH_NAME; NONE = -1,
static const QString TIMESPAN_QUARTER_NAME; DAY,
static const QString TIMESPAN_HALFYEAR_NAME; WEEK,
static const QString TIMESPAN_YEAR_NAME; MONTH,
static const QString TIMESPAN_DECADE_NAME; QUARTER,
HALFYEAR,
YEAR,
DECADE
};
using DateTimePeriodEnum = caf::AppEnum<DateTimePeriod>;
static Qt::TimeSpec currentTimeSpec(); static Qt::TimeSpec currentTimeSpec();
@ -109,8 +101,8 @@ public:
static QDateTime addYears( const QDateTime& dt, double years ); static QDateTime addYears( const QDateTime& dt, double years );
static QDateTime addSpan( const QDateTime& dt, DateTimeSpan span ); static QDateTime addSpan( const QDateTime& dt, DateTimeSpan span );
static QDateTime subtractSpan( const QDateTime& dt, DateTimeSpan span ); static QDateTime subtractSpan( const QDateTime& dt, DateTimeSpan span );
static QDateTime addPeriod( const QDateTime& dt, DateTimePeriod period ); static QDateTime addPeriod( const QDateTime& dt, RiaQDateTimeTools::DateTimePeriod period );
static QDateTime subtractPeriod( const QDateTime& dt, DateTimePeriod period ); static QDateTime subtractPeriod( const QDateTime& dt, RiaQDateTimeTools::DateTimePeriod period );
static QDateTime epoch(); static QDateTime epoch();
@ -121,11 +113,11 @@ public:
static bool lessThan( const QDateTime& dt1, const QDateTime& dt2 ); static bool lessThan( const QDateTime& dt1, const QDateTime& dt2 );
static const DateTimeSpan timeSpan( DateTimePeriod period ); static const DateTimeSpan timeSpan( RiaQDateTimeTools::DateTimePeriod period );
static QDateTime truncateTime( const QDateTime& dt, DateTimePeriod period ); static QDateTime truncateTime( const QDateTime& dt, RiaQDateTimeTools::DateTimePeriod period );
static std::vector<DateTimePeriod> dateTimePeriods(); static std::vector<RiaQDateTimeTools::DateTimePeriod> dateTimePeriods();
static QString dateTimePeriodName( DateTimePeriod period ); static QString dateTimePeriodName( RiaQDateTimeTools::DateTimePeriod period );
// This function uses C locale to make sure the text representation of a date is stable, independent of the locale // This function uses C locale to make sure the text representation of a date is stable, independent of the locale
// settings on local machine. Required for stable regression testing. // settings on local machine. Required for stable regression testing.

View File

@ -67,7 +67,7 @@ void RiaTimeHistoryCurveResampler::setCurveData( const std::vector<double>& valu
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
void RiaTimeHistoryCurveResampler::resampleAndComputePeriodEndValues( DateTimePeriod period ) void RiaTimeHistoryCurveResampler::resampleAndComputePeriodEndValues( RiaQDateTimeTools::DateTimePeriod period )
{ {
computePeriodEndValues( period ); computePeriodEndValues( period );
} }
@ -75,7 +75,7 @@ void RiaTimeHistoryCurveResampler::resampleAndComputePeriodEndValues( DateTimePe
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
void RiaTimeHistoryCurveResampler::resampleAndComputeWeightedMeanValues( DateTimePeriod period ) void RiaTimeHistoryCurveResampler::resampleAndComputeWeightedMeanValues( RiaQDateTimeTools::DateTimePeriod period )
{ {
computeWeightedMeanValues( period ); computeWeightedMeanValues( period );
} }
@ -99,8 +99,9 @@ const std::vector<double>& RiaTimeHistoryCurveResampler::resampledValues() const
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
std::vector<time_t> std::vector<time_t> RiaTimeHistoryCurveResampler::timeStepsFromTimeRange( RiaQDateTimeTools::DateTimePeriod period,
RiaTimeHistoryCurveResampler::timeStepsFromTimeRange( DateTimePeriod period, time_t minTime, time_t maxTime ) time_t minTime,
time_t maxTime )
{ {
if ( minTime > maxTime ) return std::vector<time_t>(); if ( minTime > maxTime ) return std::vector<time_t>();
@ -123,7 +124,7 @@ std::vector<time_t>
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
void RiaTimeHistoryCurveResampler::computeWeightedMeanValues( DateTimePeriod period ) void RiaTimeHistoryCurveResampler::computeWeightedMeanValues( RiaQDateTimeTools::DateTimePeriod period )
{ {
size_t origDataSize = m_originalValues.second.size(); size_t origDataSize = m_originalValues.second.size();
size_t oi = 0; size_t oi = 0;
@ -196,7 +197,7 @@ void RiaTimeHistoryCurveResampler::computeWeightedMeanValues( DateTimePeriod per
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
void RiaTimeHistoryCurveResampler::computePeriodEndValues( DateTimePeriod period ) void RiaTimeHistoryCurveResampler::computePeriodEndValues( RiaQDateTimeTools::DateTimePeriod period )
{ {
size_t origDataSize = m_originalValues.second.size(); size_t origDataSize = m_originalValues.second.size();
size_t oi = 0; size_t oi = 0;
@ -245,9 +246,9 @@ void RiaTimeHistoryCurveResampler::clearData()
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
void RiaTimeHistoryCurveResampler::computeResampledTimeSteps( DateTimePeriod period ) void RiaTimeHistoryCurveResampler::computeResampledTimeSteps( RiaQDateTimeTools::DateTimePeriod period )
{ {
CVF_ASSERT( period != DateTimePeriod::NONE && m_originalValues.second.size() > 0 ); CVF_ASSERT( period != RiaQDateTimeTools::DateTimePeriod::NONE && m_originalValues.second.size() > 0 );
auto firstOriginalTimeStep = QDT::fromTime_t( m_originalValues.second.front() ); auto firstOriginalTimeStep = QDT::fromTime_t( m_originalValues.second.front() );
auto lastOriginalTimeStep = QDT::fromTime_t( m_originalValues.second.back() ); auto lastOriginalTimeStep = QDT::fromTime_t( m_originalValues.second.back() );
@ -268,7 +269,8 @@ void RiaTimeHistoryCurveResampler::computeResampledTimeSteps( DateTimePeriod per
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
QDateTime RiaTimeHistoryCurveResampler::firstResampledTimeStep( const QDateTime& firstTimeStep, DateTimePeriod period ) QDateTime RiaTimeHistoryCurveResampler::firstResampledTimeStep( const QDateTime& firstTimeStep,
RiaQDateTimeTools::DateTimePeriod period )
{ {
QDateTime truncatedTime = QDT::truncateTime( firstTimeStep, period ); QDateTime truncatedTime = QDT::truncateTime( firstTimeStep, period );

View File

@ -35,21 +35,22 @@ public:
void setCurveData( const std::vector<double>& values, const std::vector<time_t>& timeSteps ); void setCurveData( const std::vector<double>& values, const std::vector<time_t>& timeSteps );
void resampleAndComputePeriodEndValues( DateTimePeriod period ); void resampleAndComputePeriodEndValues( RiaQDateTimeTools::DateTimePeriod period );
void resampleAndComputeWeightedMeanValues( DateTimePeriod period ); void resampleAndComputeWeightedMeanValues( RiaQDateTimeTools::DateTimePeriod period );
const std::vector<time_t>& resampledTimeSteps() const; const std::vector<time_t>& resampledTimeSteps() const;
const std::vector<double>& resampledValues() const; const std::vector<double>& resampledValues() const;
static std::vector<time_t> timeStepsFromTimeRange( DateTimePeriod period, time_t minTime, time_t maxTime ); static std::vector<time_t>
timeStepsFromTimeRange( RiaQDateTimeTools::DateTimePeriod period, time_t minTime, time_t maxTime );
private: private:
void computeWeightedMeanValues( DateTimePeriod period ); void computeWeightedMeanValues( RiaQDateTimeTools::DateTimePeriod period );
void computePeriodEndValues( DateTimePeriod period ); void computePeriodEndValues( RiaQDateTimeTools::DateTimePeriod period );
void clearData(); void clearData();
void computeResampledTimeSteps( DateTimePeriod period ); void computeResampledTimeSteps( RiaQDateTimeTools::DateTimePeriod period );
static QDateTime firstResampledTimeStep( const QDateTime& firstTimestep, DateTimePeriod period ); static QDateTime firstResampledTimeStep( const QDateTime& firstTimestep, RiaQDateTimeTools::DateTimePeriod period );
inline double interpolatedValue( time_t t, time_t t1, double v1, time_t t2, double v2 ); inline double interpolatedValue( time_t t, time_t t1, double v1, time_t t2, double v2 );
private: private:

View File

@ -63,8 +63,8 @@ public:
{ {
auto allTabs = tabs(); auto allTabs = tabs();
CVF_ASSERT( tabIndex < (int)allTabs.size() ); CVF_ASSERT( tabIndex < (int)allTabs.size() );
DateTimePeriod timePeriod = allTabs[tabIndex]; RiaQDateTimeTools::DateTimePeriod timePeriod = allTabs[tabIndex];
if ( timePeriod == DateTimePeriod::NONE ) if ( timePeriod == RiaQDateTimeTools::DateTimePeriod::NONE )
{ {
return "No Resampling"; return "No Resampling";
} }
@ -78,7 +78,7 @@ public:
{ {
CVF_ASSERT( m_summaryPlot.notNull() && "Need to check that provider is valid" ); CVF_ASSERT( m_summaryPlot.notNull() && "Need to check that provider is valid" );
DateTimePeriod timePeriod = indexToPeriod( tabIndex ); RiaQDateTimeTools::DateTimePeriod timePeriod = indexToPeriod( tabIndex );
if ( m_summaryPlot->containsResamplableCurves() ) if ( m_summaryPlot->containsResamplableCurves() )
{ {
@ -88,25 +88,25 @@ public:
} }
else else
{ {
return m_summaryPlot->asciiDataForSummaryPlotExport( DateTimePeriod::NONE, true ); return m_summaryPlot->asciiDataForSummaryPlotExport( RiaQDateTimeTools::DateTimePeriod::NONE, true );
} }
} }
int tabCount() const override { return (int)tabs().size(); } int tabCount() const override { return (int)tabs().size(); }
private: private:
static DateTimePeriod indexToPeriod( int tabIndex ) static RiaQDateTimeTools::DateTimePeriod indexToPeriod( int tabIndex )
{ {
auto allTabs = tabs(); auto allTabs = tabs();
CVF_ASSERT( tabIndex < (int)allTabs.size() ); CVF_ASSERT( tabIndex < (int)allTabs.size() );
DateTimePeriod timePeriod = allTabs[tabIndex]; RiaQDateTimeTools::DateTimePeriod timePeriod = allTabs[tabIndex];
return timePeriod; return timePeriod;
} }
static std::vector<DateTimePeriod> tabs() static std::vector<RiaQDateTimeTools::DateTimePeriod> tabs()
{ {
std::vector<DateTimePeriod> dateTimePeriods = RiaQDateTimeTools::dateTimePeriods(); std::vector<RiaQDateTimeTools::DateTimePeriod> dateTimePeriods = RiaQDateTimeTools::dateTimePeriods();
dateTimePeriods.erase( std::remove( dateTimePeriods.begin(), dateTimePeriods.end(), DateTimePeriod::DECADE ), dateTimePeriods.erase( std::remove( dateTimePeriods.begin(), dateTimePeriods.end(), RiaQDateTimeTools::DateTimePeriod::DECADE ),
dateTimePeriods.end() ); dateTimePeriods.end() );
return dateTimePeriods; return dateTimePeriods;
} }

View File

@ -104,12 +104,13 @@ RicResampleDialogResult RicResampleDialog::openDialog( QWidget* parent /*= 0*/,
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
void RicResampleDialog::setPeriodOptions( const std::vector<DateTimePeriod>& dateTimePeriods ) void RicResampleDialog::setPeriodOptions( const std::vector<RiaQDateTimeTools::DateTimePeriod>& dateTimePeriods )
{ {
QStringList s; QStringList s;
for ( auto& period : dateTimePeriods ) for ( auto& period : dateTimePeriods )
{ {
QString text = period != DateTimePeriod::NONE ? RiaQDateTimeTools::dateTimePeriodName( period ) : "No Resampling"; QString text = period != RiaQDateTimeTools::DateTimePeriod::NONE ? RiaQDateTimeTools::dateTimePeriodName( period )
: "No Resampling";
m_timePeriodCombo->addItem( text, QVariant( (int)period ) ); m_timePeriodCombo->addItem( text, QVariant( (int)period ) );
} }
} }
@ -117,10 +118,10 @@ void RicResampleDialog::setPeriodOptions( const std::vector<DateTimePeriod>& dat
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
DateTimePeriod RicResampleDialog::selectedDateTimePeriod() const RiaQDateTimeTools::DateTimePeriod RicResampleDialog::selectedDateTimePeriod() const
{ {
int currIndex = m_timePeriodCombo->currentIndex(); int currIndex = m_timePeriodCombo->currentIndex();
return (DateTimePeriod)m_timePeriodCombo->itemData( currIndex ).toInt(); return (RiaQDateTimeTools::DateTimePeriod)m_timePeriodCombo->itemData( currIndex ).toInt();
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------

View File

@ -49,8 +49,8 @@ public:
static RicResampleDialogResult openDialog( QWidget* parent = nullptr, const QString& caption = QString() ); static RicResampleDialogResult openDialog( QWidget* parent = nullptr, const QString& caption = QString() );
private: private:
void setPeriodOptions( const std::vector<DateTimePeriod>& dateTimePeriods ); void setPeriodOptions( const std::vector<RiaQDateTimeTools::DateTimePeriod>& dateTimePeriods );
DateTimePeriod selectedDateTimePeriod() const; RiaQDateTimeTools::DateTimePeriod selectedDateTimePeriod() const;
private slots: private slots:
void slotDialogOkClicked(); void slotDialogOkClicked();
@ -69,12 +69,12 @@ private:
class RicResampleDialogResult class RicResampleDialogResult
{ {
public: public:
RicResampleDialogResult( bool ok, DateTimePeriod period ) RicResampleDialogResult( bool ok, RiaQDateTimeTools::DateTimePeriod period )
: ok( ok ) : ok( ok )
, period( period ) , period( period )
{ {
} }
bool ok; bool ok;
DateTimePeriod period; RiaQDateTimeTools::DateTimePeriod period;
}; };

View File

@ -172,7 +172,7 @@ bool RicAsciiExportSummaryPlotFeature::exportTextToFile( const QString& fileName
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
bool RicAsciiExportSummaryPlotFeature::exportAsciiForSummaryPlot( const QString& fileName, bool RicAsciiExportSummaryPlotFeature::exportAsciiForSummaryPlot( const QString& fileName,
const RimSummaryPlot* summaryPlot, const RimSummaryPlot* summaryPlot,
DateTimePeriod resamplingPeriod, RiaQDateTimeTools::DateTimePeriod resamplingPeriod,
bool showTimeAsLongString ) bool showTimeAsLongString )
{ {
QString text = summaryPlot->description(); QString text = summaryPlot->description();

View File

@ -44,6 +44,6 @@ protected:
private: private:
static bool exportAsciiForSummaryPlot( const QString& fileName, static bool exportAsciiForSummaryPlot( const QString& fileName,
const RimSummaryPlot* selectedSummaryPlots, const RimSummaryPlot* selectedSummaryPlots,
DateTimePeriod resamplingPeriod, RiaQDateTimeTools::DateTimePeriod resamplingPeriod,
bool showTimeAsLongString ); bool showTimeAsLongString );
}; };

View File

@ -170,11 +170,11 @@ double RimSimWellInViewTools::extractValueForTimeStep( RifSummaryReaderInterface
resampler.setCurveData( values, timeSteps ); resampler.setCurveData( values, timeSteps );
if ( RiaSummaryTools::hasAccumulatedData( addr ) ) if ( RiaSummaryTools::hasAccumulatedData( addr ) )
{ {
resampler.resampleAndComputePeriodEndValues( DateTimePeriod::DAY ); resampler.resampleAndComputePeriodEndValues( RiaQDateTimeTools::DateTimePeriod::DAY );
} }
else else
{ {
resampler.resampleAndComputeWeightedMeanValues( DateTimePeriod::DAY ); resampler.resampleAndComputeWeightedMeanValues( RiaQDateTimeTools::DateTimePeriod::DAY );
} }
// Find the data point which best matches the selected time step // Find the data point which best matches the selected time step

View File

@ -160,9 +160,9 @@ void RimEnsembleStatisticsCase::calculate( const std::vector<RimSummaryCase*> su
RiaTimeHistoryCurveResampler resampler; RiaTimeHistoryCurveResampler resampler;
resampler.setCurveData( values, timeSteps ); resampler.setCurveData( values, timeSteps );
if ( RiaSummaryTools::hasAccumulatedData( inputAddress ) ) if ( RiaSummaryTools::hasAccumulatedData( inputAddress ) )
resampler.resampleAndComputePeriodEndValues( DateTimePeriod::DAY ); resampler.resampleAndComputePeriodEndValues( RiaQDateTimeTools::DateTimePeriod::DAY );
else else
resampler.resampleAndComputeWeightedMeanValues( DateTimePeriod::DAY ); resampler.resampleAndComputeWeightedMeanValues( RiaQDateTimeTools::DateTimePeriod::DAY );
if ( allTimeSteps.empty() ) allTimeSteps = resampler.resampledTimeSteps(); if ( allTimeSteps.empty() ) allTimeSteps = resampler.resampledTimeSteps();
caseAndTimeStepValues.push_back( caseAndTimeStepValues.push_back(

View File

@ -99,18 +99,18 @@ class CurvesData
{ {
public: public:
CurvesData() CurvesData()
: resamplePeriod( DateTimePeriod::NONE ) : resamplePeriod( RiaQDateTimeTools::DateTimePeriod::NONE )
{ {
} }
void clear() void clear()
{ {
resamplePeriod = DateTimePeriod::NONE; resamplePeriod = RiaQDateTimeTools::DateTimePeriod::NONE;
caseNames.clear(); caseNames.clear();
timeSteps.clear(); timeSteps.clear();
allCurveData.clear(); allCurveData.clear();
} }
DateTimePeriod resamplePeriod; RiaQDateTimeTools::DateTimePeriod resamplePeriod;
std::vector<QString> caseNames; std::vector<QString> caseNames;
std::vector<std::vector<time_t>> timeSteps; std::vector<std::vector<time_t>> timeSteps;
std::vector<std::vector<CurveData>> allCurveData; std::vector<std::vector<CurveData>> allCurveData;
@ -129,10 +129,10 @@ void populateSummaryCurvesData( std::vector<RimSummaryCurve*> curves, SummaryCur
void populateTimeHistoryCurvesData( std::vector<RimGridTimeHistoryCurve*> curves, CurvesData* curvesData ); void populateTimeHistoryCurvesData( std::vector<RimGridTimeHistoryCurve*> curves, CurvesData* curvesData );
void populateAsciiDataCurvesData( std::vector<RimAsciiDataCurve*> curves, CurvesData* curvesData ); void populateAsciiDataCurvesData( std::vector<RimAsciiDataCurve*> curves, CurvesData* curvesData );
void prepareCaseCurvesForExport( DateTimePeriod period, void prepareCaseCurvesForExport( RiaQDateTimeTools::DateTimePeriod period,
ResampleAlgorithm algorithm, ResampleAlgorithm algorithm,
const CurvesData& inputCurvesData, const CurvesData& inputCurvesData,
CurvesData* resultCurvesData ); CurvesData* resultCurvesData );
void appendToExportDataForCase( QString& out, const std::vector<time_t>& timeSteps, const std::vector<CurveData>& curveData ); void appendToExportDataForCase( QString& out, const std::vector<time_t>& timeSteps, const std::vector<CurveData>& curveData );
void appendToExportData( QString& out, const std::vector<CurvesData>& curvesData, bool showTimeAsLongString ); void appendToExportData( QString& out, const std::vector<CurvesData>& curvesData, bool showTimeAsLongString );
@ -335,13 +335,14 @@ RiuQwtPlotWidget* RimSummaryPlot::viewer()
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
QString RimSummaryPlot::asciiDataForPlotExport() const QString RimSummaryPlot::asciiDataForPlotExport() const
{ {
return asciiDataForSummaryPlotExport( DateTimePeriod::YEAR, false ); return asciiDataForSummaryPlotExport( RiaQDateTimeTools::DateTimePeriod::YEAR, false );
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
QString RimSummaryPlot::asciiDataForSummaryPlotExport( DateTimePeriod resamplingPeriod, bool showTimeAsLongString ) const QString RimSummaryPlot::asciiDataForSummaryPlotExport( RiaQDateTimeTools::DateTimePeriod resamplingPeriod,
bool showTimeAsLongString ) const
{ {
QString out; QString out;
RiaTimeHistoryCurveResampler resampler; RiaTimeHistoryCurveResampler resampler;
@ -2185,16 +2186,16 @@ void populateSummaryCurvesData( std::vector<RimSummaryCurve*> curves, SummaryCur
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
void prepareCaseCurvesForExport( DateTimePeriod period, void prepareCaseCurvesForExport( RiaQDateTimeTools::DateTimePeriod period,
ResampleAlgorithm algorithm, ResampleAlgorithm algorithm,
const CurvesData& inputCurvesData, const CurvesData& inputCurvesData,
CurvesData* resultCurvesData ) CurvesData* resultCurvesData )
{ {
RiaTimeHistoryCurveResampler resampler; RiaTimeHistoryCurveResampler resampler;
resultCurvesData->clear(); resultCurvesData->clear();
if ( period != DateTimePeriod::NONE ) if ( period != RiaQDateTimeTools::DateTimePeriod::NONE )
{ {
// Prepare result data // Prepare result data
resultCurvesData->resamplePeriod = period; resultCurvesData->resamplePeriod = period;
@ -2276,7 +2277,7 @@ void appendToExportData( QString& out, const std::vector<CurvesData>& curvesData
{ {
CurvesData data = concatCurvesData( curvesData ); CurvesData data = concatCurvesData( curvesData );
if ( data.resamplePeriod != DateTimePeriod::NONE ) if ( data.resamplePeriod != RiaQDateTimeTools::DateTimePeriod::NONE )
{ {
time_t minTimeStep = std::numeric_limits<time_t>::max(); time_t minTimeStep = std::numeric_limits<time_t>::max();
time_t maxTimeStep = 0; time_t maxTimeStep = 0;
@ -2328,40 +2329,40 @@ void appendToExportData( QString& out, const std::vector<CurvesData>& curvesData
{ {
default: default:
// Fall through to NONE // Fall through to NONE
case DateTimePeriod::NONE: case RiaQDateTimeTools::DateTimePeriod::NONE:
timeText = timseStepUtc.toString( "yyyy-MM-dd hh:mm:ss " ); timeText = timseStepUtc.toString( "yyyy-MM-dd hh:mm:ss " );
break; break;
case DateTimePeriod::DAY: case RiaQDateTimeTools::DateTimePeriod::DAY:
timeText = oneDayEarlier.toString( "yyyy-MM-dd " ); timeText = oneDayEarlier.toString( "yyyy-MM-dd " );
break; break;
case DateTimePeriod::WEEK: case RiaQDateTimeTools::DateTimePeriod::WEEK:
{ {
timeText = oneDayEarlier.toString( "yyyy" ); timeText = oneDayEarlier.toString( "yyyy" );
int weekNumber = oneDayEarlier.date().weekNumber(); int weekNumber = oneDayEarlier.date().weekNumber();
timeText += QString( "-W%1" ).arg( weekNumber, 2, 10, zeroChar ); timeText += QString( "-W%1" ).arg( weekNumber, 2, 10, zeroChar );
break; break;
} }
case DateTimePeriod::MONTH: case RiaQDateTimeTools::DateTimePeriod::MONTH:
timeText = oneDayEarlier.toString( "yyyy-MM" ); timeText = oneDayEarlier.toString( "yyyy-MM" );
break; break;
case DateTimePeriod::QUARTER: case RiaQDateTimeTools::DateTimePeriod::QUARTER:
{ {
int quarterNumber = oneDayEarlier.date().month() / 3; int quarterNumber = oneDayEarlier.date().month() / 3;
timeText = oneDayEarlier.toString( "yyyy" ); timeText = oneDayEarlier.toString( "yyyy" );
timeText += QString( "-Q%1" ).arg( quarterNumber ); timeText += QString( "-Q%1" ).arg( quarterNumber );
break; break;
} }
case DateTimePeriod::HALFYEAR: case RiaQDateTimeTools::DateTimePeriod::HALFYEAR:
{ {
int halfYearNumber = oneDayEarlier.date().month() / 6; int halfYearNumber = oneDayEarlier.date().month() / 6;
timeText = oneDayEarlier.toString( "yyyy" ); timeText = oneDayEarlier.toString( "yyyy" );
timeText += QString( "-H%1" ).arg( halfYearNumber ); timeText += QString( "-H%1" ).arg( halfYearNumber );
break; break;
} }
case DateTimePeriod::YEAR: case RiaQDateTimeTools::DateTimePeriod::YEAR:
timeText = oneDayEarlier.toString( "yyyy" ); timeText = oneDayEarlier.toString( "yyyy" );
break; break;
case DateTimePeriod::DECADE: case RiaQDateTimeTools::DateTimePeriod::DECADE:
timeText = oneDayEarlier.toString( "yyyy" ); timeText = oneDayEarlier.toString( "yyyy" );
break; break;
} }
@ -2417,8 +2418,8 @@ CurvesData concatCurvesData( const std::vector<CurvesData>& curvesData )
{ {
CVF_ASSERT( !curvesData.empty() ); CVF_ASSERT( !curvesData.empty() );
DateTimePeriod period = curvesData.front().resamplePeriod; RiaQDateTimeTools::DateTimePeriod period = curvesData.front().resamplePeriod;
CurvesData resultCurvesData; CurvesData resultCurvesData;
resultCurvesData.resamplePeriod = period; resultCurvesData.resamplePeriod = period;

View File

@ -116,7 +116,8 @@ public:
RiuQwtPlotWidget* viewer() override; RiuQwtPlotWidget* viewer() override;
QString asciiDataForPlotExport() const override; QString asciiDataForPlotExport() const override;
QString asciiDataForSummaryPlotExport( DateTimePeriod resamplingPeriod, bool showTimeAsLongString ) const; QString asciiDataForSummaryPlotExport( RiaQDateTimeTools::DateTimePeriod resamplingPeriod,
bool showTimeAsLongString ) const;
std::vector<RimSummaryCurve*> summaryAndEnsembleCurves() const; std::vector<RimSummaryCurve*> summaryAndEnsembleCurves() const;
std::set<RiaSummaryCurveDefinition> summaryAndEnsembleCurveDefinitions() const; std::set<RiaSummaryCurveDefinition> summaryAndEnsembleCurveDefinitions() const;

View File

@ -216,44 +216,14 @@ caf::PdmObjectHandle* RimcSummaryCase_ResampleValues::execute()
auto adr = RifEclipseSummaryAddress::fromEclipseTextAddress( m_addressString().toStdString() ); auto adr = RifEclipseSummaryAddress::fromEclipseTextAddress( m_addressString().toStdString() );
std::vector<double> values; std::vector<double> values;
bool isOk = sumReader->values( adr, &values );
bool isOk = sumReader->values( adr, &values );
if ( !isOk ) return nullptr; if ( !isOk ) return nullptr;
auto timeValues = sumReader->timeSteps( adr ); auto timeValues = sumReader->timeSteps( adr );
DateTimePeriod period = DateTimePeriod::NONE;
{ QString periodString = m_resamplingPeriod().trimmed();
QString periodString = m_resamplingPeriod().trimmed(); RiaQDateTimeTools::DateTimePeriod period = RiaQDateTimeTools::DateTimePeriodEnum::fromText( periodString );
if ( periodString.compare( RiaQDateTimeTools::TIMESPAN_DAY_NAME, Qt::CaseInsensitive ) == 0 )
{
period = DateTimePeriod::DAY;
}
else if ( periodString.compare( RiaQDateTimeTools::TIMESPAN_WEEK_NAME, Qt::CaseInsensitive ) == 0 )
{
period = DateTimePeriod::WEEK;
}
else if ( periodString.compare( RiaQDateTimeTools::TIMESPAN_MONTH_NAME, Qt::CaseInsensitive ) == 0 )
{
period = DateTimePeriod::MONTH;
}
else if ( periodString.compare( RiaQDateTimeTools::TIMESPAN_QUARTER_NAME, Qt::CaseInsensitive ) == 0 )
{
period = DateTimePeriod::QUARTER;
}
else if ( periodString.compare( RiaQDateTimeTools::TIMESPAN_HALFYEAR_NAME, Qt::CaseInsensitive ) == 0 )
{
period = DateTimePeriod::HALFYEAR;
}
else if ( periodString.compare( RiaQDateTimeTools::TIMESPAN_YEAR_NAME, Qt::CaseInsensitive ) == 0 )
{
period = DateTimePeriod::YEAR;
}
else if ( periodString.compare( RiaQDateTimeTools::TIMESPAN_DECADE_NAME, Qt::CaseInsensitive ) == 0 )
{
period = DateTimePeriod::DECADE;
}
}
RiaTimeHistoryCurveResampler resampler; RiaTimeHistoryCurveResampler resampler;
resampler.setCurveData( values, timeValues ); resampler.setCurveData( values, timeValues );

View File

@ -35,7 +35,7 @@ TEST( RiaTimeHistoryCurveResampler, Test_Resampling_NoPeriod )
RiaTimeHistoryCurveResampler resampler; RiaTimeHistoryCurveResampler resampler;
resampler.setCurveData( dataValues, toTime_tVector( timeStrings ) ); resampler.setCurveData( dataValues, toTime_tVector( timeStrings ) );
resampler.resampleAndComputeWeightedMeanValues( DateTimePeriod::MONTH ); resampler.resampleAndComputeWeightedMeanValues( RiaQDateTimeTools::DateTimePeriod::MONTH );
EXPECT_EQ( 1, (int)resampler.resampledTimeSteps().size() ); EXPECT_EQ( 1, (int)resampler.resampledTimeSteps().size() );
EXPECT_EQ( toTime_t( "2018-03-01" ), resampler.resampledTimeSteps()[0] ); EXPECT_EQ( toTime_t( "2018-03-01" ), resampler.resampledTimeSteps()[0] );
@ -52,7 +52,7 @@ TEST( RiaTimeHistoryCurveResampler, Test_Resampling_Decade )
RiaTimeHistoryCurveResampler resampler; RiaTimeHistoryCurveResampler resampler;
resampler.setCurveData( dataValues, toTime_tVector( timeStrings ) ); resampler.setCurveData( dataValues, toTime_tVector( timeStrings ) );
resampler.resampleAndComputeWeightedMeanValues( DateTimePeriod::DECADE ); resampler.resampleAndComputeWeightedMeanValues( RiaQDateTimeTools::DateTimePeriod::DECADE );
EXPECT_EQ( 4, (int)resampler.resampledTimeSteps().size() ); EXPECT_EQ( 4, (int)resampler.resampledTimeSteps().size() );
EXPECT_EQ( toTime_t( "1990-01-01" ), resampler.resampledTimeSteps()[0] ); EXPECT_EQ( toTime_t( "1990-01-01" ), resampler.resampledTimeSteps()[0] );
@ -72,7 +72,7 @@ TEST( RiaTimeHistoryCurveResampler, Test_Resampling_Year )
RiaTimeHistoryCurveResampler resampler; RiaTimeHistoryCurveResampler resampler;
resampler.setCurveData( dataValues, toTime_tVector( timeStrings ) ); resampler.setCurveData( dataValues, toTime_tVector( timeStrings ) );
resampler.resampleAndComputeWeightedMeanValues( DateTimePeriod::YEAR ); resampler.resampleAndComputeWeightedMeanValues( RiaQDateTimeTools::DateTimePeriod::YEAR );
EXPECT_EQ( 5, (int)resampler.resampledTimeSteps().size() ); EXPECT_EQ( 5, (int)resampler.resampledTimeSteps().size() );
EXPECT_EQ( toTime_t( "2015-01-01" ), resampler.resampledTimeSteps()[0] ); EXPECT_EQ( toTime_t( "2015-01-01" ), resampler.resampledTimeSteps()[0] );
@ -93,7 +93,7 @@ TEST( RiaTimeHistoryCurveResampler, Test_Resampling_HalfYear )
RiaTimeHistoryCurveResampler resampler; RiaTimeHistoryCurveResampler resampler;
resampler.setCurveData( dataValues, toTime_tVector( timeStrings ) ); resampler.setCurveData( dataValues, toTime_tVector( timeStrings ) );
resampler.resampleAndComputeWeightedMeanValues( DateTimePeriod::HALFYEAR ); resampler.resampleAndComputeWeightedMeanValues( RiaQDateTimeTools::DateTimePeriod::HALFYEAR );
EXPECT_EQ( 5, (int)resampler.resampledTimeSteps().size() ); EXPECT_EQ( 5, (int)resampler.resampledTimeSteps().size() );
EXPECT_EQ( toTime_t( "2016-07-01" ), resampler.resampledTimeSteps()[0] ); EXPECT_EQ( toTime_t( "2016-07-01" ), resampler.resampledTimeSteps()[0] );
@ -114,7 +114,7 @@ TEST( RiaTimeHistoryCurveResampler, Test_Resampling_Quarter )
RiaTimeHistoryCurveResampler resampler; RiaTimeHistoryCurveResampler resampler;
resampler.setCurveData( dataValues, toTime_tVector( timeStrings ) ); resampler.setCurveData( dataValues, toTime_tVector( timeStrings ) );
resampler.resampleAndComputeWeightedMeanValues( DateTimePeriod::QUARTER ); resampler.resampleAndComputeWeightedMeanValues( RiaQDateTimeTools::DateTimePeriod::QUARTER );
EXPECT_EQ( 7, (int)resampler.resampledTimeSteps().size() ); EXPECT_EQ( 7, (int)resampler.resampledTimeSteps().size() );
EXPECT_EQ( toTime_t( "2016-10-01" ), resampler.resampledTimeSteps()[0] ); EXPECT_EQ( toTime_t( "2016-10-01" ), resampler.resampledTimeSteps()[0] );
@ -137,7 +137,7 @@ TEST( RiaTimeHistoryCurveResampler, Test_Resampling_Month )
RiaTimeHistoryCurveResampler resampler; RiaTimeHistoryCurveResampler resampler;
resampler.setCurveData( dataValues, toTime_tVector( timeStrings ) ); resampler.setCurveData( dataValues, toTime_tVector( timeStrings ) );
resampler.resampleAndComputeWeightedMeanValues( DateTimePeriod::MONTH ); resampler.resampleAndComputeWeightedMeanValues( RiaQDateTimeTools::DateTimePeriod::MONTH );
EXPECT_EQ( 6, (int)resampler.resampledTimeSteps().size() ); EXPECT_EQ( 6, (int)resampler.resampledTimeSteps().size() );
EXPECT_EQ( toTime_t( "2017-10-01" ), resampler.resampledTimeSteps()[0] ); EXPECT_EQ( toTime_t( "2017-10-01" ), resampler.resampledTimeSteps()[0] );
@ -159,7 +159,7 @@ TEST( RiaTimeHistoryCurveResampler, Test_Resampling_Week )
RiaTimeHistoryCurveResampler resampler; RiaTimeHistoryCurveResampler resampler;
resampler.setCurveData( dataValues, toTime_tVector( timeStrings ) ); resampler.setCurveData( dataValues, toTime_tVector( timeStrings ) );
resampler.resampleAndComputeWeightedMeanValues( DateTimePeriod::WEEK ); resampler.resampleAndComputeWeightedMeanValues( RiaQDateTimeTools::DateTimePeriod::WEEK );
EXPECT_EQ( 10, (int)resampler.resampledTimeSteps().size() ); EXPECT_EQ( 10, (int)resampler.resampledTimeSteps().size() );
EXPECT_EQ( toTime_t( "2017-11-06" ), resampler.resampledTimeSteps()[0] ); EXPECT_EQ( toTime_t( "2017-11-06" ), resampler.resampledTimeSteps()[0] );
@ -185,7 +185,7 @@ TEST( RiaTimeHistoryCurveResampler, Test_Resampling_NoSampleCrossingPeriodBounda
RiaTimeHistoryCurveResampler resampler; RiaTimeHistoryCurveResampler resampler;
resampler.setCurveData( dataValues, toTime_tVector( timeStrings ) ); resampler.setCurveData( dataValues, toTime_tVector( timeStrings ) );
resampler.resampleAndComputeWeightedMeanValues( DateTimePeriod::YEAR ); resampler.resampleAndComputeWeightedMeanValues( RiaQDateTimeTools::DateTimePeriod::YEAR );
EXPECT_EQ( 1, (int)resampler.resampledTimeSteps().size() ); EXPECT_EQ( 1, (int)resampler.resampledTimeSteps().size() );
EXPECT_EQ( toTime_t( "2018-01-01" ), resampler.resampledTimeSteps()[0] ); EXPECT_EQ( toTime_t( "2018-01-01" ), resampler.resampledTimeSteps()[0] );
@ -202,7 +202,7 @@ TEST( RiaTimeHistoryCurveResampler, Test_WeightedMean_SingleSample )
RiaTimeHistoryCurveResampler resampler; RiaTimeHistoryCurveResampler resampler;
resampler.setCurveData( dataValues, toTime_tVector( timeStrings ) ); resampler.setCurveData( dataValues, toTime_tVector( timeStrings ) );
resampler.resampleAndComputeWeightedMeanValues( DateTimePeriod::MONTH ); resampler.resampleAndComputeWeightedMeanValues( RiaQDateTimeTools::DateTimePeriod::MONTH );
EXPECT_EQ( 1, (int)resampler.resampledTimeSteps().size() ); EXPECT_EQ( 1, (int)resampler.resampledTimeSteps().size() );
EXPECT_EQ( toTime_t( "2018-03-01" ), resampler.resampledTimeSteps()[0] ); EXPECT_EQ( toTime_t( "2018-03-01" ), resampler.resampledTimeSteps()[0] );
@ -222,7 +222,7 @@ TEST( RiaTimeHistoryCurveResampler, Test_WeightedMean_Days )
RiaTimeHistoryCurveResampler resampler; RiaTimeHistoryCurveResampler resampler;
resampler.setCurveData( dataValues, toTime_tVector( timeStrings ) ); resampler.setCurveData( dataValues, toTime_tVector( timeStrings ) );
resampler.resampleAndComputeWeightedMeanValues( DateTimePeriod::DAY ); resampler.resampleAndComputeWeightedMeanValues( RiaQDateTimeTools::DateTimePeriod::DAY );
EXPECT_EQ( 5, (int)resampler.resampledTimeSteps().size() ); EXPECT_EQ( 5, (int)resampler.resampledTimeSteps().size() );
EXPECT_EQ( toTime_t( "2018-02-03" ), resampler.resampledTimeSteps()[0] ); EXPECT_EQ( toTime_t( "2018-02-03" ), resampler.resampledTimeSteps()[0] );
@ -256,7 +256,7 @@ TEST( RiaTimeHistoryCurveResampler, Test_WeightedMean_Decade )
RiaTimeHistoryCurveResampler resampler; RiaTimeHistoryCurveResampler resampler;
resampler.setCurveData( dataValues, toTime_tVector( timeStrings ) ); resampler.setCurveData( dataValues, toTime_tVector( timeStrings ) );
resampler.resampleAndComputeWeightedMeanValues( DateTimePeriod::DECADE ); resampler.resampleAndComputeWeightedMeanValues( RiaQDateTimeTools::DateTimePeriod::DECADE );
EXPECT_EQ( 3, (int)resampler.resampledTimeSteps().size() ); EXPECT_EQ( 3, (int)resampler.resampledTimeSteps().size() );
EXPECT_EQ( tp0, resampler.resampledTimeSteps()[0] ); EXPECT_EQ( tp0, resampler.resampledTimeSteps()[0] );
@ -287,7 +287,7 @@ TEST( RiaTimeHistoryCurveResampler, Test_WeightedMean_SamplesStartBeforePeriod )
RiaTimeHistoryCurveResampler resampler; RiaTimeHistoryCurveResampler resampler;
resampler.setCurveData( dataValues, toTime_tVector( timeStrings ) ); resampler.setCurveData( dataValues, toTime_tVector( timeStrings ) );
resampler.resampleAndComputeWeightedMeanValues( DateTimePeriod::MONTH ); resampler.resampleAndComputeWeightedMeanValues( RiaQDateTimeTools::DateTimePeriod::MONTH );
EXPECT_EQ( 3, (int)resampler.resampledTimeSteps().size() ); EXPECT_EQ( 3, (int)resampler.resampledTimeSteps().size() );
EXPECT_EQ( tp0, resampler.resampledTimeSteps()[0] ); EXPECT_EQ( tp0, resampler.resampledTimeSteps()[0] );
@ -320,7 +320,7 @@ TEST( RiaTimeHistoryCurveResampler, Test_WeightedMean_SamplesStartBeforePeriod_T
RiaTimeHistoryCurveResampler resampler; RiaTimeHistoryCurveResampler resampler;
resampler.setCurveData( dataValues, toTime_tVector( timeStrings ) ); resampler.setCurveData( dataValues, toTime_tVector( timeStrings ) );
resampler.resampleAndComputeWeightedMeanValues( DateTimePeriod::MONTH ); resampler.resampleAndComputeWeightedMeanValues( RiaQDateTimeTools::DateTimePeriod::MONTH );
EXPECT_EQ( 3, (int)resampler.resampledTimeSteps().size() ); EXPECT_EQ( 3, (int)resampler.resampledTimeSteps().size() );
EXPECT_EQ( tp0, resampler.resampledTimeSteps()[0] ); EXPECT_EQ( tp0, resampler.resampledTimeSteps()[0] );
@ -349,7 +349,7 @@ TEST( RiaTimeHistoryCurveResampler, Test_WeightedMean_SamplesStartAndEndMatchPer
RiaTimeHistoryCurveResampler resampler; RiaTimeHistoryCurveResampler resampler;
resampler.setCurveData( dataValues, toTime_tVector( timeStrings ) ); resampler.setCurveData( dataValues, toTime_tVector( timeStrings ) );
resampler.resampleAndComputeWeightedMeanValues( DateTimePeriod::MONTH ); resampler.resampleAndComputeWeightedMeanValues( RiaQDateTimeTools::DateTimePeriod::MONTH );
EXPECT_EQ( 2, (int)resampler.resampledTimeSteps().size() ); EXPECT_EQ( 2, (int)resampler.resampledTimeSteps().size() );
EXPECT_EQ( toTime_t( "2018-02-01" ), resampler.resampledTimeSteps().front() ); EXPECT_EQ( toTime_t( "2018-02-01" ), resampler.resampledTimeSteps().front() );
@ -379,7 +379,7 @@ TEST( RiaTimeHistoryCurveResampler, Test_WeightedMean_SamplesStartMatchPeriodSta
RiaTimeHistoryCurveResampler resampler; RiaTimeHistoryCurveResampler resampler;
resampler.setCurveData( dataValues, toTime_tVector( timeStrings ) ); resampler.setCurveData( dataValues, toTime_tVector( timeStrings ) );
resampler.resampleAndComputeWeightedMeanValues( DateTimePeriod::MONTH ); resampler.resampleAndComputeWeightedMeanValues( RiaQDateTimeTools::DateTimePeriod::MONTH );
EXPECT_EQ( 3, (int)resampler.resampledTimeSteps().size() ); EXPECT_EQ( 3, (int)resampler.resampledTimeSteps().size() );
EXPECT_EQ( tp0, resampler.resampledTimeSteps()[0] ); EXPECT_EQ( tp0, resampler.resampledTimeSteps()[0] );
@ -409,7 +409,7 @@ TEST( RiaTimeHistoryCurveResampler, Test_WeightedMean_MultipleSamplesInLastPerio
RiaTimeHistoryCurveResampler resampler; RiaTimeHistoryCurveResampler resampler;
resampler.setCurveData( dataValues, toTime_tVector( timeStrings ) ); resampler.setCurveData( dataValues, toTime_tVector( timeStrings ) );
resampler.resampleAndComputeWeightedMeanValues( DateTimePeriod::MONTH ); resampler.resampleAndComputeWeightedMeanValues( RiaQDateTimeTools::DateTimePeriod::MONTH );
EXPECT_EQ( 2, (int)resampler.resampledTimeSteps().size() ); EXPECT_EQ( 2, (int)resampler.resampledTimeSteps().size() );
EXPECT_EQ( tp0, resampler.resampledTimeSteps()[0] ); EXPECT_EQ( tp0, resampler.resampledTimeSteps()[0] );
@ -433,7 +433,7 @@ TEST( RiaTimeHistoryCurveResampler, Test_PeriodEndValues_SingleSample )
RiaTimeHistoryCurveResampler resampler; RiaTimeHistoryCurveResampler resampler;
resampler.setCurveData( dataValues, toTime_tVector( timeStrings ) ); resampler.setCurveData( dataValues, toTime_tVector( timeStrings ) );
resampler.resampleAndComputePeriodEndValues( DateTimePeriod::MONTH ); resampler.resampleAndComputePeriodEndValues( RiaQDateTimeTools::DateTimePeriod::MONTH );
EXPECT_EQ( 1, (int)resampler.resampledTimeSteps().size() ); EXPECT_EQ( 1, (int)resampler.resampledTimeSteps().size() );
EXPECT_EQ( toTime_t( "2018-03-01" ), resampler.resampledTimeSteps()[0] ); EXPECT_EQ( toTime_t( "2018-03-01" ), resampler.resampledTimeSteps()[0] );
@ -459,7 +459,7 @@ TEST( RiaTimeHistoryCurveResampler, Test_PeriodEndValues_SamplesStartBeforePerio
RiaTimeHistoryCurveResampler resampler; RiaTimeHistoryCurveResampler resampler;
resampler.setCurveData( dataValues, toTime_tVector( timeStrings ) ); resampler.setCurveData( dataValues, toTime_tVector( timeStrings ) );
resampler.resampleAndComputePeriodEndValues( DateTimePeriod::MONTH ); resampler.resampleAndComputePeriodEndValues( RiaQDateTimeTools::DateTimePeriod::MONTH );
EXPECT_EQ( 3, (int)resampler.resampledTimeSteps().size() ); EXPECT_EQ( 3, (int)resampler.resampledTimeSteps().size() );
EXPECT_EQ( tp0, resampler.resampledTimeSteps()[0] ); EXPECT_EQ( tp0, resampler.resampledTimeSteps()[0] );
@ -486,7 +486,7 @@ TEST( RiaTimeHistoryCurveResampler, Test_PeriodEndValues_SamplesStartMatchPeriod
RiaTimeHistoryCurveResampler resampler; RiaTimeHistoryCurveResampler resampler;
resampler.setCurveData( dataValues, toTime_tVector( timeStrings ) ); resampler.setCurveData( dataValues, toTime_tVector( timeStrings ) );
resampler.resampleAndComputePeriodEndValues( DateTimePeriod::MONTH ); resampler.resampleAndComputePeriodEndValues( RiaQDateTimeTools::DateTimePeriod::MONTH );
EXPECT_EQ( 3, (int)resampler.resampledTimeSteps().size() ); EXPECT_EQ( 3, (int)resampler.resampledTimeSteps().size() );
EXPECT_EQ( toTime_t( "2018-02-01" ), resampler.resampledTimeSteps()[0] ); EXPECT_EQ( toTime_t( "2018-02-01" ), resampler.resampledTimeSteps()[0] );
@ -509,7 +509,7 @@ TEST( RiaTimeHistoryCurveResampler, Test_PeriodEndValues_SamplesStartAndEndMatch
RiaTimeHistoryCurveResampler resampler; RiaTimeHistoryCurveResampler resampler;
resampler.setCurveData( dataValues, toTime_tVector( timeStrings ) ); resampler.setCurveData( dataValues, toTime_tVector( timeStrings ) );
resampler.resampleAndComputePeriodEndValues( DateTimePeriod::MONTH ); resampler.resampleAndComputePeriodEndValues( RiaQDateTimeTools::DateTimePeriod::MONTH );
EXPECT_EQ( 2, (int)resampler.resampledTimeSteps().size() ); EXPECT_EQ( 2, (int)resampler.resampledTimeSteps().size() );
EXPECT_EQ( toTime_t( "2018-02-01" ), resampler.resampledTimeSteps().front() ); EXPECT_EQ( toTime_t( "2018-02-01" ), resampler.resampledTimeSteps().front() );