Refactor parse_number_f64 related tests
diff --git a/test/c/std/json.c b/test/c/std/json.c
index 2602028..753419f 100644
--- a/test/c/std/json.c
+++ b/test/c/std/json.c
@@ -360,31 +360,33 @@
                   have, test_cases[tc].want);
     }
   }
+  return NULL;
+}
+
+const char*  //
+test_wuffs_strconv_parse_number_f64_options() {
+  CHECK_FOCUS(__func__);
 
   // Test WUFFS_BASE__PARSE_NUMBER_XXX__ALLOW_MULTIPLE_LEADING_ZEROES.
   {
     int o;
     for (o = 0; o < 2; o++) {
-      wuffs_base__private_implementation__high_prec_dec hpd;
       const char* str = "001.25";
-      wuffs_base__status status =
-          wuffs_base__private_implementation__high_prec_dec__parse(
-              &hpd, wuffs_base__make_slice_u8((void*)str, strlen(str)),
-              (o ? WUFFS_BASE__PARSE_NUMBER_XXX__ALLOW_MULTIPLE_LEADING_ZEROES
-                 : WUFFS_BASE__PARSE_NUMBER_XXX__DEFAULT_OPTIONS));
+      wuffs_base__result_f64 r = wuffs_base__parse_number_f64(
+          wuffs_base__make_slice_u8((void*)str, strlen(str)),
+          (o ? WUFFS_BASE__PARSE_NUMBER_XXX__ALLOW_MULTIPLE_LEADING_ZEROES
+             : WUFFS_BASE__PARSE_NUMBER_XXX__DEFAULT_OPTIONS));
 
       if (o == 0) {
-        if (status.repr != wuffs_base__error__bad_argument) {
+        if (r.status.repr != wuffs_base__error__bad_argument) {
           RETURN_FAIL(
               "ALLOW_MULTIPLE_LEADING_ZEROES off: have \"%s\", want \"%s\"",
-              status.repr, wuffs_base__error__bad_argument);
+              r.status.repr, wuffs_base__error__bad_argument);
         }
         continue;
       }
 
-      CHECK_STATUS("ALLOW_MULTIPLE_LEADING_ZEROES on", status);
-      wuffs_base__result_f64 r =
-          wuffs_base__private_implementation__high_prec_dec__to_f64(&hpd, 0);
+      CHECK_STATUS("ALLOW_MULTIPLE_LEADING_ZEROES on", r.status);
       uint64_t have =
           wuffs_base__ieee_754_bit_representation__from_f64(r.value);
       uint64_t want = 0x3FF4000000000000;
@@ -400,25 +402,21 @@
   {
     int o;
     for (o = 0; o < 2; o++) {
-      wuffs_base__private_implementation__high_prec_dec hpd;
       const char* str = "_1.2__5";
-      wuffs_base__status status =
-          wuffs_base__private_implementation__high_prec_dec__parse(
-              &hpd, wuffs_base__make_slice_u8((void*)str, strlen(str)),
-              (o ? WUFFS_BASE__PARSE_NUMBER_XXX__ALLOW_UNDERSCORES
-                 : WUFFS_BASE__PARSE_NUMBER_XXX__DEFAULT_OPTIONS));
+      wuffs_base__result_f64 r = wuffs_base__parse_number_f64(
+          wuffs_base__make_slice_u8((void*)str, strlen(str)),
+          (o ? WUFFS_BASE__PARSE_NUMBER_XXX__ALLOW_UNDERSCORES
+             : WUFFS_BASE__PARSE_NUMBER_XXX__DEFAULT_OPTIONS));
 
       if (o == 0) {
-        if (status.repr != wuffs_base__error__bad_argument) {
+        if (r.status.repr != wuffs_base__error__bad_argument) {
           RETURN_FAIL("ALLOW_UNDERSCORES off: have \"%s\", want \"%s\"",
-                      status.repr, wuffs_base__error__bad_argument);
+                      r.status.repr, wuffs_base__error__bad_argument);
         }
         continue;
       }
 
-      CHECK_STATUS("ALLOW_UNDERSCORES on", status);
-      wuffs_base__result_f64 r =
-          wuffs_base__private_implementation__high_prec_dec__to_f64(&hpd, 0);
+      CHECK_STATUS("ALLOW_UNDERSCORES on", r.status);
       uint64_t have =
           wuffs_base__ieee_754_bit_representation__from_f64(r.value);
       uint64_t want = 0x3FF4000000000000;
@@ -434,26 +432,22 @@
   {
     int o;
     for (o = 0; o < 2; o++) {
-      wuffs_base__private_implementation__high_prec_dec hpd;
       const char* str = "1,75";
-      wuffs_base__status status =
-          wuffs_base__private_implementation__high_prec_dec__parse(
-              &hpd, wuffs_base__make_slice_u8((void*)str, strlen(str)),
-              (o ? WUFFS_BASE__PARSE_NUMBER_FXX__DECIMAL_SEPARATOR_IS_A_COMMA
-                 : WUFFS_BASE__PARSE_NUMBER_XXX__DEFAULT_OPTIONS));
+      wuffs_base__result_f64 r = wuffs_base__parse_number_f64(
+          wuffs_base__make_slice_u8((void*)str, strlen(str)),
+          (o ? WUFFS_BASE__PARSE_NUMBER_FXX__DECIMAL_SEPARATOR_IS_A_COMMA
+             : WUFFS_BASE__PARSE_NUMBER_XXX__DEFAULT_OPTIONS));
 
       if (o == 0) {
-        if (status.repr != wuffs_base__error__bad_argument) {
+        if (r.status.repr != wuffs_base__error__bad_argument) {
           RETURN_FAIL(
               "DECIMAL_SEPARATOR_IS_A_COMMA off: have \"%s\", want \"%s\"",
-              status.repr, wuffs_base__error__bad_argument);
+              r.status.repr, wuffs_base__error__bad_argument);
         }
         continue;
       }
 
-      CHECK_STATUS("DECIMAL_SEPARATOR_IS_A_COMMA on", status);
-      wuffs_base__result_f64 r =
-          wuffs_base__private_implementation__high_prec_dec__to_f64(&hpd, 0);
+      CHECK_STATUS("DECIMAL_SEPARATOR_IS_A_COMMA on", r.status);
       uint64_t have =
           wuffs_base__ieee_754_bit_representation__from_f64(r.value);
       uint64_t want = 0x3FFC000000000000;
@@ -465,9 +459,7 @@
     }
   }
 
-  // Test WUFFS_BASE__PARSE_NUMBER_FXX__REJECT_INF_AND_NAN, based on calling
-  // wuffs_base__parse_number_f64. It does not call
-  // wuffs_base__private_implementation__high_prec_dec__parse directly.
+  // Test WUFFS_BASE__PARSE_NUMBER_FXX__REJECT_INF_AND_NAN.
   {
     int o;
     for (o = 0; o < 4; o++) {
@@ -709,7 +701,7 @@
 // ----------------
 
 const char*  //
-test_wuffs_strconv_parse_number_f64() {
+test_wuffs_strconv_parse_number_f64_regular() {
   CHECK_FOCUS(__func__);
 
   const uint64_t fail = 0xDEADBEEF;
@@ -3647,7 +3639,8 @@
     test_wuffs_strconv_base_64,
     test_wuffs_strconv_hpd_rounded_integer,
     test_wuffs_strconv_hpd_shift,
-    test_wuffs_strconv_parse_number_f64,
+    test_wuffs_strconv_parse_number_f64_options,
+    test_wuffs_strconv_parse_number_f64_regular,
     test_wuffs_strconv_parse_number_i64,
     test_wuffs_strconv_parse_number_u64,
     test_wuffs_strconv_render_number_f64,