Skip to content

Commit

Permalink
WIP/testing
Browse files Browse the repository at this point in the history
  • Loading branch information
melton1968 committed Jun 16, 2023
1 parent 344cfdb commit 1ef9850
Show file tree
Hide file tree
Showing 4 changed files with 36 additions and 60 deletions.
10 changes: 5 additions & 5 deletions test/src/core/lexical_cast/test_lexical_cast_pair.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -19,15 +19,15 @@ TEST(LexicalCast, PairGenerative)
foreach<test_types>(test, NumberSamples);
}

TEST(LexicalCast, PairIntString)
TEST(LexicalCast, PairConvert)
{
auto p0 = std::make_pair(123, std::string{"abc"});
auto p1 = std::make_pair(std::make_pair(123, std::string{"abc"}), 1.0);

check_lexical("123:abc", p0);
check_lexical("{123:abc}", p0);
check_lexical("{123:abc}:1.0", p1);
check_lexical("{{123:abc}:1.0}", p1);
check_lexical("123,abc", p0);
check_lexical("{123,abc}", p0);
check_lexical("{123,abc},1.0", p1);
check_lexical("{{123,abc},1.0}", p1);
}

TEST(LexicalCast, PairThrow)
Expand Down
36 changes: 12 additions & 24 deletions test/src/core/lexical_cast/test_lexical_cast_set.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -22,33 +22,21 @@ TEST(LexicalCast, SetGenerative)
core::mp::foreach<test_types>(test, NumberSamples);
}

TEST(LexicalCast, SetInt)
TEST(LexicalCast, SetConvert)
{
std::set<int> value{123, 456, 789};
for (auto input : {"123,456,789", "{123,456,789}"})
check_lexical(input, value);
std::set<int> s0{123, 456, 789};
std::set<std::string> s1{""};
std::set<std::set<int>> s2{{12,34},{56,78}};
std::set<std::pair<int,std::string>> s3{{123,"abc"},{456,"def"}};
check_lexical("123,456,789", s0);
check_lexical("{123,456,789}", s0);
check_lexical("{\"\"}", s1);
check_lexical("{12,34},{56,78}", s2);
check_lexical("{{12,34},{56,78}}", s2);
check_lexical("{123,abc},{456,def}", s3);
check_lexical("[{123,abc},{456,def}]", s3);
}

TEST(LexicalCast, SetString)
{
std::set<std::string> value{""};
for (auto input : {"{\"\"}"})
check_lexical(input, value);
}

TEST(LexicalCast, SetNested)
{
std::set<std::set<int>> value{{12,34},{56,78}};
for (auto input : {"{12,34},{56,78}", "{{12,34},{56,78}}"})
check_lexical(input, value);
}

TEST(LexicalCast, SetPair)
{
std::set<std::pair<int,std::string>> value{{123,"abc"},{456,"def"}};
for (auto input : {"{123:abc},{456:def}", "[{123:abc},{456:def}]"})
check_lexical(input, value);
}

TEST(LexicalCast, SetThrow)
{
Expand Down
21 changes: 8 additions & 13 deletions test/src/core/lexical_cast/test_lexical_cast_string.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,13 @@

#include <gtest/gtest.h>
#include "core/lexical_cast/string.h"
#include "coro/stream/stream.h"
#include "testing.h"

using namespace core;
using namespace coro;
using namespace std::string_literals;

const auto NumberSamples = 4;
const auto NumberSamples = 64;

CHECK_LEXICAL();

TEST(LexicalCast, StringGenerative)
{
Expand All @@ -18,16 +19,10 @@ TEST(LexicalCast, StringGenerative)
}
}

TEST(LexicalCast, StringFromString)
{
std::string s = lexical_cast<std::string>("abc");
EXPECT_EQ(s, "abc");
}

TEST(LexicalCast, StringToString)
TEST(LexicalCast, StringConvert)
{
std::string s = lexical_to_string("abc");
EXPECT_EQ(s, "abc");
check_lexical("abc", "abc"s);
check_lexical("\"abc\"", "abc"s);
}

int main(int argc, char *argv[])
Expand Down
29 changes: 11 additions & 18 deletions test/src/core/lexical_cast/test_lexical_cast_tuple.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@
#include <gtest/gtest.h>
#include "core/lexical_cast/tuple.h"
#include "core/lexical_cast/string.h"
#include "coro/stream/stream.h"
#include "core/mp/foreach.h"
#include "testing.h"

using namespace core;
using namespace coro;
using namespace std::string_literals;

// inline constexpr auto NumberSamples = 4;
// inline constexpr auto NumberSamples = 64;

CHECK_LEXICAL();

// using test_types = core::mp::list_t
// <std::tuple<unsigned int,std::string>,
Expand All @@ -19,22 +19,15 @@ using namespace coro;

// TEST(LexicalCast, TupleGenerative)
// {
// auto test = []<class T>() {
// for (auto s : sampler<T>() | take(NumberSamples))
// EXPECT_EQ(lexical_cast<T>(lexical_to_string(s)), s);
// };

// core::mp::foreach<test_types>(test);
// UNIVERSAL_TEST(test);
// foreach<test_types>(test, NumberSamples);
// }

TEST(LexicalCast, TupleIntString)
TEST(LexicalCast, TupleConvert)
{
for (auto str : {"123,abc", "{123,abc}"}) {
auto tup = lexical_cast<std::tuple<int,std::string>>(str);
EXPECT_EQ(std::get<0>(tup), 123);
EXPECT_EQ(std::get<1>(tup), "abc");
EXPECT_EQ(lexical_to_string(tup), "{123,\"abc\"}");
}
auto tup0 = std::make_tuple(123, "abc"s);
check_lexical("123,abc", tup0);
check_lexical("{123,abc}", tup0);
}

TEST(LexicalCast, TupleThrow)
Expand Down

0 comments on commit 1ef9850

Please sign in to comment.