diff options
Diffstat (limited to 'ink_stroke_modeler/internal/validation_test.cc')
-rw-r--r-- | ink_stroke_modeler/internal/validation_test.cc | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/ink_stroke_modeler/internal/validation_test.cc b/ink_stroke_modeler/internal/validation_test.cc new file mode 100644 index 0000000..51482ff --- /dev/null +++ b/ink_stroke_modeler/internal/validation_test.cc @@ -0,0 +1,82 @@ +#include "ink_stroke_modeler/internal/validation.h" + +#include <cmath> + +#include "gtest/gtest.h" + +namespace { + +TEST(ValidateIsFiniteNumberTest, AcceptFinite) { + ASSERT_TRUE(ValidateIsFiniteNumber(1, "foo").ok()); +} + +TEST(ValidateIsFiniteNumberTest, RejectNan) { + absl::Status status = ValidateIsFiniteNumber(NAN, "foo"); + ASSERT_FALSE(status.ok()); + ASSERT_EQ(status.message(), "foo is NaN"); +} + +TEST(ValidateIsFiniteNumberTest, RejectInf) { + absl::Status status = ValidateIsFiniteNumber(INFINITY, "foo"); + ASSERT_FALSE(status.ok()); + ASSERT_EQ(status.message(), "foo is infinite"); +} + +TEST(ValidateGreaterThanZeroTest, AcceptPositive) { + ASSERT_TRUE(ValidateGreaterThanZero(1, "foo").ok()); +} + +TEST(ValidateGreaterThanZeroTest, RejectZero) { + absl::Status status = ValidateGreaterThanZero(0, "foo"); + ASSERT_FALSE(status.ok()); + ASSERT_EQ(status.message(), "foo must be greater than zero. Actual value: 0"); +} + +TEST(ValidateGreaterThanZeroTest, RejectNegative) { + absl::Status status = ValidateGreaterThanZero(-1, "foo"); + ASSERT_FALSE(status.ok()); + ASSERT_EQ(status.message(), + "foo must be greater than zero. Actual value: -1"); +} + +TEST(ValidateGreaterThanZeroTest, RejectNan) { + absl::Status status = ValidateGreaterThanZero(NAN, "foo"); + ASSERT_FALSE(status.ok()); + ASSERT_EQ(status.message(), "foo is NaN"); +} + +TEST(ValidateGreaterThanZeroTest, RejectInf) { + absl::Status status = ValidateGreaterThanZero(INFINITY, "foo"); + ASSERT_FALSE(status.ok()); + ASSERT_EQ(status.message(), "foo is infinite"); +} + +TEST(ValidateGreaterThanOrEqualToZeroTest, AcceptPositive) { + ASSERT_TRUE(ValidateGreaterThanOrEqualToZero(1, "foo").ok()); +} + +TEST(ValidateGreaterThanOrEqualToZeroTest, AcceptZero) { + absl::Status status = ValidateGreaterThanOrEqualToZero(0, "foo"); + ASSERT_TRUE(ValidateGreaterThanOrEqualToZero(0, "foo").ok()); +} + +TEST(ValidateGreaterThanOrEqualToZeroTest, RejectNegative) { + absl::Status status = ValidateGreaterThanOrEqualToZero(-1, "foo"); + ASSERT_FALSE(status.ok()); + ASSERT_EQ(status.message(), + "foo must be greater than or equal to zero. Actual value: -1"); +} + +TEST(ValidateGreaterThanOrEqualToZeroTest, RejectNan) { + absl::Status status = ValidateGreaterThanOrEqualToZero(NAN, "foo"); + ASSERT_FALSE(status.ok()); + ASSERT_EQ(status.message(), "foo is NaN"); +} + +TEST(ValidateGreaterThanOrEqualToZeroTest, RejectInf) { + absl::Status status = ValidateGreaterThanOrEqualToZero(INFINITY, "foo"); + ASSERT_FALSE(status.ok()); + ASSERT_EQ(status.message(), "foo is infinite"); +} + +} // namespace |