scope test_G22RegionThinner sS test_G22RegionThinner(int repetitions, S imgString) { ret applyNTimes test_G22RegionThinner(repetitions, imgString); } sS test_G22RegionThinner(S imgString, bool allSteps default false) { var img = bwImageFromString(imgString); //img = bwWhiteBorder(1, 1, img); var image = toBufferedImage(img); var itr = Gazelle22_ImageToRegions( new FunctionTimings, image, new SnPSettings(image, 2)); itr.withDiagonals(true); var region = g22_darkestRegion(itr!); G22RegionThinner_v2 thinner = new(region); if (allSteps) stepAll(thinner); else step(thinner); ret bwImageToString(regionToBWImage_fullImageSize(thinner!)); } svoid #test(S in, S out, bool allSteps default false) { testFunctionValue(s -> "\n" + test_G22RegionThinner(s), in, "\n" + mlsUnindent(out)); } svoid test_G22RegionThinner() { test( [[ ##### ##### ##### ]], [[ _____ _###_ _____ ]]); test( [[ ##### ##### ]], [[ ##### ##### ]]); test( [[ ______ _##___ _###__ __##__ ____#_ ______ ]], [[ ______ ______ __##__ __##__ ____#_ ______ ]]); test( [[ ######_ #####__ #####__ ######_ ######_ ####### ######_ ####### ########_ #######__ ]], [[ _______ _###___ _###___ _####__ _####__ _#####_ _####__ _#####_ _#####_ _______ ]]); //theKProblem(); } svoid #theKProblem { test( [[ #___### #__###_ #_###__ ####___ ]], [[ #___### #__###_ #_###__ ####___ ]], true); }