diff options
Diffstat (limited to 'tiger-compiler/tests/unit/misc/unique')
4 files changed, 59 insertions, 0 deletions
diff --git a/tiger-compiler/tests/unit/misc/unique/local.am b/tiger-compiler/tests/unit/misc/unique/local.am new file mode 100644 index 0000000..9911c25 --- /dev/null +++ b/tiger-compiler/tests/unit/misc/unique/local.am @@ -0,0 +1,4 @@ +check_unit_SOURCES += \ + %D%/test_unique_int.cc \ + %D%/test_unique_char.cc \ + %D%/test_unique_string.cc diff --git a/tiger-compiler/tests/unit/misc/unique/test_unique_char.cc b/tiger-compiler/tests/unit/misc/unique/test_unique_char.cc new file mode 100644 index 0000000..d69b42c --- /dev/null +++ b/tiger-compiler/tests/unit/misc/unique/test_unique_char.cc @@ -0,0 +1,18 @@ +#include <criterion/criterion.h> +#include <criterion/assert.h> +#include <misc/unique.hh> + +Test(unique_char, simple) +{ + misc::unique<char> the_answer = 'a'; + misc::unique<char> the_same_answer = 'a'; + misc::unique<char> the_solution = 'b'; + + cr_expect_eq(the_answer, misc::unique<char>('a')); + cr_expect_eq(the_answer, the_same_answer); + cr_expect_neq(the_answer, the_solution); + + cr_expect_eq(the_answer.get(), the_same_answer.get()); + cr_expect_eq(the_answer.get(), misc::unique<char>('a').get()); + cr_expect_neq(the_answer.get(), the_solution.get()); +} diff --git a/tiger-compiler/tests/unit/misc/unique/test_unique_int.cc b/tiger-compiler/tests/unit/misc/unique/test_unique_int.cc new file mode 100644 index 0000000..f25c3c2 --- /dev/null +++ b/tiger-compiler/tests/unit/misc/unique/test_unique_int.cc @@ -0,0 +1,18 @@ +#include <criterion/criterion.h> +#include <criterion/assert.h> +#include <misc/unique.hh> + +Test(unique_int, simple) +{ + misc::unique<int> the_answer = 42; + misc::unique<int> the_same_answer = 42; + misc::unique<int> the_solution = 51; + + cr_expect_eq(the_answer, misc::unique<int>(42)); + cr_expect_eq(the_answer, the_same_answer); + cr_expect_neq(the_answer, the_solution); + + cr_expect_eq(the_answer.get(), the_same_answer.get()); + cr_expect_eq(the_answer.get(), misc::unique<int>(42).get()); + cr_expect_neq(the_answer.get(), the_solution.get()); +} diff --git a/tiger-compiler/tests/unit/misc/unique/test_unique_string.cc b/tiger-compiler/tests/unit/misc/unique/test_unique_string.cc new file mode 100644 index 0000000..2542375 --- /dev/null +++ b/tiger-compiler/tests/unit/misc/unique/test_unique_string.cc @@ -0,0 +1,19 @@ +#include <criterion/criterion.h> +#include <criterion/assert.h> +#include <misc/unique.hh> +#include <string> + +Test(unique_string, simple) +{ + misc::unique<std::string> the_answer = std::string("skibidi"); + misc::unique<std::string> the_same_answer = std::string("skibidi"); + misc::unique<std::string> the_solution = std::string("yes yes"); + + cr_expect_eq(the_answer, misc::unique<std::string>(std::string("skibidi"))); + cr_expect_eq(the_answer, the_same_answer); + cr_expect_neq(the_answer, the_solution); + + cr_expect_eq(the_answer.get(), the_same_answer.get()); + cr_expect_eq(the_answer.get(), misc::unique<std::string>(std::string("skibidi")).get()); + cr_expect_neq(the_answer.get(), the_solution.get()); +} |
