Skip to content

Commit

Permalink
Tests: stream.ops.pass.cpp
Browse files Browse the repository at this point in the history
  • Loading branch information
H-G-Hristov committed Mar 17, 2024
1 parent 3c2fba8 commit 72b462d
Showing 1 changed file with 175 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,11 @@ void test() {
// Mode: default (`in` | `out`)
{
SpStream spSt(sp);

assert(spSt);
assert(!spSt.bad());
assert(!spSt.fail());
assert(spSt.good());
assert(spSt.span().size() == 0);

// Read from stream
Expand All @@ -67,19 +72,26 @@ void test() {
int i3;
spSt >> i3;

assert(spSt.good());
assert(str1 == CS("zmt"));
assert(i1 == 94);
assert(str2 == CS("hkt"));
assert(i2 == 82);
assert(str3 == CS("pir"));
assert(i3 == 43);

assert(spSt);
assert(!spSt.bad());
assert(!spSt.fail());
assert(spSt.good());

// Write to stream
constexpr std::basic_string_view<CharT, TraitsT> sv1{SV("year 2024")};
spSt << sv1;

assert(spSt.span().size() == sv1.size());
assert(spSt);
assert(!spSt.bad());
assert(!spSt.fail());
assert(spSt.good());

// Read from stream
Expand All @@ -93,15 +105,28 @@ void test() {
assert(i4 == 2024);

spSt >> i4;

assert(!spSt);
assert(!spSt.bad());
assert(spSt.fail());
assert(!spSt.good());

spSt.clear();

assert(spSt);
assert(!spSt.bad());
assert(!spSt.fail());
assert(spSt.good());

// Write to stream
spSt << CS("94");
spSt << 84;

assert(spSt);
assert(!spSt.bad());
assert(!spSt.fail());
assert(spSt.good());

assert(spSt.span().size() == sv1.size() + 4);
std::basic_string<CharT, TraitsT> expectedStr1{spSt.span().data(), std::size_t{spSt.span().size()}};
assert(expectedStr1 == CS("year 20249484"));
Expand All @@ -113,20 +138,164 @@ void test() {
assert(spSt.span().size() == arrSize);
std::basic_string<CharT, TraitsT> expectedStr2{spSt.span().data(), std::size_t{spSt.span().size()}};
assert(expectedStr2 == CS("year 20249484This string shoul"));

assert(!spSt);
assert(spSt.bad());
assert(spSt.fail());
assert(!spSt.good());
}
#if 0
// Mode: `in`
{
SpStream spSt{sp, std::ios_base::in};
//TODO
(void)spSt;
}
assert(spSt);
assert(spSt.good());
assert(spSt.span().size() == arrSize);

std::basic_string<CharT, TraitsT> expectedStr0{spSt.span().data(), std::size_t{spSt.span().size()}};
std::cout << expectedStr0 << std::endl;

// // Read from stream
// std::basic_string<CharT, TraitsT> str1;
// spSt >> str1;
// int i1;
// spSt >> i1;
// std::basic_string<CharT, TraitsT> str2;
// spSt >> str2;
// int i2;
// spSt >> i2;
// std::basic_string<CharT, TraitsT> str3;
// spSt >> str3;
// int i3;
// spSt >> i3;

// assert(spSt.good());
// assert(str1 == CS("zmt"));
// assert(i1 == 94);
// assert(str2 == CS("hkt"));
// assert(i2 == 82);
// assert(str3 == CS("pir"));
// assert(i3 == 43);

// Write to stream
constexpr std::basic_string_view<CharT, TraitsT> sv1{SV("year 2024")};
spSt << sv1;

std::cout << spSt.span().size() << std::endl;
assert(spSt.span().size() == sv1.size());
assert(spSt.good());

// Read from stream
spSt.seekg(0);
std::basic_string<CharT, TraitsT> str4;
spSt >> str4;
int i4;
spSt >> i4;

assert(str4 == CS("year"));
assert(i4 == 2024);

spSt >> i4;
assert(spSt);
assert(!spSt.bad());
assert(spSt.fail());
assert(!spSt.good());

spSt.clear();
assert(spSt);
assert(!spSt.bad());
assert(!spSt.fail());
assert(spSt.good());
// Write to stream
spSt << CS("94");
spSt << 84;

assert(spSt);
assert(!spSt.bad());
assert(!spSt.fail());
assert(spSt.good()); assert(spSt.span().size() == sv1.size() + 4);
std::basic_string<CharT, TraitsT> expectedStr1{spSt.span().data(), std::size_t{spSt.span().size()}};
assert(expectedStr1 == CS("year 20249484"));

// Write to stream with overflow
constexpr std::basic_string_view<CharT, TraitsT> sv2{
SV("This string should overflow! This string should overflow!")};
spSt << sv2;
assert(spSt.span().size() == arrSize);
std::basic_string<CharT, TraitsT> expectedStr2{spSt.span().data(), std::size_t{spSt.span().size()}};
assert(expectedStr2 == CS("year 20249484This string shoul"));
assert(spSt);
assert(!spSt.bad());
assert(spSt.fail());
assert(!spSt.good()); }
// Mode `out`
{
SpStream spSt{sp, std::ios_base::out};
//TODO
(void)spSt;
assert(spSt.span().size() == 0);

// Read from stream
std::basic_string<CharT, TraitsT> str1;
spSt >> str1;
int i1;
spSt >> i1;
std::basic_string<CharT, TraitsT> str2;
spSt >> str2;
int i2;
spSt >> i2;
std::basic_string<CharT, TraitsT> str3;
spSt >> str3;
int i3;
spSt >> i3;

assert(spSt.good());
assert(str1 == CS("zmt"));
assert(i1 == 94);
assert(str2 == CS("hkt"));
assert(i2 == 82);
assert(str3 == CS("pir"));
assert(i3 == 43);

// Write to stream
constexpr std::basic_string_view<CharT, TraitsT> sv1{SV("year 2024")};
spSt << sv1;

assert(spSt.span().size() == sv1.size());
assert(spSt.good());

// Read from stream
spSt.seekg(0);
std::basic_string<CharT, TraitsT> str4;
spSt >> str4;
int i4;
spSt >> i4;

assert(str4 == CS("year"));
assert(i4 == 2024);

spSt >> i4;
assert(spSt.fail());
spSt.clear();
assert(spSt.good());

// Write to stream
spSt << CS("94");
spSt << 84;

assert(spSt.good());
assert(spSt.span().size() == sv1.size() + 4);
std::basic_string<CharT, TraitsT> expectedStr1{spSt.span().data(), std::size_t{spSt.span().size()}};
assert(expectedStr1 == CS("year 20249484"));

// Write to stream with overflow
constexpr std::basic_string_view<CharT, TraitsT> sv2{
SV("This string should overflow! This string should overflow!")};
spSt << sv2;
assert(spSt.span().size() == arrSize);
std::basic_string<CharT, TraitsT> expectedStr2{spSt.span().data(), std::size_t{spSt.span().size()}};
assert(expectedStr2 == CS("year 20249484This string shoul"));
assert(spSt.fail());
}
#endif
}

int main(int, char**) {
Expand Down

0 comments on commit 72b462d

Please sign in to comment.