//===----------------------------------------------------------------------===// // // The LLVM Compiler Infrastructure // // This file is dual licensed under the MIT and the University of Illinois Open // Source Licenses. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // // class time_put // iter_type put(iter_type s, ios_base& str, char_type fill, const tm* t, // char format, char modifier = 0) const; #include #include #include "test_iterators.h" typedef std::time_put > F; class my_facet : public F { public: explicit my_facet(std::size_t refs = 0) : F(refs) {} }; int main() { const my_facet f(1); char str[200]; output_iterator iter; tm t = {0}; t.tm_sec = 6; t.tm_min = 3; t.tm_hour = 13; t.tm_mday = 2; t.tm_mon = 4; t.tm_year = 109; t.tm_wday = 6; t.tm_yday = -1; t.tm_isdst = 1; std::ios ios(0); { iter = f.put(output_iterator(str), ios, '*', &t, 'A'); std::string ex(str, iter.base()); assert(ex == "Saturday"); } { iter = f.put(output_iterator(str), ios, '*', &t, 'a'); std::string ex(str, iter.base()); assert(ex == "Sat"); } { iter = f.put(output_iterator(str), ios, '*', &t, 'B'); std::string ex(str, iter.base()); assert(ex == "May"); } { iter = f.put(output_iterator(str), ios, '*', &t, 'b'); std::string ex(str, iter.base()); assert(ex == "May"); } { iter = f.put(output_iterator(str), ios, '*', &t, 'C'); std::string ex(str, iter.base()); assert(ex == "20"); } { iter = f.put(output_iterator(str), ios, '*', &t, 'c'); std::string ex(str, iter.base()); assert(ex == "Sat May 2 13:03:06 2009"); } { iter = f.put(output_iterator(str), ios, '*', &t, 'D'); std::string ex(str, iter.base()); assert(ex == "05/02/09"); } { iter = f.put(output_iterator(str), ios, '*', &t, 'd'); std::string ex(str, iter.base()); assert(ex == "02"); } { iter = f.put(output_iterator(str), ios, '*', &t, 'c', 'E'); std::string ex(str, iter.base()); assert(ex == "Sat May 2 13:03:06 2009"); } { iter = f.put(output_iterator(str), ios, '*', &t, 'C', 'E'); std::string ex(str, iter.base()); assert(ex == "20"); } { iter = f.put(output_iterator(str), ios, '*', &t, 'x', 'E'); std::string ex(str, iter.base()); assert(ex == "05/02/09"); } { iter = f.put(output_iterator(str), ios, '*', &t, 'X', 'E'); std::string ex(str, iter.base()); assert(ex == "13:03:06"); } { iter = f.put(output_iterator(str), ios, '*', &t, 'y', 'E'); std::string ex(str, iter.base()); assert(ex == "09"); } { iter = f.put(output_iterator(str), ios, '*', &t, 'Y', 'E'); std::string ex(str, iter.base()); assert(ex == "2009"); } { iter = f.put(output_iterator(str), ios, '*', &t, 'd', 'O'); std::string ex(str, iter.base()); assert(ex == "02"); } { iter = f.put(output_iterator(str), ios, '*', &t, 'e', 'O'); std::string ex(str, iter.base()); assert(ex == " 2"); } { iter = f.put(output_iterator(str), ios, '*', &t, 'H', 'O'); std::string ex(str, iter.base()); assert(ex == "13"); } { iter = f.put(output_iterator(str), ios, '*', &t, 'I', 'O'); std::string ex(str, iter.base()); assert(ex == "01"); } { iter = f.put(output_iterator(str), ios, '*', &t, 'm', 'O'); std::string ex(str, iter.base()); assert(ex == "05"); } { iter = f.put(output_iterator(str), ios, '*', &t, 'M', 'O'); std::string ex(str, iter.base()); assert(ex == "03"); } { iter = f.put(output_iterator(str), ios, '*', &t, 'S', 'O'); std::string ex(str, iter.base()); assert(ex == "06"); } { iter = f.put(output_iterator(str), ios, '*', &t, 'u', 'O'); std::string ex(str, iter.base()); assert(ex == "6"); } { iter = f.put(output_iterator(str), ios, '*', &t, 'U', 'O'); std::string ex(str, iter.base()); assert(ex == "00"); } { iter = f.put(output_iterator(str), ios, '*', &t, 'V', 'O'); std::string ex(str, iter.base()); assert(ex == "52"); } { iter = f.put(output_iterator(str), ios, '*', &t, 'w', 'O'); std::string ex(str, iter.base()); assert(ex == "6"); } { iter = f.put(output_iterator(str), ios, '*', &t, 'W', 'O'); std::string ex(str, iter.base()); assert(ex == "00"); } { iter = f.put(output_iterator(str), ios, '*', &t, 'y', 'O'); std::string ex(str, iter.base()); assert(ex == "09"); } { iter = f.put(output_iterator(str), ios, '*', &t, 'B', 'O'); std::string ex(str, iter.base()); assert(ex == "May"); } { iter = f.put(output_iterator(str), ios, '*', &t, 'e'); std::string ex(str, iter.base()); assert(ex == " 2"); } { iter = f.put(output_iterator(str), ios, '*', &t, 'F'); std::string ex(str, iter.base()); assert(ex == "2009-05-02"); } { iter = f.put(output_iterator(str), ios, '*', &t, 'G'); std::string ex(str, iter.base()); assert(ex == "2008"); } { iter = f.put(output_iterator(str), ios, '*', &t, 'g'); std::string ex(str, iter.base()); assert(ex == "08"); } { iter = f.put(output_iterator(str), ios, '*', &t, 'H'); std::string ex(str, iter.base()); assert(ex == "13"); } { iter = f.put(output_iterator(str), ios, '*', &t, 'h'); std::string ex(str, iter.base()); assert(ex == "May"); } { iter = f.put(output_iterator(str), ios, '*', &t, 'I'); std::string ex(str, iter.base()); assert(ex == "01"); } { iter = f.put(output_iterator(str), ios, '*', &t, 'j'); std::string ex(str, iter.base()); assert(ex == "000"); } { iter = f.put(output_iterator(str), ios, '*', &t, 'k'); std::string ex(str, iter.base()); assert(ex == "13"); } { iter = f.put(output_iterator(str), ios, '*', &t, 'l'); std::string ex(str, iter.base()); assert(ex == " 1"); } { iter = f.put(output_iterator(str), ios, '*', &t, 'M'); std::string ex(str, iter.base()); assert(ex == "03"); } { iter = f.put(output_iterator(str), ios, '*', &t, 'm'); std::string ex(str, iter.base()); assert(ex == "05"); } { iter = f.put(output_iterator(str), ios, '*', &t, 'n'); std::string ex(str, iter.base()); assert(ex == "\n"); } { iter = f.put(output_iterator(str), ios, '*', &t, 'p'); std::string ex(str, iter.base()); assert(ex == "PM"); } { iter = f.put(output_iterator(str), ios, '*', &t, 'R'); std::string ex(str, iter.base()); assert(ex == "13:03"); } { iter = f.put(output_iterator(str), ios, '*', &t, 'r'); std::string ex(str, iter.base()); assert(ex == "01:03:06 PM"); } { iter = f.put(output_iterator(str), ios, '*', &t, 'S'); std::string ex(str, iter.base()); assert(ex == "06"); } { iter = f.put(output_iterator(str), ios, '*', &t, 's'); std::string ex(str, iter.base()); // assert(ex == "1241283786"); depends on time zone } { iter = f.put(output_iterator(str), ios, '*', &t, 'T'); std::string ex(str, iter.base()); assert(ex == "13:03:06"); } { iter = f.put(output_iterator(str), ios, '*', &t, 't'); std::string ex(str, iter.base()); assert(ex == "\t"); } { iter = f.put(output_iterator(str), ios, '*', &t, 'U'); std::string ex(str, iter.base()); assert(ex == "00"); } { iter = f.put(output_iterator(str), ios, '*', &t, 'u'); std::string ex(str, iter.base()); assert(ex == "6"); } { iter = f.put(output_iterator(str), ios, '*', &t, 'V'); std::string ex(str, iter.base()); assert(ex == "52"); } { iter = f.put(output_iterator(str), ios, '*', &t, 'v'); std::string ex(str, iter.base()); assert(ex == " 2-May-2009"); } { iter = f.put(output_iterator(str), ios, '*', &t, 'W'); std::string ex(str, iter.base()); assert(ex == "00"); } { iter = f.put(output_iterator(str), ios, '*', &t, 'w'); std::string ex(str, iter.base()); assert(ex == "6"); } { iter = f.put(output_iterator(str), ios, '*', &t, 'X'); std::string ex(str, iter.base()); assert(ex == "13:03:06"); } { iter = f.put(output_iterator(str), ios, '*', &t, 'x'); std::string ex(str, iter.base()); assert(ex == "05/02/09"); } { iter = f.put(output_iterator(str), ios, '*', &t, 'Y'); std::string ex(str, iter.base()); assert(ex == "2009"); } { iter = f.put(output_iterator(str), ios, '*', &t, 'y'); std::string ex(str, iter.base()); assert(ex == "09"); } { iter = f.put(output_iterator(str), ios, '*', &t, 'Z'); std::string ex(str, iter.base()); // assert(ex == "EDT"); depends on time zone } { iter = f.put(output_iterator(str), ios, '*', &t, 'z'); std::string ex(str, iter.base()); // assert(ex == "-0400"); depends on time zone } { iter = f.put(output_iterator(str), ios, '*', &t, '+'); std::string ex(str, iter.base()); // assert(ex == "Sat May 2 13:03:06 EDT 2009"); depends on time zone } { iter = f.put(output_iterator(str), ios, '*', &t, '%'); std::string ex(str, iter.base()); assert(ex == "%"); } { iter = f.put(output_iterator(str), ios, '*', &t, '%', 'J'); std::string ex(str, iter.base()); assert(ex == "J%"); } { iter = f.put(output_iterator(str), ios, '*', &t, 'J'); std::string ex(str, iter.base()); assert(ex == "J"); } }