summaryrefslogtreecommitdiffstats
path: root/src/boost/libs/date_time/test/posix_time/testtime_wstream.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/boost/libs/date_time/test/posix_time/testtime_wstream.cpp')
-rw-r--r--src/boost/libs/date_time/test/posix_time/testtime_wstream.cpp89
1 files changed, 89 insertions, 0 deletions
diff --git a/src/boost/libs/date_time/test/posix_time/testtime_wstream.cpp b/src/boost/libs/date_time/test/posix_time/testtime_wstream.cpp
new file mode 100644
index 000000000..f2b0c45c0
--- /dev/null
+++ b/src/boost/libs/date_time/test/posix_time/testtime_wstream.cpp
@@ -0,0 +1,89 @@
+/* Copyright (c) 2003-2004 CrystalClear Software, Inc.
+ * Use, modification and distribution is subject to the
+ * Boost Software License, Version 1.0. (See accompanying
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+ * Author: Bart Garst
+ * $Date$
+ */
+#include <iostream>
+#include <sstream>
+#include <boost/date_time/gregorian/gregorian.hpp>
+#include <boost/date_time/posix_time/posix_time.hpp>
+#include "../testfrmwk.hpp"
+#include <boost/lexical_cast.hpp>
+
+using namespace boost::gregorian;
+using namespace boost::posix_time;
+using boost::lexical_cast;
+
+int main(){
+#if defined(BOOST_NO_STD_WSTRING) || \
+ defined(BOOST_DATE_TIME_INCLUDE_LIMITED_HEADERS)
+ check("No wstring/wstream support for this compiler", false);
+#else
+
+ std::wstring res, ws;
+ std::wstringstream wss;
+ /* time_period was used because all the time-type objects
+ * that have operator<< can be easily accessed from it.
+ * Tose are: ptime, time_duration, time_period */
+ date d1(2003,Jan,20), d2(2003,May,10);
+ time_period tp(ptime(d1,hours(1)), ptime(d2,hours(15)));
+
+ // ptime
+ wss << tp.begin();
+ res = L"2003-Jan-20 01:00:00";
+ check("ptime op<<", res == wss.str());
+ wss.str(L"");
+ ws = to_simple_wstring(tp.begin());
+ check("ptime to_simple_wstring", res == ws);
+ res = L"20030120T010000";
+ ws = to_iso_wstring(tp.begin());
+ check("ptime to_iso_wstring", res == ws);
+ res = L"2003-01-20T01:00:00";
+ ws = to_iso_extended_wstring(tp.begin());
+ check("ptime to_iso_extended_wstring", res == ws);
+
+ // time_duration
+ wss << tp.length();
+ res = L"2654:00:00";
+ check("time_duration", res == wss.str());
+ wss.str(L"");
+ ws = to_simple_wstring(tp.length());
+ check("time_duration to_simple_wstring", res == ws);
+ res = L"26540000";
+ ws = to_iso_wstring(tp.length());
+ check("time_duration to_iso_wstring", res == ws);
+
+ // time_period
+ wss << tp;
+#ifdef BOOST_DATE_TIME_POSIX_TIME_STD_CONFIG
+ res = L"[2003-Jan-20 01:00:00/2003-May-10 14:59:59.999999999]";
+#else
+ res = L"[2003-Jan-20 01:00:00/2003-May-10 14:59:59.999999]";
+#endif
+ check("time_period", res == wss.str());
+ wss.str(L"");
+ ws = to_simple_wstring(tp);
+ check("time_period to_simple_wstring", res == ws);
+
+ // special values
+ time_duration sv_td(neg_infin);
+ date sv_d(pos_infin);
+ ptime sv_tp(sv_d,hours(1));
+ res = L"+infinity";
+ wss << sv_tp;
+ check("ptime op<< special value", res == wss.str());
+ wss.str(L"");
+ ws = to_simple_wstring(sv_tp);
+ check("ptime to_simple_wstring special value", res == ws);
+ res = L"-infinity";
+ wss << sv_td;
+ check("time_duration op<< special value", res == wss.str());
+ wss.str(L"");
+ ws = to_simple_wstring(sv_td);
+ check("time_duration to_simple_wstring special value", res == ws);
+
+#endif
+ return printTestStats();
+}