eq.pass.cpp revision 86698890db516536b963cf978369c9aa6a2c836f
1//===----------------------------------------------------------------------===//
2//
3//                     The LLVM Compiler Infrastructure
4//
5// This file is dual licensed under the MIT and the University of Illinois Open
6// Source Licenses. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
10// <locale>
11
12// basic_string<char> name() const;
13
14#include <locale>
15#include <cassert>
16
17int main()
18{
19    std::locale cloc;
20    std::locale copy(cloc);
21    std::locale n1("en_US.UTF-8");
22    std::locale n2("en_US.UTF-8");
23    std::locale noname1 = n1.combine<std::ctype<char> >(cloc);
24    std::locale nonamec = noname1;
25    std::locale noname2 = n1.combine<std::ctype<char> >(cloc);
26
27    assert(cloc == cloc);
28    assert(cloc == copy);
29    assert(cloc != n1);
30    assert(cloc != n2);
31    assert(cloc != noname1);
32    assert(cloc != nonamec);
33    assert(cloc != noname2);
34
35    assert(copy == cloc);
36    assert(copy == copy);
37    assert(copy != n1);
38    assert(copy != n2);
39    assert(copy != noname1);
40    assert(copy != nonamec);
41    assert(copy != noname2);
42
43    assert(n1 != cloc);
44    assert(n1 != copy);
45    assert(n1 == n1);
46    assert(n1 == n2);
47    assert(n1 != noname1);
48    assert(n1 != nonamec);
49    assert(n1 != noname2);
50
51    assert(n2 != cloc);
52    assert(n2 != copy);
53    assert(n2 == n1);
54    assert(n2 == n2);
55    assert(n2 != noname1);
56    assert(n2 != nonamec);
57    assert(n2 != noname2);
58
59    assert(noname1 != cloc);
60    assert(noname1 != copy);
61    assert(noname1 != n1);
62    assert(noname1 != n2);
63    assert(noname1 == noname1);
64    assert(noname1 == nonamec);
65    assert(noname1 != noname2);
66
67    assert(nonamec != cloc);
68    assert(nonamec != copy);
69    assert(nonamec != n1);
70    assert(nonamec != n2);
71    assert(nonamec == noname1);
72    assert(nonamec == nonamec);
73    assert(nonamec != noname2);
74
75    assert(noname2 != cloc);
76    assert(noname2 != copy);
77    assert(noname2 != n1);
78    assert(noname2 != n2);
79    assert(noname2 != noname1);
80    assert(noname2 != nonamec);
81    assert(noname2 == noname2);
82}
83