//set flag JSONSpecialIntegral_debug. svoid test_JSONSpecialIntegral() { new JSONSpecialIntegral integral; integral.analyze([[{"abcdefghijklmnop": "abcdefghijklmnopq", "abcdefghijklmnopq": ["abc","abcdefghijklmnop"]}]]); print(integral.stats()); print(sfuWithIndent(1, integral)); int n = integral.n(); embedded void descend(int i, int iEnd, int remainingDepth) { printVars descend(i, iEnd, remainingDepth); if (i >= iEnd || remainingDepth <= 0) ret; // out of characters or depth // bracket level at start, bracket level at end int lvlLeft = integral.bracketLevel(i-1); int lvlRight = integral.bracketLevel(iEnd-1); // count at start, count at end int cntLeft = integral.bracketCount(i-1); int cntRight = integral.bracketCount(iEnd-1); int brackets = cntRight-cntLeft; print("Brackets in range " + i + " to " + iEnd + ": " + brackets); if (brackets == 0) ret; int iMid = (i+iEnd) >> 1; descend(i, i, iMid); descend(i, iMid, iEnd); } int lvl = integral.bracketLevel(n-1); if (lvl != 0) fail("Bad brackets: level at end is " + lvl); int depth = 1; descend(0, n, depth); }