Skip to content

Commit e1a2710

Browse files
thomas-bruneltbrunel
authored andcommitted
Add tests for new compare operators
Signed-off-by: Thomas BRUNEL <[email protected]> Signed-off-by: tbrunel <[email protected]>
1 parent 7b179d6 commit e1a2710

File tree

1 file changed

+39
-7
lines changed

1 file changed

+39
-7
lines changed

test/cxxtest/general.h

Lines changed: 39 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,7 @@ class EnumTests : public CxxTest::TestSuite {
200200
TS_ASSERT_EQUALS(Channel::_from_integral_unchecked(1), +Channel::Green);
201201
TS_ASSERT_DIFFERS(Channel::_from_integral_unchecked(1), +Channel::Blue);
202202

203-
TS_ASSERT_THROWS(Channel::_from_integral(3), std::runtime_error);
203+
TS_ASSERT_THROWS(Channel::_from_integral(3), std::runtime_error const&);
204204
TS_ASSERT_THROWS_NOTHING(Channel::_from_integral_unchecked(3));
205205

206206
better_enums::optional<Channel> maybe_channel =
@@ -225,7 +225,7 @@ class EnumTests : public CxxTest::TestSuite {
225225
TS_ASSERT_DIFFERS(Channel::_from_string("Green"), +Channel::Blue);
226226
TS_ASSERT_EQUALS(Channel::_from_string("Blue"), +Channel::Blue);
227227
TS_ASSERT_DIFFERS(Channel::_from_string("Blue"), +Channel::Green);
228-
TS_ASSERT_THROWS(Channel::_from_string("green"), std::runtime_error);
228+
TS_ASSERT_THROWS(Channel::_from_string("green"), std::runtime_error const&);
229229

230230
better_enums::optional<Channel> maybe_channel =
231231
Channel::_from_string_nothrow("Green");
@@ -241,7 +241,7 @@ class EnumTests : public CxxTest::TestSuite {
241241
+Channel::Blue);
242242
TS_ASSERT_DIFFERS(Channel::_from_string_nocase("blue"),
243243
+Channel::Green);
244-
TS_ASSERT_THROWS(Channel::_from_string_nocase("a"), std::runtime_error);
244+
TS_ASSERT_THROWS(Channel::_from_string_nocase("a"), std::runtime_error const&);
245245

246246
maybe_channel = Channel::_from_string_nocase_nothrow("green");
247247
TS_ASSERT(maybe_channel);
@@ -354,16 +354,16 @@ class EnumTests : public CxxTest::TestSuite {
354354
TS_ASSERT_EQUALS((+Channel::Red), Channel::_from_index(0));
355355
TS_ASSERT_EQUALS((+Channel::Green), Channel::_from_index(1));
356356
TS_ASSERT_EQUALS((+Channel::Blue), Channel::_from_index(2));
357-
TS_ASSERT_THROWS(Channel::_from_index(42), std::runtime_error);
357+
TS_ASSERT_THROWS(Channel::_from_index(42), std::runtime_error const&);
358358

359359
TS_ASSERT_EQUALS((+Depth::HighColor), Depth::_from_index(0));
360360
TS_ASSERT_EQUALS((+Depth::TrueColor), Depth::_from_index(1));
361-
TS_ASSERT_THROWS(Depth::_from_index(42), std::runtime_error);
361+
TS_ASSERT_THROWS(Depth::_from_index(42), std::runtime_error const&);
362362

363363
TS_ASSERT_EQUALS((+Compression::None), Compression::_from_index(0));
364364
TS_ASSERT_EQUALS((+Compression::Huffman), Compression::_from_index(1));
365365
TS_ASSERT_EQUALS((+Compression::Default), Compression::_from_index(2));
366-
TS_ASSERT_THROWS(Compression::_from_index(42), std::runtime_error);
366+
TS_ASSERT_THROWS(Compression::_from_index(42), std::runtime_error const&);
367367
}
368368

369369
void test_from_index_nothrow()
@@ -412,7 +412,6 @@ class EnumTests : public CxxTest::TestSuite {
412412

413413
void test_from_index_unchecked()
414414
{
415-
416415
TS_ASSERT_EQUALS((+Channel::Red), Channel::_from_index_unchecked(0));
417416
TS_ASSERT_EQUALS((+Channel::Green), Channel::_from_index_unchecked(1));
418417
TS_ASSERT_EQUALS((+Channel::Blue), Channel::_from_index_unchecked(2));
@@ -424,6 +423,39 @@ class EnumTests : public CxxTest::TestSuite {
424423
TS_ASSERT_EQUALS((+Compression::Huffman), Compression::_from_index_unchecked(1));
425424
TS_ASSERT_EQUALS((+Compression::Default), Compression::_from_index_unchecked(2));
426425
}
426+
427+
void test_comparator_operators()
428+
{
429+
Channel red = Channel::Red, blue = Channel::Blue;
430+
431+
TS_ASSERT_LESS_THAN(red, Channel::Green);
432+
TS_ASSERT_LESS_THAN(Channel::Green, blue);
433+
TS_ASSERT(!(red < Channel::Red));
434+
TS_ASSERT(!(Channel::Blue < blue));
435+
TS_ASSERT(!(blue < Channel::Green));
436+
TS_ASSERT(!(Channel::Green < red));
437+
438+
TS_ASSERT_LESS_THAN_EQUALS(red, Channel::Green);
439+
TS_ASSERT_LESS_THAN_EQUALS(Channel::Green, blue);
440+
TS_ASSERT_LESS_THAN_EQUALS(red, Channel::Red);
441+
TS_ASSERT_LESS_THAN_EQUALS(Channel::Blue, blue);
442+
TS_ASSERT(!(blue <= Channel::Green));
443+
TS_ASSERT(!(Channel::Green <= red));
444+
445+
TS_ASSERT(!(red > Channel::Green));
446+
TS_ASSERT(!(Channel::Green > blue));
447+
TS_ASSERT(!(red > Channel::Red));
448+
TS_ASSERT(!(Channel::Blue > blue));
449+
TS_ASSERT(blue > Channel::Green);
450+
TS_ASSERT(Channel::Green > red);
451+
452+
TS_ASSERT(!(red >= Channel::Green));
453+
TS_ASSERT(!(Channel::Green >= blue));
454+
TS_ASSERT(red >= Channel::Red);
455+
TS_ASSERT(Channel::Blue >= blue);
456+
TS_ASSERT(blue >= Channel::Green);
457+
TS_ASSERT(Channel::Green >= red);
458+
}
427459
};
428460

429461

0 commit comments

Comments
 (0)