2121#include < spanstream>
2222#include < string>
2323#include < string_view>
24- #include < vector>
25-
26- #include < print>
2724
2825#include " constexpr_char_traits.h"
2926#include " test_macros.h"
@@ -43,11 +40,10 @@ void test() {
4340 // Create a std::span test value
4441 CharT arr[arrSize]{};
4542 initialize_array_from_string_view (arr, sv);
46- std::vector <CharT> vec ( arr, arr + arrSize) ;
43+ std::span <CharT> sp{ arr} ;
4744
4845 // `std::span` + Mode: default (`out`)
4946 {
50- std::span<CharT> sp{arr};
5147 SpStream spSt (sp);
5248
5349 assert (spSt);
@@ -56,71 +52,56 @@ void test() {
5652 assert (spSt.good ());
5753 assert (spSt.span ().size () == 0 );
5854
59- spSt.clear ();
55+ // Check underlying buffer
56+ assert (arr[0 ] == CH (' z' ));
57+ assert (arr[1 ] == CH (' m' ));
58+ assert (arr[2 ] == CH (' t' ));
59+
60+ spSt << SV (" snt" );
61+
62+ assert (spSt.span ().size () == 3 );
63+
64+ assert (spSt.span ()[0 ] == CH (' s' ));
65+ assert (spSt.span ()[1 ] == CH (' n' ));
66+ assert (spSt.span ()[2 ] == CH (' t' ));
67+ // Check underlying buffer
68+ assert (arr[0 ] == CH (' s' ));
69+ assert (arr[1 ] == CH (' n' ));
70+ assert (arr[2 ] == CH (' t' ));
6071
6172 assert (spSt);
6273 assert (!spSt.bad ());
6374 assert (!spSt.fail ());
6475 assert (spSt.good ());
65- assert (spSt.span ().size () == 0 );
66- }
67- {
68- std::span<CharT> sp{arr};
69- SpStream spSt (sp);
76+
77+ spSt << 71 ;
78+
79+ assert (spSt.span ().size () == 5 );
80+
81+ assert (spSt.span ()[3 ] == CH (' 7' ));
82+ assert (spSt.span ()[4 ] == CH (' 1' ));
83+ // Check underlying buffer
84+ assert (arr[3 ] == CH (' 7' ));
85+ assert (arr[4 ] == CH (' 1' ));
7086
7187 assert (spSt);
7288 assert (!spSt.bad ());
7389 assert (!spSt.fail ());
7490 assert (spSt.good ());
75- assert (spSt.span ().size () == 0 );
76-
77- spSt << 10 ;
78-
79- assert (spSt.span ().size () == 2 );
8091
8192 spSt.clear ();
8293
83- // assert(spSt);
84- // assert(!spSt.bad());
85- // assert(!spSt.fail());
86- // assert(spSt.good());
87- // assert(spSt.span().size() == 0);
88-
89- spSt << SV (" gh" );
90- assert (spSt.span ().size () == 4 );
91- std::println (stderr, " {}" , spSt.span ()[0 ]);
92- std::println (stderr, " {}" , arr[0 ]);
93- assert (spSt.span ()[0 ] == ' 1' );
94- assert (arr[0 ] == ' 1' );
95- assert (spSt.span ()[1 ] == ' 0' );
96- assert (arr[1 ] == ' 0' );
97- assert (spSt.span ()[2 ] == ' g' );
98- assert (arr[2 ] == ' g' );
99-
100- CharT output_buffer[30 ];
101- std::basic_ospanstream<CharT, TraitsT> os{std::span<CharT>{output_buffer}};
102-
103- assert (os.good ());
104- assert (!os.fail ());
105- assert (!os.bad ());
106- os << 10 << 20 << 30 ;
107- os << SV (" GH" );
108- assert (os.good ());
109- assert (!os.fail ());
110- assert (!os.bad ());
111- std::println (stderr, " {}" , os.span ()[0 ]);
112- std::println (stderr, " {}" , output_buffer[0 ]);
113- std::println (stderr, " {}" , os.span ().size ());
114- std::println (stderr, " {}" , os.span ()[6 ]);
115- std::println (stderr, " {}" , output_buffer[7 ]);
116- assert (false );
94+ assert (spSt);
95+ assert (!spSt.bad ());
96+ assert (!spSt.fail ());
97+ assert (spSt.good ());
11798 }
11899}
119100
120101int main (int , char **) {
121102 test<char >();
122103#ifndef TEST_HAS_NO_WIDE_CHARACTERS
123- // test<wchar_t>();
104+ test<wchar_t >();
124105#endif
125106
126107 return 0 ;
0 commit comments