diff --git a/tests/PathMeasureTest.cpp b/tests/PathMeasureTest.cpp
index 4c26bc1..c9acb7e 100644
--- a/tests/PathMeasureTest.cpp
+++ b/tests/PathMeasureTest.cpp
@@ -51,7 +51,7 @@
     const SkPoint pts[] = {
         { 100000, 100000},
         // big jump between these points, makes a big segment
-        { SkFloatToScalar(1.0005f), SkFloatToScalar(0.9999f) },
+        { 1.0005f, 0.9999f },
         // tiny (non-zero) jump between these points
         { SK_Scalar1, SK_Scalar1 },
     };
@@ -123,7 +123,7 @@
     REPORTER_ASSERT(reporter,
         SkScalarNearlyEqual(position.fX,
                             -SK_ScalarHalf,
-                            SkFloatToScalar(0.0001f)));
+                            0.0001f));
     REPORTER_ASSERT(reporter, position.fY == 0);
     REPORTER_ASSERT(reporter, tangent.fX == -SK_Scalar1);
     REPORTER_ASSERT(reporter, tangent.fY == 0);
@@ -148,26 +148,26 @@
     REPORTER_ASSERT(reporter,
         SkScalarNearlyEqual(position.fX,
                             SK_ScalarHalf,
-                            SkFloatToScalar(0.0001f)));
+                            0.0001f));
     REPORTER_ASSERT(reporter, position.fY == 0);
     REPORTER_ASSERT(reporter, tangent.fX == SK_Scalar1);
     REPORTER_ASSERT(reporter, tangent.fY == 0);
-    REPORTER_ASSERT(reporter, meas.getPosTan(SkFloatToScalar(2.5f), &position, &tangent));
+    REPORTER_ASSERT(reporter, meas.getPosTan(2.5f, &position, &tangent));
     REPORTER_ASSERT(reporter,
-        SkScalarNearlyEqual(position.fX, SK_Scalar1, SkFloatToScalar(0.0001f)));
+        SkScalarNearlyEqual(position.fX, SK_Scalar1, 0.0001f));
     REPORTER_ASSERT(reporter,
-        SkScalarNearlyEqual(position.fY, SkFloatToScalar(1.5f)));
+        SkScalarNearlyEqual(position.fY, 1.5f));
     REPORTER_ASSERT(reporter, tangent.fX == 0);
     REPORTER_ASSERT(reporter, tangent.fY == SK_Scalar1);
-    REPORTER_ASSERT(reporter, meas.getPosTan(SkFloatToScalar(4.5f), &position, &tangent));
+    REPORTER_ASSERT(reporter, meas.getPosTan(4.5f, &position, &tangent));
     REPORTER_ASSERT(reporter,
         SkScalarNearlyEqual(position.fX,
-                            SkFloatToScalar(2.5f),
-                            SkFloatToScalar(0.0001f)));
+                            2.5f,
+                            0.0001f));
     REPORTER_ASSERT(reporter,
         SkScalarNearlyEqual(position.fY,
-                            SkFloatToScalar(2.0f),
-                            SkFloatToScalar(0.0001f)));
+                            2.0f,
+                            0.0001f));
     REPORTER_ASSERT(reporter, tangent.fX == SK_Scalar1);
     REPORTER_ASSERT(reporter, tangent.fY == 0);
 
@@ -184,7 +184,7 @@
     REPORTER_ASSERT(reporter,
         SkScalarNearlyEqual(position.fX,
                             SK_ScalarHalf,
-                            SkFloatToScalar(0.0001f)));
+                            0.0001f));
     REPORTER_ASSERT(reporter, position.fY == 0);
     REPORTER_ASSERT(reporter, tangent.fX == SK_Scalar1);
     REPORTER_ASSERT(reporter, tangent.fY == 0);
@@ -194,12 +194,12 @@
     REPORTER_ASSERT(reporter, meas.getPosTan(SK_ScalarHalf, &position, &tangent));
     REPORTER_ASSERT(reporter,
         SkScalarNearlyEqual(position.fX,
-                            SkFloatToScalar(1.5f),
-                            SkFloatToScalar(0.0001f)));
+                            1.5f,
+                            0.0001f));
     REPORTER_ASSERT(reporter,
         SkScalarNearlyEqual(position.fY,
-                            SkFloatToScalar(2.0f),
-                            SkFloatToScalar(0.0001f)));
+                            2.0f,
+                            0.0001f));
     REPORTER_ASSERT(reporter, tangent.fX == -SK_Scalar1);
     REPORTER_ASSERT(reporter, tangent.fY == 0);
 
