{"ScriptPreparationCode":null,"TestCases":[{"Name":"lutswitch","Code":"let randomInputs = [];\r\nfor( let i = 0; i \u003C 16; i\u002B=4) {\r\n randomInputs[i] = Math.random().toString(10).substring(2, 3);\r\n randomInputs[i\u002B1] = Math.random().toString(10).substring(2, 4);\r\n randomInputs[i\u002B2] = Math.random().toString(10).substring(2, 5);\r\n randomInputs[i\u002B3] = Math.random().toString(10).substring(2, 6);\r\n}\r\n\r\nfunction toRomanNumeralsLUTswitch(numberString)\r\n{\r\n // Group symbols by \u0022exponent\u0022\r\n const lut = [\r\n [\u0027\u0027, \u0027I\u0027, \u0027II\u0027, \u0027III\u0027, \u0027IV\u0027, \u0027V\u0027, \u0027VI\u0027, \u0027VII\u0027, \u0027VIII\u0027, \u0027IX\u0027], // E0\r\n [\u0027\u0027, \u0027X\u0027, \u0027XX\u0027, \u0027XXX\u0027, \u0027XL\u0027, \u0027L\u0027, \u0027LX\u0027, \u0027LXX\u0027, \u0027LXXX\u0027, \u0027XC\u0027], // E1\r\n [\u0027\u0027, \u0027C\u0027, \u0027CC\u0027, \u0027CCC\u0027, \u0027CD\u0027, \u0027D\u0027, \u0027DC\u0027, \u0027DCC\u0027, \u0027DCCC\u0027, \u0027CM\u0027], // E2\r\n // [\u0027M\u0027] // E3\r\n ];\r\n\r\n const digitCount = numberString.length - 1;\r\n\r\n let roman = \u0027\u0027;\r\n \r\n for (let i = 0; i \u003C= digitCount; i\u002B\u002B) {\r\n const exponent = digitCount - i;\r\n switch(exponent){\r\n case 0:\r\n case 1:\r\n case 2:\r\n roman \u002B= lut[exponent][numberString[i]];\r\n break;\r\n \r\n }\r\n }\r\n\r\n // Bundle all digits above E2\r\n if ( digitCount \u003E= 3)\r\n {\r\n roman = \u0027M\u0027.repeat(numberString.slice(0,-3)) \u002B roman;\r\n }\r\n\r\n \r\n return roman;\r\n}\r\n\r\nfor ( const input of randomInputs ) {\r\n toRomanNumeralsLUTswitch(input);\r\n}","IsDeferred":false},{"Name":"tcl","Code":"let randomInputs = [];\r\nfor( let i = 0; i \u003C 16; i\u002B=4) {\r\n randomInputs[i] = Math.random().toString(10).substring(2, 3);\r\n randomInputs[i\u002B1] = Math.random().toString(10).substring(2, 4);\r\n randomInputs[i\u002B2] = Math.random().toString(10).substring(2, 5);\r\n randomInputs[i\u002B3] = Math.random().toString(10).substring(2, 6);\r\n}\r\n\r\nvar romantcl = {\r\n map: [\r\n 1000, \u0027M\u0027, 900, \u0027CM\u0027, 500, \u0027D\u0027, 400, \u0027CD\u0027, 100, \u0027C\u0027, 90, \u0027XC\u0027,\r\n 50, \u0027L\u0027, 40, \u0027XL\u0027, 10, \u0027X\u0027, 9, \u0027IX\u0027, 5, \u0027V\u0027, 4, \u0027IV\u0027, 1, \u0027I\u0027,\r\n ],\r\n int_to_roman: function(n) {\r\n var value = \u0027\u0027;\r\n for (var idx = 0; n \u003E 0 \u0026\u0026 idx \u003C this.map.length; idx \u002B= 2) {\r\n while (n \u003E= this.map[idx]) {\r\n value \u002B= this.map[idx \u002B 1];\r\n n -= this.map[idx];\r\n }\r\n }\r\n return value;\r\n }\r\n}\r\n\r\nfor ( const input of randomInputs ) {\r\n romantcl.int_to_roman(input);\r\n}","IsDeferred":false}]}