@@ -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