diff --git a/test/variant_cast.t.cpp b/test/variant_cast.t.cpp index 5e7c4165e..8eb2c63cc 100644 --- a/test/variant_cast.t.cpp +++ b/test/variant_cast.t.cpp @@ -36,6 +36,8 @@ int main (int, char**) { UnitTest t (81); + time_t now = time (nullptr); + try { // Variant::type_boolean --> * @@ -208,8 +210,10 @@ int main (int, char**) Variant v45 ((time_t) 1234567890, Variant::type_date); v45.cast (Variant::type_duration); - t.ok (v45.type () == Variant::type_duration, "cast date --> duration"); - t.ok (v45.get_duration () == 1234567890, "cast date --> duration"); + t.ok (v45.type () == Variant::type_duration, "cast date --> duration"); + t.ok (v45.get_duration () <= 1234567890 - now, "cast date --> duration"); + // Assuming this unit test takes less than 10 min to execute + t.ok (v45.get_duration () > 1234567890 - now - 600, "cast date --> duration"); // Variant::type_duration --> * Variant v50 ((time_t) 12345, Variant::type_duration); @@ -235,12 +239,13 @@ int main (int, char**) Variant v54 ((time_t) 12345, Variant::type_duration); v54.cast (Variant::type_date); t.ok (v54.type () == Variant::type_date, "cast duration --> date"); - t.is (v54.get_date (), 12345, "cast duration --> date"); + t.ok (v54.get_date () >= 12345 + now, "cast duration --> duration"); + t.ok (v54.get_date () < 12345 + now + 600, "cast duration --> duration"); Variant v55 ((time_t) 12345, Variant::type_duration); v55.cast (Variant::type_duration); - t.ok (v55.type () == Variant::type_duration, "cast duration --> duration"); - t.ok (v55.get_duration () == 12345, "cast duration --> duration"); + t.ok (v55.type () == Variant::type_duration, "cast duration --> duration"); + t.is (v55.get_duration (), 12345, "cast duration --> duration"); } catch (const std::string& e) diff --git a/test/variant_gt.t.cpp b/test/variant_gt.t.cpp index 003c40607..69dd44742 100644 --- a/test/variant_gt.t.cpp +++ b/test/variant_gt.t.cpp @@ -158,8 +158,10 @@ int main (int, char**) t.is (v44.get_bool (), false, "1234567890 > 1234567890 --> false"); Variant v45 = v4 > v5; + // 1234567890 corresponds to Fri Feb 13 06:31:30 PM EST 2009 hence 1200 + // (evaluated as now+1200s) be in future for any date after 2009-02-13 t.is (v45.type (), Variant::type_boolean, "1234567890 > 1200 --> boolean"); - t.is (v45.get_bool (), true, "1234567890 > 1200 --> true"); + t.is (v45.get_bool (), false, "1234567890 > 1200 --> false"); Variant v50 = v5 > v0; t.is (v50.type (), Variant::type_boolean, "1200 > true --> boolean"); @@ -178,8 +180,9 @@ int main (int, char**) t.is (v53.get_bool (), true, "1200 > 'foo' --> true"); Variant v54 = v5 > v4; + // Same reasoning as v45 t.is (v54.type (), Variant::type_boolean, "1200 > 1234567890 --> boolean"); - t.is (v54.get_bool (), false, "1200 > 1234567890 --> false"); + t.is (v54.get_bool (), true, "1200 > 1234567890 --> true"); Variant v55 = v5 > v5; t.is (v55.type (), Variant::type_boolean, "1200 > 1200 --> boolean"); diff --git a/test/variant_gte.t.cpp b/test/variant_gte.t.cpp index 5cc99ab1e..093358f0e 100644 --- a/test/variant_gte.t.cpp +++ b/test/variant_gte.t.cpp @@ -158,8 +158,10 @@ int main (int, char**) t.is (v44.get_bool (), true, "1234567890 >= 1234567890 --> true"); Variant v45 = v4 >= v5; + // 1234567890 corresponds to Fri Feb 13 06:31:30 PM EST 2009 hence 1200 + // (evaluated as now+1200s) be in future for any date after 2009-02-13 t.is (v45.type (), Variant::type_boolean, "1234567890 >= 1200 --> boolean"); - t.is (v45.get_bool (), true, "1234567890 >= 1200 --> true"); + t.is (v45.get_bool (), false, "1234567890 >= 1200 --> false"); Variant v50 = v5 >= v0; t.is (v50.type (), Variant::type_boolean, "1200 >= true --> boolean"); @@ -178,8 +180,9 @@ int main (int, char**) t.is (v53.get_bool (), true, "1200 >= 'foo' --> true"); Variant v54 = v5 >= v4; + // Same reasoning as v45 t.is (v54.type (), Variant::type_boolean, "1200 >= 1234567890 --> boolean"); - t.is (v54.get_bool (), false, "1200 >= 1234567890 --> false"); + t.is (v54.get_bool (), true, "1200 >= 1234567890 --> true"); Variant v55 = v5 >= v5; t.is (v55.type (), Variant::type_boolean, "1200 >= 1200 --> boolean"); diff --git a/test/variant_lt.t.cpp b/test/variant_lt.t.cpp index 0a7815eb8..56394f4c9 100644 --- a/test/variant_lt.t.cpp +++ b/test/variant_lt.t.cpp @@ -158,8 +158,10 @@ int main (int, char**) t.is (v44.get_bool (), false, "1234567890 < 1234567890 --> false"); Variant v45 = v4 < v5; + // 1234567890 corresponds to Fri Feb 13 06:31:30 PM EST 2009 hence 1200 + // (evaluated as now+1200s) be in future for any date after 2009-02-13 t.is (v45.type (), Variant::type_boolean, "1234567890 < 1200 --> boolean"); - t.is (v45.get_bool (), false, "1234567890 < 1200 --> false"); + t.is (v45.get_bool (), true, "1234567890 < 1200 --> true"); Variant v50 = v5 < v0; t.is (v50.type (), Variant::type_boolean, "1200 < true --> boolean"); @@ -178,8 +180,9 @@ int main (int, char**) t.is (v53.get_bool (), false, "1200 < 'foo' --> false"); Variant v54 = v5 < v4; + // Same logic as v45. t.is (v54.type (), Variant::type_boolean, "1200 < 1234567890 --> boolean"); - t.is (v54.get_bool (), true, "1200 < 1234567890 --> true"); + t.is (v54.get_bool (), false, "1200 < 1234567890 --> false"); Variant v55 = v5 < v5; t.is (v55.type (), Variant::type_boolean, "1200 < 1200 --> boolean");