1bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant//===----------------------------------------------------------------------===// 2bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant// 3f5256e16dfc425c1d466f6308d4026d529ce9e0bHoward Hinnant// The LLVM Compiler Infrastructure 4bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant// 5b64f8b07c104c6cc986570ac8ee0ed16a9f23976Howard Hinnant// This file is dual licensed under the MIT and the University of Illinois Open 6b64f8b07c104c6cc986570ac8ee0ed16a9f23976Howard Hinnant// Source Licenses. See LICENSE.TXT for details. 7bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant// 8bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant//===----------------------------------------------------------------------===// 9bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 10bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant// <locale> 11bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 12bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant// class time_get<charT, InputIterator> 13bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 14bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant// iter_type 15bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant// get_monthname(iter_type s, iter_type end, ios_base& str, 16bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant// ios_base::iostate& err, tm* t) const; 17bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 18bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#include <locale> 19bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#include <cassert> 2083e2c4d877fe2d7793868b1c6a5d9525a7c4d431Marshall Clow#include "test_iterators.h" 21bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 22bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnanttypedef input_iterator<const char*> I; 23bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 24bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnanttypedef std::time_get<char, I> F; 25bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 26bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnantclass my_facet 27bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant : public F 28bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant{ 29bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnantpublic: 30bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant explicit my_facet(std::size_t refs = 0) 31bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant : F(refs) {} 32bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant}; 33bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 34bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnantint main() 35bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant{ 36bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant const my_facet f(1); 37bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant std::ios ios(0); 38bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant std::ios_base::iostate err; 39bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant std::tm t; 40bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant { 41bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant const char in[] = "Jan"; 42bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant err = std::ios_base::goodbit; 43bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant t = std::tm(); 44bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant I i = f.get_monthname(I(in), I(in+sizeof(in)-1), ios, err, &t); 45bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(i.base() == in+3); 46bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(t.tm_mon == 0); 47bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(err == std::ios_base::eofbit); 48bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant } 49bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant { 50bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant const char in[] = "Feb"; 51bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant err = std::ios_base::goodbit; 52bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant t = std::tm(); 53bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant I i = f.get_monthname(I(in), I(in+sizeof(in)-1), ios, err, &t); 54bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(i.base() == in+3); 55bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(t.tm_mon == 1); 56bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(err == std::ios_base::eofbit); 57bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant } 58bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant { 59bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant const char in[] = "Mar"; 60bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant err = std::ios_base::goodbit; 61bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant t = std::tm(); 62bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant I i = f.get_monthname(I(in), I(in+sizeof(in)-1), ios, err, &t); 63bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(i.base() == in+3); 64bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(t.tm_mon == 2); 65bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(err == std::ios_base::eofbit); 66bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant } 67bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant { 68bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant const char in[] = "Apr"; 69bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant err = std::ios_base::goodbit; 70bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant t = std::tm(); 71bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant I i = f.get_monthname(I(in), I(in+sizeof(in)-1), ios, err, &t); 72bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(i.base() == in+3); 73bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(t.tm_mon == 3); 74bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(err == std::ios_base::eofbit); 75bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant } 76bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant { 77bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant const char in[] = "May"; 78bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant err = std::ios_base::goodbit; 79bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant t = std::tm(); 80bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant I i = f.get_monthname(I(in), I(in+sizeof(in)-1), ios, err, &t); 81bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(i.base() == in+3); 82bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(t.tm_mon == 4); 83bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(err == std::ios_base::eofbit); 84bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant } 85bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant { 86bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant const char in[] = "Jun"; 87bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant err = std::ios_base::goodbit; 88bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant t = std::tm(); 89bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant I i = f.get_monthname(I(in), I(in+sizeof(in)-1), ios, err, &t); 90bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(i.base() == in+3); 91bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(t.tm_mon == 5); 92bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(err == std::ios_base::eofbit); 93bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant } 94bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant { 95bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant const char in[] = "Jul"; 96bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant err = std::ios_base::goodbit; 97bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant t = std::tm(); 98bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant I i = f.get_monthname(I(in), I(in+sizeof(in)-1), ios, err, &t); 99bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(i.base() == in+3); 100bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(t.tm_mon == 6); 101bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(err == std::ios_base::eofbit); 102bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant } 103bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant { 104bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant const char in[] = "Aug"; 105bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant err = std::ios_base::goodbit; 106bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant t = std::tm(); 107bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant I i = f.get_monthname(I(in), I(in+sizeof(in)-1), ios, err, &t); 108bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(i.base() == in+3); 109bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(t.tm_mon == 7); 110bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(err == std::ios_base::eofbit); 111bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant } 112bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant { 113bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant const char in[] = "Sep"; 114bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant err = std::ios_base::goodbit; 115bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant t = std::tm(); 116bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant I i = f.get_monthname(I(in), I(in+sizeof(in)-1), ios, err, &t); 117bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(i.base() == in+3); 118bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(t.tm_mon == 8); 119bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(err == std::ios_base::eofbit); 120bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant } 121bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant { 122bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant const char in[] = "Oct"; 123bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant err = std::ios_base::goodbit; 124bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant t = std::tm(); 125bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant I i = f.get_monthname(I(in), I(in+sizeof(in)-1), ios, err, &t); 126bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(i.base() == in+3); 127bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(t.tm_mon == 9); 128bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(err == std::ios_base::eofbit); 129bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant } 130bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant { 131bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant const char in[] = "Nov"; 132bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant err = std::ios_base::goodbit; 133bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant t = std::tm(); 134bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant I i = f.get_monthname(I(in), I(in+sizeof(in)-1), ios, err, &t); 135bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(i.base() == in+3); 136bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(t.tm_mon == 10); 137bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(err == std::ios_base::eofbit); 138bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant } 139bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant { 140bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant const char in[] = "Dec"; 141bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant err = std::ios_base::goodbit; 142bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant t = std::tm(); 143bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant I i = f.get_monthname(I(in), I(in+sizeof(in)-1), ios, err, &t); 144bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(i.base() == in+3); 145bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(t.tm_mon == 11); 146bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(err == std::ios_base::eofbit); 147bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant } 148bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant { 149bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant const char in[] = "January"; 150bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant err = std::ios_base::goodbit; 151bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant t = std::tm(); 152bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant I i = f.get_monthname(I(in), I(in+sizeof(in)-1), ios, err, &t); 153bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(i.base() == in+7); 154bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(t.tm_mon == 0); 155bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(err == std::ios_base::eofbit); 156bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant } 157bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant { 158bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant const char in[] = "February"; 159bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant err = std::ios_base::goodbit; 160bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant t = std::tm(); 161bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant I i = f.get_monthname(I(in), I(in+sizeof(in)-1), ios, err, &t); 162bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(i.base() == in+8); 163bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(t.tm_mon == 1); 164bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(err == std::ios_base::eofbit); 165bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant } 166bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant { 167bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant const char in[] = "March"; 168bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant err = std::ios_base::goodbit; 169bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant t = std::tm(); 170bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant I i = f.get_monthname(I(in), I(in+sizeof(in)-1), ios, err, &t); 171bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(i.base() == in+5); 172bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(t.tm_mon == 2); 173bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(err == std::ios_base::eofbit); 174bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant } 175bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant { 176bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant const char in[] = "April"; 177bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant err = std::ios_base::goodbit; 178bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant t = std::tm(); 179bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant I i = f.get_monthname(I(in), I(in+sizeof(in)-1), ios, err, &t); 180bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(i.base() == in+5); 181bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(t.tm_mon == 3); 182bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(err == std::ios_base::eofbit); 183bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant } 184bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant { 185bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant const char in[] = "May"; 186bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant err = std::ios_base::goodbit; 187bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant t = std::tm(); 188bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant I i = f.get_monthname(I(in), I(in+sizeof(in)-1), ios, err, &t); 189bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(i.base() == in+3); 190bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(t.tm_mon == 4); 191bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(err == std::ios_base::eofbit); 192bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant } 193bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant { 194bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant const char in[] = "June"; 195bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant err = std::ios_base::goodbit; 196bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant t = std::tm(); 197bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant I i = f.get_monthname(I(in), I(in+sizeof(in)-1), ios, err, &t); 198bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(i.base() == in+4); 199bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(t.tm_mon == 5); 200bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(err == std::ios_base::eofbit); 201bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant } 202bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant { 203bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant const char in[] = "July"; 204bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant err = std::ios_base::goodbit; 205bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant t = std::tm(); 206bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant I i = f.get_monthname(I(in), I(in+sizeof(in)-1), ios, err, &t); 207bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(i.base() == in+4); 208bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(t.tm_mon == 6); 209bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(err == std::ios_base::eofbit); 210bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant } 211bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant { 212bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant const char in[] = "August"; 213bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant err = std::ios_base::goodbit; 214bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant t = std::tm(); 215bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant I i = f.get_monthname(I(in), I(in+sizeof(in)-1), ios, err, &t); 216bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(i.base() == in+6); 217bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(t.tm_mon == 7); 218bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(err == std::ios_base::eofbit); 219bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant } 220bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant { 221bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant const char in[] = "September"; 222bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant err = std::ios_base::goodbit; 223bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant t = std::tm(); 224bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant I i = f.get_monthname(I(in), I(in+sizeof(in)-1), ios, err, &t); 225bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(i.base() == in+9); 226bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(t.tm_mon == 8); 227bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(err == std::ios_base::eofbit); 228bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant } 229bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant { 230bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant const char in[] = "October"; 231bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant err = std::ios_base::goodbit; 232bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant t = std::tm(); 233bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant I i = f.get_monthname(I(in), I(in+sizeof(in)-1), ios, err, &t); 234bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(i.base() == in+7); 235bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(t.tm_mon == 9); 236bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(err == std::ios_base::eofbit); 237bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant } 238bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant { 239bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant const char in[] = "November"; 240bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant err = std::ios_base::goodbit; 241bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant t = std::tm(); 242bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant I i = f.get_monthname(I(in), I(in+sizeof(in)-1), ios, err, &t); 243bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(i.base() == in+8); 244bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(t.tm_mon == 10); 245bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(err == std::ios_base::eofbit); 246bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant } 247bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant { 248bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant const char in[] = "December"; 249bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant err = std::ios_base::goodbit; 250bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant t = std::tm(); 251bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant I i = f.get_monthname(I(in), I(in+sizeof(in)-1), ios, err, &t); 252bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(i.base() == in+8); 253bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(t.tm_mon == 11); 254bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(err == std::ios_base::eofbit); 255bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant } 256bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant { 257bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant const char in[] = "Decemper"; 258bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant err = std::ios_base::goodbit; 259bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant t = std::tm(); 260bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant I i = f.get_monthname(I(in), I(in+sizeof(in)-1), ios, err, &t); 261bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(i.base() == in+5); 262bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(t.tm_mon == 0); 263bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(err == std::ios_base::failbit); 264bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant } 265bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant} 266