Fix bounds of checking if a radii are too long for a side.

BUG=skia:4692,skia:4413
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1617763003

Review URL: https://codereview.chromium.org/1617763003
diff --git a/tests/ScaleToSidesTest.cpp b/tests/ScaleToSidesTest.cpp
index 60e82be..513f0c9 100644
--- a/tests/ScaleToSidesTest.cpp
+++ b/tests/ScaleToSidesTest.cpp
@@ -7,23 +7,27 @@
 
 #include "SkScaleToSides.h"
 
-#include <cfloat>
+#include <algorithm>
 #include "Test.h"
 
 DEF_TEST(ScaleToSides, reporter) {
-    float interestingValues[] = {
-        0.0f,
-        0.5f,
-        1.0f,
-        2.0f,
-        3.0f,
-        33.0f,
-        33554430.0f,
-        33554431.0f,
-        33554464.0f,
-        333333332.0f,
-        333333333.0f,
-        333333334.0f,
+    double interestingValues[] = {
+        // From skp bitbucket
+        111.60000228881836,
+        55.800003051757813,
+        0.99999996581812677920,
+        0.0,
+        0.5,
+        1.0,
+        2.0,
+        3.0,
+        33.0,
+        33554430.0,
+        33554431.0,
+        33554464.0,
+        333333332.0,
+        333333333.0,
+        333333334.0,
         FLT_MAX,
         FLT_EPSILON,
         FLT_MIN
@@ -31,16 +35,21 @@
 
     int numInterestingValues = (int)SK_ARRAY_COUNT(interestingValues);
 
-    for (int i = 0; i < numInterestingValues; i++) {
-        for (int j = 0; j < numInterestingValues; j++) {
-            for (int k = 0; k < numInterestingValues; k++) {
-                float radius1 = interestingValues[i];
-                float radius2 = interestingValues[j];
-                float width = interestingValues[k];
-                if (width > 0.0f) {
-                    double scale = (double)width / ((double)radius1 + (double)radius2);
-                    if (scale < 1.0) {
-                        ScaleToSides::AdjustRadii(width, scale, &radius1, &radius2);
+    for (int s = 0; s <= numInterestingValues; s++) {
+        for (int i = 0; i < numInterestingValues; i++) {
+            for (int j = 0; j < numInterestingValues; j++) {
+                for (int k = 0; k < numInterestingValues; k++) {
+                    float radius1 = (float)interestingValues[i];
+                    float radius2 = (float)interestingValues[j];
+                    double width = interestingValues[k];
+                    double scale = width / ((double)radius1 + (double)radius2);
+                    if (width > 0.0) {
+                        if (s != 0) {
+                            scale = std::min(scale, interestingValues[s-1]);
+                        }
+                        if (scale < 1.0 && scale > 0.0) {
+                            ScaleToSides::AdjustRadii(width, scale, &radius1, &radius2);
+                        }
                     }
                 }
             }