@@ -510,6 +510,52 @@ TEST(Constant, OrderingWorksWithNegativeConstants) {
510510 EXPECT_THAT (c, Not (Le (neg_c)));
511511}
512512
513+ TEST (Constant, EqualityComparisonWithZero) {
514+ constexpr auto one_meter = make_constant (meters);
515+
516+ EXPECT_THAT (one_meter == ZERO, IsFalse ());
517+ EXPECT_THAT (ZERO == one_meter, IsFalse ());
518+ EXPECT_THAT (one_meter != ZERO, IsTrue ());
519+ EXPECT_THAT (ZERO != one_meter, IsTrue ());
520+ }
521+
522+ TEST (Constant, EqualityComparisonWithZeroForNegativeConstant) {
523+ constexpr auto neg_meter = -make_constant (meters);
524+
525+ EXPECT_THAT (neg_meter == ZERO, IsFalse ());
526+ EXPECT_THAT (ZERO == neg_meter, IsFalse ());
527+ EXPECT_THAT (neg_meter != ZERO, IsTrue ());
528+ EXPECT_THAT (ZERO != neg_meter, IsTrue ());
529+ }
530+
531+ TEST (Constant, OrderingComparisonWithZero) {
532+ constexpr auto one_meter = make_constant (meters);
533+
534+ EXPECT_THAT (one_meter > ZERO, IsTrue ());
535+ EXPECT_THAT (one_meter >= ZERO, IsTrue ());
536+ EXPECT_THAT (one_meter < ZERO, IsFalse ());
537+ EXPECT_THAT (one_meter <= ZERO, IsFalse ());
538+
539+ EXPECT_THAT (ZERO < one_meter, IsTrue ());
540+ EXPECT_THAT (ZERO <= one_meter, IsTrue ());
541+ EXPECT_THAT (ZERO > one_meter, IsFalse ());
542+ EXPECT_THAT (ZERO >= one_meter, IsFalse ());
543+ }
544+
545+ TEST (Constant, OrderingComparisonWithZeroForNegativeConstant) {
546+ constexpr auto neg_meter = -make_constant (meters);
547+
548+ EXPECT_THAT (neg_meter < ZERO, IsTrue ());
549+ EXPECT_THAT (neg_meter <= ZERO, IsTrue ());
550+ EXPECT_THAT (neg_meter > ZERO, IsFalse ());
551+ EXPECT_THAT (neg_meter >= ZERO, IsFalse ());
552+
553+ EXPECT_THAT (ZERO > neg_meter, IsTrue ());
554+ EXPECT_THAT (ZERO >= neg_meter, IsTrue ());
555+ EXPECT_THAT (ZERO < neg_meter, IsFalse ());
556+ EXPECT_THAT (ZERO <= neg_meter, IsFalse ());
557+ }
558+
513559TEST (Constant, OrderingWorksWithScaledConstants) {
514560 constexpr auto half_c = c / mag<2 >();
515561 constexpr auto double_c = c * mag<2 >();
0 commit comments