Index: ui/gfx/geometry/cubic_bezier_unittest.cc |
diff --git a/ui/gfx/geometry/cubic_bezier_unittest.cc b/ui/gfx/geometry/cubic_bezier_unittest.cc |
index 168817c6449ec9caf4f02705092b9080e3904fbe..9ade0daf42fca709bf8acaeb99e1f658ebbfb83c 100644 |
--- a/ui/gfx/geometry/cubic_bezier_unittest.cc |
+++ b/ui/gfx/geometry/cubic_bezier_unittest.cc |
@@ -164,5 +164,32 @@ TEST(CubicBezierTest, Slope) { |
EXPECT_NEAR(function.Slope(1), 0, epsilon); |
} |
+TEST(CubicBezierTest, InputOutOfRange) { |
+ CubicBezier simple(0.5, 1.0, 0.5, 1.0); |
+ EXPECT_EQ(-2.0, simple.Solve(-1.0)); |
+ EXPECT_EQ(1.0, simple.Solve(2.0)); |
+ |
+ CubicBezier coincidentEndpoints(0.0, 0.0, 1.0, 1.0); |
+ EXPECT_EQ(-1.0, coincidentEndpoints.Solve(-1.0)); |
+ EXPECT_EQ(2.0, coincidentEndpoints.Solve(2.0)); |
+ |
+ CubicBezier verticalGradient(0.0, 1.0, 1.0, 0.0); |
+ EXPECT_EQ(0.0, verticalGradient.Solve(-1.0)); |
+ EXPECT_EQ(1.0, verticalGradient.Solve(2.0)); |
+ |
+ CubicBezier distinctEndpoints(0.1, 0.2, 0.8, 0.8); |
+ EXPECT_EQ(-2.0, distinctEndpoints.Solve(-1.0)); |
+ EXPECT_EQ(2.0, distinctEndpoints.Solve(2.0)); |
+ |
+ CubicBezier coincidentEndpoint(0.0, 0.0, 0.8, 0.8); |
+ EXPECT_EQ(-1.0, coincidentEndpoint.Solve(-1.0)); |
+ EXPECT_EQ(2.0, coincidentEndpoint.Solve(2.0)); |
+ |
+ CubicBezier threeCoincidentPoints(0.0, 0.0, 0.0, 0.0); |
+ EXPECT_EQ(0, threeCoincidentPoints.Solve(-1.0)); |
+ EXPECT_EQ(2.0, threeCoincidentPoints.Solve(2.0)); |
+ |
+} |
+ |
} // namespace |
} // namespace gfx |