thousands_sep.pass.cpp revision f5256e16dfc425c1d466f6308d4026d529ce9e0b
13c827367444ee418f129b2c238299f49d3264554Jarkko Poyry//===----------------------------------------------------------------------===//
23c827367444ee418f129b2c238299f49d3264554Jarkko Poyry//
33c827367444ee418f129b2c238299f49d3264554Jarkko Poyry//                     The LLVM Compiler Infrastructure
43c827367444ee418f129b2c238299f49d3264554Jarkko Poyry//
53c827367444ee418f129b2c238299f49d3264554Jarkko Poyry// This file is distributed under the University of Illinois Open Source
63c827367444ee418f129b2c238299f49d3264554Jarkko Poyry// License. See LICENSE.TXT for details.
73c827367444ee418f129b2c238299f49d3264554Jarkko Poyry//
83c827367444ee418f129b2c238299f49d3264554Jarkko Poyry//===----------------------------------------------------------------------===//
93c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry// <locale>
113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry// class moneypunct_byname<charT, International>
133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry// charT thousands_sep() const;
153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include <locale>
173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include <limits>
183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include <cassert>
193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
203c827367444ee418f129b2c238299f49d3264554Jarkko Poyryclass Fnf
213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry    : public std::moneypunct_byname<char, false>
223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry{
233c827367444ee418f129b2c238299f49d3264554Jarkko Poyrypublic:
243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry    explicit Fnf(const std::string& nm, std::size_t refs = 0)
253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry        : std::moneypunct_byname<char, false>(nm, refs) {}
263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry};
273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
283c827367444ee418f129b2c238299f49d3264554Jarkko Poyryclass Fnt
293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry    : public std::moneypunct_byname<char, true>
303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry{
313c827367444ee418f129b2c238299f49d3264554Jarkko Poyrypublic:
323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry    explicit Fnt(const std::string& nm, std::size_t refs = 0)
333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry        : std::moneypunct_byname<char, true>(nm, refs) {}
343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry};
353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
363c827367444ee418f129b2c238299f49d3264554Jarkko Poyryclass Fwf
373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry    : public std::moneypunct_byname<wchar_t, false>
383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry{
393c827367444ee418f129b2c238299f49d3264554Jarkko Poyrypublic:
403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry    explicit Fwf(const std::string& nm, std::size_t refs = 0)
413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry        : std::moneypunct_byname<wchar_t, false>(nm, refs) {}
423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry};
433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
443c827367444ee418f129b2c238299f49d3264554Jarkko Poyryclass Fwt
453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry    : public std::moneypunct_byname<wchar_t, true>
463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry{
473c827367444ee418f129b2c238299f49d3264554Jarkko Poyrypublic:
483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry    explicit Fwt(const std::string& nm, std::size_t refs = 0)
493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry        : std::moneypunct_byname<wchar_t, true>(nm, refs) {}
503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry};
513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
523c827367444ee418f129b2c238299f49d3264554Jarkko Poyryint main()
533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry{
543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry    {
553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry        Fnf f("C", 1);
563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry        assert(f.thousands_sep() == std::numeric_limits<char>::max());
573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry    }
583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry    {
593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry        Fnt f("C", 1);
603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry        assert(f.thousands_sep() == std::numeric_limits<char>::max());
613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry    }
623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry    {
633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry        Fwf f("C", 1);
643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry        assert(f.thousands_sep() == std::numeric_limits<wchar_t>::max());
653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry    }
663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry    {
673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry        Fwt f("C", 1);
683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry        assert(f.thousands_sep() == std::numeric_limits<wchar_t>::max());
693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry    }
703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry    {
723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry        Fnf f("en_US", 1);
733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry        assert(f.thousands_sep() == ',');
743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry    }
753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry    {
763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry        Fnt f("en_US", 1);
773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry        assert(f.thousands_sep() == ',');
783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry    }
793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry    {
803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry        Fwf f("en_US", 1);
813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry        assert(f.thousands_sep() == L',');
823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry    }
833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry    {
843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry        Fwt f("en_US", 1);
853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry        assert(f.thousands_sep() == L',');
863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry    }
873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry    {
893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry        Fnf f("fr_FR", 1);
903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry        assert(f.thousands_sep() == ' ');
913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry    }
923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry    {
933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry        Fnt f("fr_FR", 1);
943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry        assert(f.thousands_sep() == ' ');
953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry    }
963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry    {
973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry        Fwf f("fr_FR", 1);
983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry        assert(f.thousands_sep() == L' ');
993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry    }
1003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry    {
1013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry        Fwt f("fr_FR", 1);
1023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry        assert(f.thousands_sep() == L' ');
1033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry    }
1043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
1053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry    {
1063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry        Fnf f("ru_RU", 1);
1073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry        assert(f.thousands_sep() == ' ');
1083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry    }
1093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry    {
1103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry        Fnt f("ru_RU", 1);
1113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry        assert(f.thousands_sep() == ' ');
1123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry    }
1133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry    {
1143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry        Fwf f("ru_RU", 1);
1153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry        assert(f.thousands_sep() == L' ');
1163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry    }
1173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry    {
1183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry        Fwt f("ru_RU", 1);
1193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry        assert(f.thousands_sep() == L' ');
1203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry    }
1213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
1223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry    {
1233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry        Fnf f("zh_CN", 1);
1243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry        assert(f.thousands_sep() == ',');
1253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry    }
1263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry    {
1273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry        Fnt f("zh_CN", 1);
1283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry        assert(f.thousands_sep() == ',');
1293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry    }
1303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry    {
1313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry        Fwf f("zh_CN", 1);
1323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry        assert(f.thousands_sep() == L',');
1333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry    }
1343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry    {
1353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry        Fwt f("zh_CN", 1);
1363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry        assert(f.thousands_sep() == L',');
1373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry    }
1383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry}
1393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry