{"ScriptPreparationCode":"const e10 = Math.sqrt(50);\r\nconst e5 = Math.sqrt(10);\r\nconst e2 = Math.sqrt(2);\r\n\r\nfunction generateTicks(start, stop, count) {\r\n let reverse;\r\n let i = -1;\r\n let n;\r\n let ticks;\r\n let step;\r\n stop = \u002Bstop;\r\n start = \u002Bstart;\r\n count = \u002Bcount;\r\n if (start === stop \u0026\u0026 count \u003E 0) {\r\n return [start];\r\n }\r\n if ((reverse = stop \u003C start)) {\r\n n = start;\r\n start = stop;\r\n stop = n;\r\n }\r\n if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) {\r\n return [];\r\n }\r\n\r\n if (step \u003E 0) {\r\n start = Math.ceil(start / step);\r\n stop = Math.floor(stop / step);\r\n ticks = new Array((n = Math.ceil(stop - start \u002B 1)));\r\n while (\u002B\u002Bi \u003C n) ticks[i] = (start \u002B i) * step;\r\n } else {\r\n start = Math.floor(start * step);\r\n stop = Math.ceil(stop * step);\r\n ticks = new Array((n = Math.ceil(start - stop \u002B 1)));\r\n while (\u002B\u002Bi \u003C n) ticks[i] = (start - i) / step;\r\n }\r\n if (reverse) ticks.reverse();\r\n return ticks;\r\n}\r\n\r\n\r\nfunction tickIncrement(\r\n start,\r\n stop,\r\n count,\r\n) {\r\n const step = (stop - start) / Math.max(0, count);\r\n const power = Math.floor(Math.log(step) / Math.LN10);\r\n const error = step / Math.pow(10, power);\r\n return power \u003E= 0\r\n ? (error \u003E= e10 ? 10 : error \u003E= e5 ? 5 : error \u003E= e2 ? 2 : 1) *\r\n Math.pow(10, power)\r\n : -Math.pow(10, -power) /\r\n (error \u003E= e10 ? 10 : error \u003E= e5 ? 5 : error \u003E= e2 ? 2 : 1);\r\n}\r\n\r\nfunction niceNumber(range, round) {\r\n const exponent = Math.floor(Math.log10(range));\r\n const fraction = range / Math.pow(10, exponent);\r\n let niceFraction;\r\n\r\n if (round) {\r\n if (fraction \u003C 1.5) {\r\n niceFraction = 1;\r\n } else if (fraction \u003C 3) {\r\n niceFraction = 2;\r\n } else if (fraction \u003C 7) {\r\n niceFraction = 5;\r\n } else {\r\n niceFraction = 10;\r\n }\r\n } else {\r\n if (fraction \u003C= 1.0) {\r\n niceFraction = 1;\r\n } else if (fraction \u003C= 2) {\r\n niceFraction = 2;\r\n } else if (fraction \u003C= 5) {\r\n niceFraction = 5;\r\n } else {\r\n niceFraction = 10;\r\n }\r\n }\r\n\r\n return niceFraction * Math.pow(10, exponent);\r\n}\r\ndomain = [1000, 200];\r\nfunction ticks1(count) {\r\n const niceRange = niceNumber(domain[1] - domain[0], false);\r\n const spacing = niceNumber(niceRange / (count - 1), true);\r\n const niceMin = Math.floor(domain[0] / spacing) * spacing;\r\n const niceMax = Math.ceil(domain[1] / spacing) * spacing;\r\n\r\n // Put the values into the ticks array\r\n const ticks = [];\r\n for (let j = niceMin; j \u003C= niceMax; j \u002B= spacing) {\r\n ticks.push(j);\r\n }\r\n return ticks;\r\n}\r\n\r\nfunction ticks2(count) {\r\n\tgenerateTicks(domain[0], domain[1], count)\r\n}\r\n\r\n","TestCases":[{"Name":"ticks1","Code":"ticks1(12);\r\n","IsDeferred":false},{"Name":"ticks2","Code":"ticks2(12);","IsDeferred":false}]}