Skip to content

Commit c111158

Browse files
committed
Add xtd.core unit tests
1 parent 7656ee4 commit c111158

File tree

3 files changed

+108
-0
lines changed

3 files changed

+108
-0
lines changed

tests/xtd.core.unit_tests/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -240,6 +240,7 @@ add_sources(
240240
"src/xtd/tests/format_wstring_object_without_xtd_to_string_tests.cpp"
241241
"src/xtd/tests/format_wstring_string_tests.cpp"
242242
"src/xtd/tests/format_wstring_tm_tests.cpp"
243+
"src/xtd/tests/forward_iterable_tests.cpp"
243244
"src/xtd/tests/generic_stream_output_tests.cpp"
244245
"src/xtd/tests/get_know_folder_path.hpp"
245246
"src/xtd/tests/guid_tests.cpp"
@@ -295,6 +296,7 @@ add_sources(
295296
"src/xtd/tests/software_termination_exception_tests.cpp"
296297
"src/xtd/tests/span_tests.cpp"
297298
"src/xtd/tests/standard_name.hpp"
299+
"src/xtd/tests/stream_insertable_tests.cpp"
298300
"src/xtd/tests/string_comparer_tests.cpp"
299301
"src/xtd/tests/string_comparison_tests.cpp"
300302
"src/xtd/tests/string_split_options_tests.cpp"
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
#include <xtd/forward_iterable>
2+
#include <xtd/tunit/constraints/assert_that>
3+
#include <xtd/tunit/test_class_attribute>
4+
#include <xtd/tunit/test_method_attribute>
5+
6+
namespace xtd::tests {
7+
class test_class_(forward_iterable_tests) {
8+
template<class value_t>
9+
requires forward_iterable<value_t>
10+
auto is_forward_iterable(value_t&& value) -> bool {return true;}
11+
template<class value_t>
12+
requires (!forward_iterable<value_t>)
13+
auto is_forward_iterable(value_t&& value) -> bool {return false;}
14+
15+
auto test_method_(with_string_literal) {
16+
assert_that(is_forward_iterable("str")).is().true_();
17+
}
18+
19+
auto test_method_(with_object) {
20+
assert_that(is_forward_iterable(object {})).is().false_();
21+
}
22+
23+
auto test_method_(with_string) {
24+
assert_that(is_forward_iterable("str"_s)).is().true_();
25+
}
26+
27+
auto test_method_(with_std_vector) {
28+
assert_that(is_forward_iterable(std::vector<int> {})).is().true_();
29+
}
30+
31+
auto test_method_(with_list) {
32+
assert_that(is_forward_iterable(list<int> {})).is().true_();
33+
}
34+
};
35+
}
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
#include <xtd/stream_insertable>
2+
#include <xtd/tunit/constraints/assert_that>
3+
#include <xtd/tunit/test_class_attribute>
4+
#include <xtd/tunit/test_method_attribute>
5+
6+
namespace xtd::tests {
7+
class test_class_(stream_insertable_tests) {
8+
template<class value_t>
9+
requires stream_insertable<value_t>
10+
auto is_stream_insertable(value_t&& value) -> bool {return true;}
11+
template<class value_t>
12+
requires (!stream_insertable<value_t>)
13+
auto is_stream_insertable(value_t&& value) -> bool {return false;}
14+
15+
struct my_stream_insertable {
16+
friend auto operator <<(std::ostream& os, const my_stream_insertable&) -> std::ostream& {return os << "my_stream_insertable";}
17+
};
18+
19+
struct my_stringable : public istringable<my_stringable> {
20+
auto to_string() const -> string override {return "my_stringable";}
21+
};
22+
23+
struct my_stream_not_insertable {
24+
};
25+
26+
auto test_method_(with_string_literal) {
27+
assert_that(is_stream_insertable("str")).is().true_();
28+
}
29+
30+
auto test_method_(with_object) {
31+
assert_that(is_stream_insertable(object {})).is().false_();
32+
}
33+
34+
auto test_method_(with_string) {
35+
assert_that(is_stream_insertable("str"_s)).is().true_();
36+
}
37+
38+
auto test_method_(with_version) {
39+
assert_that(is_stream_insertable("1.2.3"_vers)).is().false_();
40+
}
41+
42+
auto test_method_(with_my_stream_insertable) {
43+
assert_that(is_stream_insertable(my_stream_insertable {})).is().true_();
44+
}
45+
46+
auto test_method_(with_my_stream_not_insertable) {
47+
assert_that(is_stream_insertable(my_stream_not_insertable {})).is().false_();
48+
}
49+
50+
auto test_method_(with_my_stringable) {
51+
assert_that(is_stream_insertable(my_stringable {})).is().true_();
52+
}
53+
54+
auto test_method_(with_bool) {
55+
assert_that(is_stream_insertable(true)).is().true_();
56+
assert_that(is_stream_insertable(false)).is().true_();
57+
}
58+
59+
auto test_method_(with_integrals) {
60+
assert_that(is_stream_insertable(42_s8)).is().true_();
61+
assert_that(is_stream_insertable(42_s16)).is().true_();
62+
assert_that(is_stream_insertable(42_s32)).is().true_();
63+
assert_that(is_stream_insertable(42_s64)).is().true_();
64+
65+
assert_that(is_stream_insertable(42_u8)).is().true_();
66+
assert_that(is_stream_insertable(42_u16)).is().true_();
67+
assert_that(is_stream_insertable(42_u32)).is().true_();
68+
assert_that(is_stream_insertable(42_u64)).is().true_();
69+
}
70+
};
71+
}

0 commit comments

Comments
 (0)