Line data Source code
1 : // Copyright (c) 2013-2025 Made to Order Software Corp. All Rights Reserved
2 : //
3 : // https://snapwebsites.org/project/libutf8
4 : // contact@m2osw.com
5 : //
6 : // This program is free software: you can redistribute it and/or modify
7 : // it under the terms of the GNU General Public License as published by
8 : // the Free Software Foundation, either version 3 of the License, or
9 : // (at your option) any later version.
10 : //
11 : // This program is distributed in the hope that it will be useful,
12 : // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 : // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 : // GNU General Public License for more details.
15 : //
16 : // You should have received a copy of the GNU General Public License
17 : // along with this program. If not, see <https://www.gnu.org/licenses/>.
18 :
19 : // libutf8
20 : //
21 : #include <libutf8/libutf8.h>
22 :
23 :
24 : // unit test
25 : //
26 : #include "catch_main.h"
27 :
28 :
29 : // C++
30 : //
31 : #include <cctype>
32 : #include <iostream>
33 : #include <iomanip>
34 :
35 :
36 : // last include
37 : //
38 : #include <snapdev/poison.h>
39 :
40 :
41 :
42 1 : CATCH_TEST_CASE("stream", "[stream][valid]")
43 : {
44 1 : CATCH_START_SECTION("stream: write a char32_t to a stream")
45 : {
46 1001 : for(int i(0); i < 1000; ++i)
47 : {
48 1000 : char32_t const wc(SNAP_CATCH2_NAMESPACE::random_char(SNAP_CATCH2_NAMESPACE::character_t::CHARACTER_ZUNICODE));
49 :
50 1000 : std::stringstream ss;
51 1000 : ss << libutf8::to_u8string(wc);
52 :
53 1000 : CATCH_REQUIRE(ss.str() == libutf8::to_u8string(wc));
54 1000 : }
55 : }
56 1 : CATCH_END_SECTION()
57 1 : }
58 :
59 :
60 :
61 : // vim: ts=4 sw=4 et
|