/*jshint globalstrict:false, strict:false, maxlen: 500 */ /*global assertEqual, assertNull, assertTrue */ //////////////////////////////////////////////////////////////////////////////// /// @brief tests for query language, functions /// /// @file /// /// DISCLAIMER /// /// Copyright 2010-2012 triagens GmbH, Cologne, Germany /// /// Licensed under the Apache License, Version 2.0 (the "License"); /// you may not use this file except in compliance with the License. /// You may obtain a copy of the License at /// /// http://www.apache.org/licenses/LICENSE-2.0 /// /// Unless required by applicable law or agreed to in writing, software /// distributed under the License is distributed on an "AS IS" BASIS, /// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. /// See the License for the specific language governing permissions and /// limitations under the License. /// /// Copyright holder is triAGENS GmbH, Cologne, Germany /// /// @author Jan Steemann /// @author Copyright 2012, triAGENS GmbH, Cologne, Germany //////////////////////////////////////////////////////////////////////////////// var internal = require("internal"); var errors = internal.errors; var jsunity = require("jsunity"); var helper = require("@arangodb/aql-helper"); var getQueryResults = helper.getQueryResults; var assertQueryError = helper.assertQueryError; //////////////////////////////////////////////////////////////////////////////// /// @brief test suite //////////////////////////////////////////////////////////////////////////////// function ahuacatlNumericFunctionsTestSuite () { return { //////////////////////////////////////////////////////////////////////////////// /// @brief test floor function //////////////////////////////////////////////////////////////////////////////// testFloor : function () { var expected = [ -100, -3, -3, -3, -2, -2, -2, -2, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 3, 99 ]; var actual = getQueryResults("FOR r IN [ -99.999, -3, -2.1, -2.01, -2, -1.99, -1.1, -1.01, -1, -0.9, -0.6, -0.5, -0.4, -0.1, -0.01, 0, 0.01, 0.1, 0.4, 0.5, 0.6, 0.9, 1, 1.01, 1.1, 1.99, 2, 2.01, 2.1, 3, 99.999 ] return FLOOR(r)"); assertEqual(expected, actual); actual = getQueryResults("FOR r IN [ -99.999, -3, -2.1, -2.01, -2, -1.99, -1.1, -1.01, -1, -0.9, -0.6, -0.5, -0.4, -0.1, -0.01, 0, 0.01, 0.1, 0.4, 0.5, 0.6, 0.9, 1, 1.01, 1.1, 1.99, 2, 2.01, 2.1, 3, 99.999 ] return NOOPT(FLOOR(r))"); assertEqual(expected, actual); actual = getQueryResults("FOR r IN [ -99.999, -3, -2.1, -2.01, -2, -1.99, -1.1, -1.01, -1, -0.9, -0.6, -0.5, -0.4, -0.1, -0.01, 0, 0.01, 0.1, 0.4, 0.5, 0.6, 0.9, 1, 1.01, 1.1, 1.99, 2, 2.01, 2.1, 3, 99.999 ] return NOOPT(V8(FLOOR(r)))"); assertEqual(expected, actual); }, //////////////////////////////////////////////////////////////////////////////// /// @brief test floor function //////////////////////////////////////////////////////////////////////////////// testFloorInvalid : function () { var buildQuery = function (nr, input) { switch (nr) { case 0: return `RETURN FLOOR(${input})`; case 1: return `RETURN NOOPT(FLOOR(${input}))`; case 2: return `RETURN NOOPT(V8(FLOOR(${input})))`; default: assertTrue(false, "Undefined state"); } }; for (var i = 0; i < 3; ++i) { assertQueryError(errors.ERROR_QUERY_FUNCTION_ARGUMENT_NUMBER_MISMATCH.code, buildQuery(i, "")); assertQueryError(errors.ERROR_QUERY_FUNCTION_ARGUMENT_NUMBER_MISMATCH.code, buildQuery(i, "1, 2")); assertEqual([ 0 ], getQueryResults(buildQuery(i, "null"))); assertEqual([ 1 ], getQueryResults(buildQuery(i, "true"))); assertEqual([ 0 ], getQueryResults(buildQuery(i, "\"yes\""))); assertEqual([ 0 ], getQueryResults(buildQuery(i, "[ ]"))); assertEqual([ 2 ], getQueryResults(buildQuery(i, "[ 2 ]"))); assertEqual([ 0 ], getQueryResults(buildQuery(i, "{ }"))); } }, //////////////////////////////////////////////////////////////////////////////// /// @brief test ceil function //////////////////////////////////////////////////////////////////////////////// testCeil : function () { var expected = [ -99, -3, -2, -2, -2, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 100 ]; var actual = getQueryResults("FOR r IN [ -99.999, -3, -2.1, -2.01, -2, -1.99, -1.1, -1.01, -1, -0.9, -0.6, -0.5, -0.4, -0.1, -0.01, 0, 0.01, 0.1, 0.4, 0.5, 0.6, 0.9, 1, 1.01, 1.1, 1.99, 2, 2.01, 2.1, 3, 99.999 ] return CEIL(r)"); assertEqual(expected, actual); actual = getQueryResults("FOR r IN [ -99.999, -3, -2.1, -2.01, -2, -1.99, -1.1, -1.01, -1, -0.9, -0.6, -0.5, -0.4, -0.1, -0.01, 0, 0.01, 0.1, 0.4, 0.5, 0.6, 0.9, 1, 1.01, 1.1, 1.99, 2, 2.01, 2.1, 3, 99.999 ] return NOOPT(CEIL(r))"); assertEqual(expected, actual); actual = getQueryResults("FOR r IN [ -99.999, -3, -2.1, -2.01, -2, -1.99, -1.1, -1.01, -1, -0.9, -0.6, -0.5, -0.4, -0.1, -0.01, 0, 0.01, 0.1, 0.4, 0.5, 0.6, 0.9, 1, 1.01, 1.1, 1.99, 2, 2.01, 2.1, 3, 99.999 ] return NOOPT(V8(CEIL(r)))"); assertEqual(expected, actual); }, //////////////////////////////////////////////////////////////////////////////// /// @brief test ceil function //////////////////////////////////////////////////////////////////////////////// testCeilInvalid : function () { var buildQuery = function (nr, input) { switch (nr) { case 0: return `RETURN CEIL(${input})`; case 1: return `RETURN NOOPT(CEIL(${input}))`; case 2: return `RETURN NOOPT(V8(CEIL(${input})))`; default: assertTrue(false, "Undefined state"); } }; for (var i = 0; i < 3; ++i) { assertQueryError(errors.ERROR_QUERY_FUNCTION_ARGUMENT_NUMBER_MISMATCH.code, buildQuery(i, "")); assertQueryError(errors.ERROR_QUERY_FUNCTION_ARGUMENT_NUMBER_MISMATCH.code, buildQuery(i, "1, 2")); assertEqual([ 0 ], getQueryResults(buildQuery(i, "null"))); assertEqual([ 1 ], getQueryResults(buildQuery(i, "true"))); assertEqual([ 0 ], getQueryResults(buildQuery(i, "\"yes\""))); assertEqual([ 0 ], getQueryResults(buildQuery(i, "[ ]"))); assertEqual([ 2 ], getQueryResults(buildQuery(i, "[ 2 ]"))); assertEqual([ 0 ], getQueryResults(buildQuery(i, "{ }"))); } }, //////////////////////////////////////////////////////////////////////////////// /// @brief test abs function //////////////////////////////////////////////////////////////////////////////// testAbs : function () { var expected = [ 99.999, 3, 2.1, 2.01, 2, 1.99, 1.1, 1.01, 1, 0.9, 0.6, 0.5, 0.4, 0.1, 0.01, 0, 0.01, 0.1, 0.4, 0.5, 0.6, 0.9, 1, 1.01, 1.1, 1.99, 2, 2.01, 2.1, 3, 99.999 ]; var actual = getQueryResults("FOR r IN [ -99.999, -3, -2.1, -2.01, -2, -1.99, -1.1, -1.01, -1, -0.9, -0.6, -0.5, -0.4, -0.1, -0.01, 0, 0.01, 0.1, 0.4, 0.5, 0.6, 0.9, 1, 1.01, 1.1, 1.99, 2, 2.01, 2.1, 3, 99.999 ] return ABS(r)"); assertEqual(expected, actual); actual = getQueryResults("FOR r IN [ -99.999, -3, -2.1, -2.01, -2, -1.99, -1.1, -1.01, -1, -0.9, -0.6, -0.5, -0.4, -0.1, -0.01, 0, 0.01, 0.1, 0.4, 0.5, 0.6, 0.9, 1, 1.01, 1.1, 1.99, 2, 2.01, 2.1, 3, 99.999 ] return NOOPT(ABS(r))"); assertEqual(expected, actual); actual = getQueryResults("FOR r IN [ -99.999, -3, -2.1, -2.01, -2, -1.99, -1.1, -1.01, -1, -0.9, -0.6, -0.5, -0.4, -0.1, -0.01, 0, 0.01, 0.1, 0.4, 0.5, 0.6, 0.9, 1, 1.01, 1.1, 1.99, 2, 2.01, 2.1, 3, 99.999 ] return NOOPT(V8(ABS(r)))"); assertEqual(expected, actual); }, //////////////////////////////////////////////////////////////////////////////// /// @brief test abs function //////////////////////////////////////////////////////////////////////////////// testAbsInvalid : function () { var buildQuery = function (nr, input) { switch (nr) { case 0: return `RETURN ABS(${input})`; case 1: return `RETURN NOOPT(ABS(${input}))`; case 2: return `RETURN NOOPT(V8(ABS(${input})))`; default: assertTrue(false, "Undefined state"); } }; for (var i = 0; i < 3; ++i) { assertQueryError(errors.ERROR_QUERY_FUNCTION_ARGUMENT_NUMBER_MISMATCH.code, buildQuery(i, "")); assertQueryError(errors.ERROR_QUERY_FUNCTION_ARGUMENT_NUMBER_MISMATCH.code, buildQuery(i, "1,2")); assertEqual([ 0 ], getQueryResults(buildQuery(i, "null"))); assertEqual([ 1 ], getQueryResults(buildQuery(i, "true"))); assertEqual([ 0 ], getQueryResults(buildQuery(i, "\"yes\""))); assertEqual([ 0 ], getQueryResults(buildQuery(i, "[ ]"))); assertEqual([ 37 ], getQueryResults(buildQuery(i, "[ -37 ]"))); assertEqual([ 0 ], getQueryResults(buildQuery(i, "{ }"))); } }, //////////////////////////////////////////////////////////////////////////////// /// @brief test round function //////////////////////////////////////////////////////////////////////////////// testRound : function () { var expected = [ -100, -3, -2, -2, -2, -2, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 3, 100 ]; var actual = getQueryResults("FOR r IN [ -99.999, -3, -2.1, -2.01, -2, -1.99, -1.1, -1.01, -1, -0.9, -0.6, -0.5, -0.4, -0.1, -0.01, 0, 0.01, 0.1, 0.4, 0.5, 0.6, 0.9, 1, 1.01, 1.1, 1.99, 2, 2.01, 2.1, 3, 99.999 ] return ROUND(r)"); assertEqual(expected, actual); actual = getQueryResults("FOR r IN [ -99.999, -3, -2.1, -2.01, -2, -1.99, -1.1, -1.01, -1, -0.9, -0.6, -0.5, -0.4, -0.1, -0.01, 0, 0.01, 0.1, 0.4, 0.5, 0.6, 0.9, 1, 1.01, 1.1, 1.99, 2, 2.01, 2.1, 3, 99.999 ] return NOOPT(ROUND(r))"); assertEqual(expected, actual); actual = getQueryResults("FOR r IN [ -99.999, -3, -2.1, -2.01, -2, -1.99, -1.1, -1.01, -1, -0.9, -0.6, -0.5, -0.4, -0.1, -0.01, 0, 0.01, 0.1, 0.4, 0.5, 0.6, 0.9, 1, 1.01, 1.1, 1.99, 2, 2.01, 2.1, 3, 99.999 ] return NOOPT(V8(ROUND(r)))"); assertEqual(expected, actual); }, //////////////////////////////////////////////////////////////////////////////// /// @brief test round function //////////////////////////////////////////////////////////////////////////////// testRoundInvalid : function () { var buildQuery = function (nr, input) { switch (nr) { case 0: return `RETURN ROUND(${input})`; case 1: return `RETURN NOOPT(ROUND(${input}))`; case 2: return `RETURN NOOPT(V8(ROUND(${input})))`; default: assertTrue(false, "Undefined state"); } }; for (var i = 0; i < 3; ++i) { assertQueryError(errors.ERROR_QUERY_FUNCTION_ARGUMENT_NUMBER_MISMATCH.code, buildQuery(i, "")); assertQueryError(errors.ERROR_QUERY_FUNCTION_ARGUMENT_NUMBER_MISMATCH.code, buildQuery(i, "1,2")); assertEqual([ 0 ], getQueryResults(buildQuery(i, "null"))); assertEqual([ 1 ], getQueryResults(buildQuery(i, "true"))); assertEqual([ 0 ], getQueryResults(buildQuery(i, "\"yes\""))); assertEqual([ 0 ], getQueryResults(buildQuery(i, "[ ]"))); assertEqual([ -37 ], getQueryResults(buildQuery(i, "[ -37 ]"))); assertEqual([ 0 ], getQueryResults(buildQuery(i, "{ }"))); } }, //////////////////////////////////////////////////////////////////////////////// /// @brief test rand function //////////////////////////////////////////////////////////////////////////////// testRand : function () { var queries = [ "FOR r IN [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 ] RETURN RAND()", "FOR r IN [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 ] RETURN NOOPT(RAND())", "FOR r IN [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 ] RETURN NOOPT(V8(RAND()))" ]; queries.forEach(function(query) { var actual = getQueryResults(query); for (var i in actual) { if (actual.hasOwnProperty(i)) { var value = actual[i]; assertTrue(value >= 0.0 && value < 1.0); } } }); }, //////////////////////////////////////////////////////////////////////////////// /// @brief test rand function //////////////////////////////////////////////////////////////////////////////// testRandInvalid : function () { assertQueryError(errors.ERROR_QUERY_FUNCTION_ARGUMENT_NUMBER_MISMATCH.code, "RETURN RAND(1)"); assertQueryError(errors.ERROR_QUERY_FUNCTION_ARGUMENT_NUMBER_MISMATCH.code, "RETURN RAND(2)"); assertQueryError(errors.ERROR_QUERY_FUNCTION_ARGUMENT_NUMBER_MISMATCH.code, "RETURN NOOPT(RAND(1))"); assertQueryError(errors.ERROR_QUERY_FUNCTION_ARGUMENT_NUMBER_MISMATCH.code, "RETURN NOOPT(RAND(2))"); assertQueryError(errors.ERROR_QUERY_FUNCTION_ARGUMENT_NUMBER_MISMATCH.code, "RETURN NOOPT(V8(RAND(1)))"); assertQueryError(errors.ERROR_QUERY_FUNCTION_ARGUMENT_NUMBER_MISMATCH.code, "RETURN NOOPT(V8(RAND(2)))"); }, //////////////////////////////////////////////////////////////////////////////// /// @brief test sqrt function //////////////////////////////////////////////////////////////////////////////// testSqrt : function () { var data = [ [ 0, 0 ], [ 0.1, 0.31622776601684 ], [ 0.01, 0.1 ], [ 0.001, 0.031622776601684 ], [ 0.002, 0.044721359549996 ], [ 0.0004, 0.02 ], [ 9.0E-5, 0.0094868329805051 ], [ 9.0E-6, 0.003 ], [ 0.1212121415, 0.34815534104764 ], [ 1, 1 ], [ 2, 1.4142135623731 ], [ 2.25, 1.5 ], [ 3, 1.7320508075689 ], [ 4, 2 ], [ 5, 2.2360679774998 ], [ 6, 2.4494897427832 ], [ 9, 3 ], [ 12, 3.4641016151378 ], [ 14, 3.7416573867739 ], [ 16, 4 ], [ 20, 4.4721359549996 ], [ 25, 5 ], [ 36, 6 ], [ 37, 6.0827625302982 ], [ 99, 9.9498743710662 ], [ 100, 10 ], [ 100000, 316.22776601684 ], [ 1000000, 1000 ], [ 10000000, 3162.2776601684 ], [ 1000000000, 31622.776601684 ], [ -0.1, null ], [ -0.01, null ], [ -1.0E-5, null ], [ -1, null ], [ -2, null ], [ -3, null ], [ -5, null ], [ -10, null ], [ -13, null ], [ -16, null ], [ -25, null ], [ -27, null ], [ -100, null ], [ -1000, null ], [ -10000, null ], [ -100000, null ] ]; data.forEach(function (value) { var actual = getQueryResults("RETURN SQRT(" + JSON.stringify(value[0]) + ")"); if (value[1] === null) { assertNull(actual[0]); } else { assertEqual(value[1].toFixed(4), actual[0].toFixed(4)); } actual = getQueryResults("RETURN NOOPT(SQRT(" + JSON.stringify(value[0]) + "))"); if (value[1] === null) { assertNull(actual[0]); } else { assertEqual(value[1].toFixed(4), actual[0].toFixed(4)); } actual = getQueryResults("RETURN NOOPT(V8(SQRT(" + JSON.stringify(value[0]) + ")))"); if (value[1] === null) { assertNull(actual[0]); } else { assertEqual(value[1].toFixed(4), actual[0].toFixed(4)); } }); }, //////////////////////////////////////////////////////////////////////////////// /// @brief test sqrt function //////////////////////////////////////////////////////////////////////////////// testSqrtInvalid : function () { var buildQuery = function (nr, input) { switch (nr) { case 0: return `RETURN SQRT(${input})`; case 1: return `RETURN NOOPT(SQRT(${input}))`; case 2: return `RETURN NOOPT(V8(SQRT(${input})))`; default: assertTrue(false, "Undefined state"); } }; for (var i = 0; i < 3; ++i) { assertQueryError(errors.ERROR_QUERY_FUNCTION_ARGUMENT_NUMBER_MISMATCH.code, buildQuery(i, "")); assertQueryError(errors.ERROR_QUERY_FUNCTION_ARGUMENT_NUMBER_MISMATCH.code, buildQuery(i, "2, 2")); assertQueryError(errors.ERROR_QUERY_FUNCTION_ARGUMENT_NUMBER_MISMATCH.code, buildQuery(i, "2, 2, 3")); assertEqual([ 0 ], getQueryResults(buildQuery(i, "false"))); assertEqual([ 1 ], getQueryResults(buildQuery(i, "true"))); assertEqual([ 0 ], getQueryResults(buildQuery(i, "'foo'"))); assertEqual([ 0 ], getQueryResults(buildQuery(i, "[ ]"))); assertEqual([ 0 ], getQueryResults(buildQuery(i, "{ }"))); } }, //////////////////////////////////////////////////////////////////////////////// /// @brief test pow function //////////////////////////////////////////////////////////////////////////////// testPow : function () { var data = [ [ -4.536e+121 , -4.536e+121 , 0 ], [ -4.536e+121 , -1.23e+42 , 0 ], [ -4.536e+121 , -999999 , 0 ], [ -4.536e+121 , -10000 , 0 ], [ -4.536e+121 , -1024 , 0 ], [ -4.536e+121 , -99 , 0 ], [ -4.536e+121 , -42 , 0 ], [ -4.536e+121 , -42.53 , null ], [ -4.536e+121 , -12.42 , null ], [ -4.536e+121 , -9.31 , null ], [ -4.536e+121 , -3.5 , null ], [ -4.536e+121 , -3 , 0 ], [ -4.536e+121 , -2 , 4.860197394001039e-244 ], [ -4.536e+121 , -1.5 , null ], [ -4.536e+121 , -1 , -2.2045855379188713e-122 ], [ -4.536e+121 , -0.9 , null ], [ -4.536e+121 , -0.5 , null ], [ -4.536e+121 , -0.1 , null ], [ -4.536e+121 , -0.01 , null ], [ -4.536e+121 , 0 , 1 ], [ -4.536e+121 , 0.01 , null ], [ -4.536e+121 , 0.1 , null ], [ -4.536e+121 , 0.5 , null ], [ -4.536e+121 , 0.9 , null ], [ -4.536e+121 , 1 , -4.536e+121 ], [ -4.536e+121 , 1.5 , null ], [ -4.536e+121 , 2 , 2.0575296e+243 ], [ -4.536e+121 , 3 , null ], [ -4.536e+121 , 3.5 , null ], [ -4.536e+121 , 9.31 , null ], [ -4.536e+121 , 12.42 , null ], [ -4.536e+121 , 42.53 , null ], [ -4.536e+121 , 42 , null ], [ -4.536e+121 , 99 , null ], [ -4.536e+121 , 1024 , null ], [ -4.536e+121 , 10000 , null ], [ -4.536e+121 , 999999 , null ], [ -4.536e+121 , 1.23e+42 , null ], [ -4.536e+121 , 4.536e+121 , null ], [ -4.536e+121 , 1.321e-45 , null ], [ -1.23e+42 , -4.536e+121 , 0 ], [ -1.23e+42 , -1.23e+42 , 0 ], [ -1.23e+42 , -999999 , 0 ], [ -1.23e+42 , -10000 , 0 ], [ -1.23e+42 , -1024 , 0 ], [ -1.23e+42 , -99 , 0 ], [ -1.23e+42 , -42 , 0 ], [ -1.23e+42 , -42.53 , null ], [ -1.23e+42 , -12.42 , null ], [ -1.23e+42 , -9.31 , null ], [ -1.23e+42 , -3.5 , null ], [ -1.23e+42 , -3 , -5.373839183563361e-127 ], [ -1.23e+42 , -2 , 6.609822195782934e-85 ], [ -1.23e+42 , -1.5 , null ], [ -1.23e+42 , -1 , -8.130081300813009e-43 ], [ -1.23e+42 , -0.9 , null ], [ -1.23e+42 , -0.5 , null ], [ -1.23e+42 , -0.1 , null ], [ -1.23e+42 , -0.01 , null ], [ -1.23e+42 , 0 , 1 ], [ -1.23e+42 , 0.01 , null ], [ -1.23e+42 , 0.1 , null ], [ -1.23e+42 , 0.5 , null ], [ -1.23e+42 , 0.9 , null ], [ -1.23e+42 , 1 , -1.23e+42 ], [ -1.23e+42 , 1.5 , null ], [ -1.23e+42 , 2 , 1.5128999999999998e+84 ], [ -1.23e+42 , 3 , -1.8608669999999998e+126 ], [ -1.23e+42 , 3.5 , null ], [ -1.23e+42 , 9.31 , null ], [ -1.23e+42 , 12.42 , null ], [ -1.23e+42 , 42.53 , null ], [ -1.23e+42 , 42 , null ], [ -1.23e+42 , 99 , null ], [ -1.23e+42 , 1024 , null ], [ -1.23e+42 , 10000 , null ], [ -1.23e+42 , 999999 , null ], [ -1.23e+42 , 1.23e+42 , null ], [ -1.23e+42 , 4.536e+121 , null ], [ -1.23e+42 , 1.321e-45 , null ], [ -999999 , -4.536e+121 , 0 ], [ -999999 , -1.23e+42 , 0 ], [ -999999 , -999999 , 0 ], [ -999999 , -10000 , 0 ], [ -999999 , -1024 , 0 ], [ -999999 , -99 , 0 ], [ -999999 , -42 , 1.0000420009030127e-252 ], [ -999999 , -42.53 , null ], [ -999999 , -12.42 , null ], [ -999999 , -9.31 , null ], [ -999999 , -3.5 , null ], [ -999999 , -3 , -1.000003000006e-18 ], [ -999999 , -2 , 1.000002000003e-12 ], [ -999999 , -1.5 , null ], [ -999999 , -1 , -0.000001000001000001 ], [ -999999 , -0.9 , null ], [ -999999 , -0.5 , null ], [ -999999 , -0.1 , null ], [ -999999 , -0.01 , null ], [ -999999 , 0 , 1 ], [ -999999 , 0.01 , null ], [ -999999 , 0.1 , null ], [ -999999 , 0.5 , null ], [ -999999 , 0.9 , null ], [ -999999 , 1 , -999999 ], [ -999999 , 1.5 , null ], [ -999999 , 2 , 999998000001 ], [ -999999 , 3 , -999997000002999900 ], [ -999999 , 3.5 , null ], [ -999999 , 9.31 , null ], [ -999999 , 12.42 , null ], [ -999999 , 42.53 , null ], [ -999999 , 42 , 9.99958000860989e+251 ], [ -999999 , 99 , null ], [ -999999 , 1024 , null ], [ -999999 , 10000 , null ], [ -999999 , 999999 , null ], [ -999999 , 1.23e+42 , null ], [ -999999 , 4.536e+121 , null ], [ -999999 , 1.321e-45 , null ], [ -10000 , -4.536e+121 , 0 ], [ -10000 , -1.23e+42 , 0 ], [ -10000 , -999999 , 0 ], [ -10000 , -10000 , 0 ], [ -10000 , -1024 , 0 ], [ -10000 , -99 , 0 ], [ -10000 , -42 , 9.999999999999997e-169 ], [ -10000 , -42.53 , null ], [ -10000 , -12.42 , null ], [ -10000 , -9.31 , null ], [ -10000 , -3.5 , null ], [ -10000 , -3 , -1e-12 ], [ -10000 , -2 , 1e-8 ], [ -10000 , -1.5 , null ], [ -10000 , -1 , -0.0001 ], [ -10000 , -0.9 , null ], [ -10000 , -0.5 , null ], [ -10000 , -0.1 , null ], [ -10000 , -0.01 , null ], [ -10000 , 0 , 1 ], [ -10000 , 0.01 , null ], [ -10000 , 0.1 , null ], [ -10000 , 0.5 , null ], [ -10000 , 0.9 , null ], [ -10000 , 1 , -10000 ], [ -10000 , 1.5 , null ], [ -10000 , 2 , 100000000 ], [ -10000 , 3 , -1000000000000 ], [ -10000 , 3.5 , null ], [ -10000 , 9.31 , null ], [ -10000 , 12.42 , null ], [ -10000 , 42.53 , null ], [ -10000 , 42 , 1.0000000000000004e+168 ], [ -10000 , 99 , null ], [ -10000 , 1024 , null ], [ -10000 , 10000 , null ], [ -10000 , 999999 , null ], [ -10000 , 1.23e+42 , null ], [ -10000 , 4.536e+121 , null ], [ -10000 , 1.321e-45 , null ], [ -1024 , -4.536e+121 , 0 ], [ -1024 , -1.23e+42 , 0 ], [ -1024 , -999999 , 0 ], [ -1024 , -10000 , 0 ], [ -1024 , -1024 , 0 ], [ -1024 , -99 , -9.556619453472961e-299 ], [ -1024 , -42 , 3.6931914471142943e-127 ], [ -1024 , -42.53 , null ], [ -1024 , -12.42 , null ], [ -1024 , -9.31 , null ], [ -1024 , -3.5 , null ], [ -1024 , -3 , -9.313225746154785e-10 ], [ -1024 , -2 , 9.5367431640625e-7 ], [ -1024 , -1.5 , null ], [ -1024 , -1 , -0.0009765625 ], [ -1024 , -0.9 , null ], [ -1024 , -0.5 , null ], [ -1024 , -0.1 , null ], [ -1024 , -0.01 , null ], [ -1024 , 0 , 1 ], [ -1024 , 0.01 , null ], [ -1024 , 0.1 , null ], [ -1024 , 0.5 , null ], [ -1024 , 0.9 , null ], [ -1024 , 1 , -1024 ], [ -1024 , 1.5 , null ], [ -1024 , 2 , 1048576 ], [ -1024 , 3 , -1073741824 ], [ -1024 , 3.5 , null ], [ -1024 , 9.31 , null ], [ -1024 , 12.42 , null ], [ -1024 , 42.53 , null ], [ -1024 , 42 , 2.7076852481648583e+126 ], [ -1024 , 99 , -1.0463951242053392e+298 ], [ -1024 , 1024 , null ], [ -1024 , 10000 , null ], [ -1024 , 999999 , null ], [ -1024 , 1.23e+42 , null ], [ -1024 , 4.536e+121 , null ], [ -1024 , 1.321e-45 , null ], [ -99 , -4.536e+121 , 0 ], [ -99 , -1.23e+42 , 0 ], [ -99 , -999999 , 0 ], [ -99 , -10000 , 0 ], [ -99 , -1024 , 0 ], [ -99 , -99 , -2.7046790361647396e-198 ], [ -99 , -42 , 1.5251825470010567e-84 ], [ -99 , -42.53 , null ], [ -99 , -12.42 , null ], [ -99 , -9.31 , null ], [ -99 , -3.5 , null ], [ -99 , -3 , -0.0000010306101521283646 ], [ -99 , -2 , 0.00010203040506070809 ], [ -99 , -1.5 , null ], [ -99 , -1 , -0.010101010101010102 ], [ -99 , -0.9 , null ], [ -99 , -0.5 , null ], [ -99 , -0.1 , null ], [ -99 , -0.01 , null ], [ -99 , 0 , 1 ], [ -99 , 0.01 , null ], [ -99 , 0.1 , null ], [ -99 , 0.5 , null ], [ -99 , 0.9 , null ], [ -99 , 1 , -99 ], [ -99 , 1.5 , null ], [ -99 , 2 , 9801 ], [ -99 , 3 , -970299 ], [ -99 , 3.5 , null ], [ -99 , 9.31 , null ], [ -99 , 12.42 , null ], [ -99 , 42.53 , null ], [ -99 , 42 , 6.556592205741436e+83 ], [ -99 , 99 , -3.697296376497263e+197 ], [ -99 , 1024 , null ], [ -99 , 10000 , null ], [ -99 , 999999 , null ], [ -99 , 1.23e+42 , null ], [ -99 , 4.536e+121 , null ], [ -99 , 1.321e-45 , null ], [ -42 , -4.536e+121 , 0 ], [ -42 , -1.23e+42 , 0 ], [ -42 , -999999 , 0 ], [ -42 , -10000 , 0 ], [ -42 , -1024 , 0 ], [ -42 , -99 , -1.9875600123585817e-161 ], [ -42 , -42 , 6.660852295672145e-69 ], [ -42 , -42.53 , null ], [ -42 , -12.42 , null ], [ -42 , -9.31 , null ], [ -42 , -3.5 , null ], [ -42 , -3 , -0.000013497462477054314 ], [ -42 , -2 , 0.0005668934240362812 ], [ -42 , -1.5 , null ], [ -42 , -1 , -0.023809523809523808 ], [ -42 , -0.9 , null ], [ -42 , -0.5 , null ], [ -42 , -0.1 , null ], [ -42 , -0.01 , null ], [ -42 , 0 , 1 ], [ -42 , 0.01 , null ], [ -42 , 0.1 , null ], [ -42 , 0.5 , null ], [ -42 , 0.9 , null ], [ -42 , 1 , -42 ], [ -42 , 1.5 , null ], [ -42 , 2 , 1764 ], [ -42 , 3 , -74088 ], [ -42 , 3.5 , null ], [ -42 , 9.31 , null ], [ -42 , 12.42 , null ], [ -42 , 42.53 , null ], [ -42 , 42 , 1.5013093754529656e+68 ], [ -42 , 99 , -5.031294621455621e+160 ], [ -42 , 1024 , null ], [ -42 , 10000 , null ], [ -42 , 999999 , null ], [ -42 , 1.23e+42 , null ], [ -42 , 4.536e+121 , null ], [ -42 , 1.321e-45 , null ], [ -42.53 , -4.536e+121 , 0 ], [ -42.53 , -1.23e+42 , 0 ], [ -42.53 , -999999 , 0 ], [ -42.53 , -10000 , 0 ], [ -42.53 , -1024 , 0 ], [ -42.53 , -99 , -5.743241933935965e-162 ], [ -42.53 , -42 , 3.933633791030979e-69 ], [ -42.53 , -42.53 , null ], [ -42.53 , -12.42 , null ], [ -42.53 , -9.31 , null ], [ -42.53 , -3.5 , null ], [ -42.53 , -3 , -0.000012999116975170522 ], [ -42.53 , -2 , 0.0005528524449540023 ], [ -42.53 , -1.5 , null ], [ -42.53 , -1 , -0.02351281448389372 ], [ -42.53 , -0.9 , null ], [ -42.53 , -0.5 , null ], [ -42.53 , -0.1 , null ], [ -42.53 , -0.01 , null ], [ -42.53 , 0 , 1 ], [ -42.53 , 0.01 , null ], [ -42.53 , 0.1 , null ], [ -42.53 , 0.5 , null ], [ -42.53 , 0.9 , null ], [ -42.53 , 1 , -42.53 ], [ -42.53 , 1.5 , null ], [ -42.53 , 2 , 1808.8009000000002 ], [ -42.53 , 3 , -76928.30227700001 ], [ -42.53 , 3.5 , null ], [ -42.53 , 9.31 , null ], [ -42.53 , 12.42 , null ], [ -42.53 , 42.53 , null ], [ -42.53 , 42 , 2.542178690553466e+68 ], [ -42.53 , 99 , -1.7411768675304243e+161 ], [ -42.53 , 1024 , null ], [ -42.53 , 10000 , null ], [ -42.53 , 999999 , null ], [ -42.53 , 1.23e+42 , null ], [ -42.53 , 4.536e+121 , null ], [ -42.53 , 1.321e-45 , null ], [ -12.42 , -4.536e+121 , 0 ], [ -12.42 , -1.23e+42 , 0 ], [ -12.42 , -999999 , 0 ], [ -12.42 , -10000 , 0 ], [ -12.42 , -1024 , 0 ], [ -12.42 , -99 , -4.807972907429728e-109 ], [ -12.42 , -42 , 1.1140199663976283e-46 ], [ -12.42 , -42.53 , null ], [ -12.42 , -12.42 , null ], [ -12.42 , -9.31 , null ], [ -12.42 , -3.5 , null ], [ -12.42 , -3 , -0.000521957584298624 ], [ -12.42 , -2 , 0.00648271319698891 ], [ -12.42 , -1.5 , null ], [ -12.42 , -1 , -0.08051529790660225 ], [ -12.42 , -0.9 , null ], [ -12.42 , -0.5 , null ], [ -12.42 , -0.1 , null ], [ -12.42 , -0.01 , null ], [ -12.42 , 0 , 1 ], [ -12.42 , 0.01 , null ], [ -12.42 , 0.1 , null ], [ -12.42 , 0.5 , null ], [ -12.42 , 0.9 , null ], [ -12.42 , 1 , -12.42 ], [ -12.42 , 1.5 , null ], [ -12.42 , 2 , 154.25639999999999 ], [ -12.42 , 3 , -1915.8644879999997 ], [ -12.42 , 3.5 , null ], [ -12.42 , 9.31 , null ], [ -12.42 , 12.42 , null ], [ -12.42 , 42.53 , null ], [ -12.42 , 42 , 8.976499795005191e+45 ], [ -12.42 , 99 , -2.0798786084145918e+108 ], [ -12.42 , 1024 , null ], [ -12.42 , 10000 , null ], [ -12.42 , 999999 , null ], [ -12.42 , 1.23e+42 , null ], [ -12.42 , 4.536e+121 , null ], [ -12.42 , 1.321e-45 , null ], [ -9.31 , -4.536e+121 , 0 ], [ -9.31 , -1.23e+42 , 0 ], [ -9.31 , -999999 , 0 ], [ -9.31 , -10000 , 0 ], [ -9.31 , -1024 , 0 ], [ -9.31 , -99 , -1.185718464264813e-96 ], [ -9.31 , -42 , 2.014250122755899e-41 ], [ -9.31 , -42.53 , null ], [ -9.31 , -12.42 , null ], [ -9.31 , -9.31 , null ], [ -9.31 , -3.5 , null ], [ -9.31 , -3 , -0.0012392272564971695 ], [ -9.31 , -2 , 0.01153720575798865 ], [ -9.31 , -1.5 , null ], [ -9.31 , -1 , -0.10741138560687433 ], [ -9.31 , -0.9 , null ], [ -9.31 , -0.5 , null ], [ -9.31 , -0.1 , null ], [ -9.31 , -0.01 , null ], [ -9.31 , 0 , 1 ], [ -9.31 , 0.01 , null ], [ -9.31 , 0.1 , null ], [ -9.31 , 0.5 , null ], [ -9.31 , 0.9 , null ], [ -9.31 , 1 , -9.31 ], [ -9.31 , 1.5 , null ], [ -9.31 , 2 , 86.6761 ], [ -9.31 , 3 , -806.9544910000001 ], [ -9.31 , 3.5 , null ], [ -9.31 , 9.31 , null ], [ -9.31 , 12.42 , null ], [ -9.31 , 42.53 , null ], [ -9.31 , 42 , 4.964626729831343e+40 ], [ -9.31 , 99 , -8.433705218717624e+95 ], [ -9.31 , 1024 , null ], [ -9.31 , 10000 , null ], [ -9.31 , 999999 , null ], [ -9.31 , 1.23e+42 , null ], [ -9.31 , 4.536e+121 , null ], [ -9.31 , 1.321e-45 , null ], [ -3.5 , -4.536e+121 , 0 ], [ -3.5 , -1.23e+42 , 0 ], [ -3.5 , -999999 , 0 ], [ -3.5 , -10000 , 0 ], [ -3.5 , -1024 , 0 ], [ -3.5 , -99 , -1.3717141205373995e-54 ], [ -3.5 , -42 , 1.4097501104573573e-23 ], [ -3.5 , -42.53 , null ], [ -3.5 , -12.42 , null ], [ -3.5 , -9.31 , null ], [ -3.5 , -3.5 , null ], [ -3.5 , -3 , -0.023323615160349854 ], [ -3.5 , -2 , 0.08163265306122448 ], [ -3.5 , -1.5 , null ], [ -3.5 , -1 , -0.2857142857142857 ], [ -3.5 , -0.9 , null ], [ -3.5 , -0.5 , null ], [ -3.5 , -0.1 , null ], [ -3.5 , -0.01 , null ], [ -3.5 , 0 , 1 ], [ -3.5 , 0.01 , null ], [ -3.5 , 0.1 , null ], [ -3.5 , 0.5 , null ], [ -3.5 , 0.9 , null ], [ -3.5 , 1 , -3.5 ], [ -3.5 , 1.5 , null ], [ -3.5 , 2 , 12.25 ], [ -3.5 , 3 , -42.875 ], [ -3.5 , 3.5 , null ], [ -3.5 , 9.31 , null ], [ -3.5 , 12.42 , null ], [ -3.5 , 42.53 , null ], [ -3.5 , 42 , 7.093455730786045e+22 ], [ -3.5 , 99 , -7.29014876371053e+53 ], [ -3.5 , 1024 , null ], [ -3.5 , 10000 , null ], [ -3.5 , 999999 , null ], [ -3.5 , 1.23e+42 , null ], [ -3.5 , 4.536e+121 , null ], [ -3.5 , 1.321e-45 , null ], [ -3 , -4.536e+121 , 0 ], [ -3 , -1.23e+42 , 0 ], [ -3 , -999999 , 0 ], [ -3 , -10000 , 0 ], [ -3 , -1024 , 0 ], [ -3 , -99 , -5.820975652447899e-48 ], [ -3 , -42 , 9.139181488855509e-21 ], [ -3 , -42.53 , null ], [ -3 , -12.42 , null ], [ -3 , -9.31 , null ], [ -3 , -3.5 , null ], [ -3 , -3 , -0.037037037037037035 ], [ -3 , -2 , 0.1111111111111111 ], [ -3 , -1.5 , null ], [ -3 , -1 , -0.3333333333333333 ], [ -3 , -0.9 , null ], [ -3 , -0.5 , null ], [ -3 , -0.1 , null ], [ -3 , -0.01 , null ], [ -3 , 0 , 1 ], [ -3 , 0.01 , null ], [ -3 , 0.1 , null ], [ -3 , 0.5 , null ], [ -3 , 0.9 , null ], [ -3 , 1 , -3 ], [ -3 , 1.5 , null ], [ -3 , 2 , 9 ], [ -3 , 3 , -27 ], [ -3 , 3.5 , null ], [ -3 , 9.31 , null ], [ -3 , 12.42 , null ], [ -3 , 42.53 , null ], [ -3 , 42 , 109418989131512370000 ], [ -3 , 99 , -1.7179250691067043e+47 ], [ -3 , 1024 , null ], [ -3 , 10000 , null ], [ -3 , 999999 , null ], [ -3 , 1.23e+42 , null ], [ -3 , 4.536e+121 , null ], [ -3 , 1.321e-45 , null ], [ -2 , -4.536e+121 , 0 ], [ -2 , -1.23e+42 , 0 ], [ -2 , -999999 , 0 ], [ -2 , -10000 , 0 ], [ -2 , -1024 , 5.562684646268003e-309 ], [ -2 , -99 , -1.5777218104420236e-30 ], [ -2 , -42 , 2.2737367544323206e-13 ], [ -2 , -42.53 , null ], [ -2 , -12.42 , null ], [ -2 , -9.31 , null ], [ -2 , -3.5 , null ], [ -2 , -3 , -0.125 ], [ -2 , -2 , 0.25 ], [ -2 , -1.5 , null ], [ -2 , -1 , -0.5 ], [ -2 , -0.9 , null ], [ -2 , -0.5 , null ], [ -2 , -0.1 , null ], [ -2 , -0.01 , null ], [ -2 , 0 , 1 ], [ -2 , 0.01 , null ], [ -2 , 0.1 , null ], [ -2 , 0.5 , null ], [ -2 , 0.9 , null ], [ -2 , 1 , -2 ], [ -2 , 1.5 , null ], [ -2 , 2 , 4 ], [ -2 , 3 , -8 ], [ -2 , 3.5 , null ], [ -2 , 9.31 , null ], [ -2 , 12.42 , null ], [ -2 , 42.53 , null ], [ -2 , 42 , 4398046511104 ], [ -2 , 99 , -6.338253001141147e+29 ], [ -2 , 1024 , null ], [ -2 , 10000 , null ], [ -2 , 999999 , null ], [ -2 , 1.23e+42 , null ], [ -2 , 4.536e+121 , null ], [ -2 , 1.321e-45 , null ], [ -1.5 , -4.536e+121 , 0 ], [ -1.5 , -1.23e+42 , 0 ], [ -1.5 , -999999 , 0 ], [ -1.5 , -10000 , 0 ], [ -1.5 , -1024 , 4.8144948555349255e-181 ], [ -1.5 , -99 , -3.689481639869744e-18 ], [ -1.5 , -42 , 4.019454526140723e-8 ], [ -1.5 , -42.53 , null ], [ -1.5 , -12.42 , null ], [ -1.5 , -9.31 , null ], [ -1.5 , -3.5 , null ], [ -1.5 , -3 , -0.2962962962962963 ], [ -1.5 , -2 , 0.4444444444444444 ], [ -1.5 , -1.5 , null ], [ -1.5 , -1 , -0.6666666666666666 ], [ -1.5 , -0.9 , null ], [ -1.5 , -0.5 , null ], [ -1.5 , -0.1 , null ], [ -1.5 , -0.01 , null ], [ -1.5 , 0 , 1 ], [ -1.5 , 0.01 , null ], [ -1.5 , 0.1 , null ], [ -1.5 , 0.5 , null ], [ -1.5 , 0.9 , null ], [ -1.5 , 1 , -1.5 ], [ -1.5 , 1.5 , null ], [ -1.5 , 2 , 2.25 ], [ -1.5 , 3 , -3.375 ], [ -1.5 , 3.5 , null ], [ -1.5 , 9.31 , null ], [ -1.5 , 12.42 , null ], [ -1.5 , 42.53 , null ], [ -1.5 , 42 , 24878997.72211503 ], [ -1.5 , 99 , -271040785023476800 ], [ -1.5 , 1024 , 2.0770611040332967e+180 ], [ -1.5 , 10000 , null ], [ -1.5 , 999999 , null ], [ -1.5 , 1.23e+42 , null ], [ -1.5 , 4.536e+121 , null ], [ -1.5 , 1.321e-45 , null ], [ -1 , -4.536e+121 , 1 ], [ -1 , -1.23e+42 , 1 ], [ -1 , -999999 , -1 ], [ -1 , -10000 , 1 ], [ -1 , -1024 , 1 ], [ -1 , -99 , -1 ], [ -1 , -42 , 1 ], [ -1 , -42.53 , null ], [ -1 , -12.42 , null ], [ -1 , -9.31 , null ], [ -1 , -3.5 , null ], [ -1 , -3 , -1 ], [ -1 , -2 , 1 ], [ -1 , -1.5 , null ], [ -1 , -1 , -1 ], [ -1 , -0.9 , null ], [ -1 , -0.5 , null ], [ -1 , -0.1 , null ], [ -1 , -0.01 , null ], [ -1 , 0 , 1 ], [ -1 , 0.01 , null ], [ -1 , 0.1 , null ], [ -1 , 0.5 , null ], [ -1 , 0.9 , null ], [ -1 , 1 , -1 ], [ -1 , 1.5 , null ], [ -1 , 2 , 1 ], [ -1 , 3 , -1 ], [ -1 , 3.5 , null ], [ -1 , 9.31 , null ], [ -1 , 12.42 , null ], [ -1 , 42.53 , null ], [ -1 , 42 , 1 ], [ -1 , 99 , -1 ], [ -1 , 1024 , 1 ], [ -1 , 10000 , 1 ], [ -1 , 999999 , -1 ], [ -1 , 1.23e+42 , 1 ], [ -1 , 4.536e+121 , 1 ], [ -1 , 1.321e-45 , null ], [ -0.9 , -4.536e+121 , null ], [ -0.9 , -1.23e+42 , null ], [ -0.9 , -999999 , null ], [ -0.9 , -10000 , null ], [ -0.9 , -1024 , 7.172496320613156e+46 ], [ -0.9 , -99 , -33883.757546391076 ], [ -0.9 , -42 , 83.52463828623905 ], [ -0.9 , -42.53 , null ], [ -0.9 , -12.42 , null ], [ -0.9 , -9.31 , null ], [ -0.9 , -3.5 , null ], [ -0.9 , -3 , -1.371742112482853 ], [ -0.9 , -2 , 1.2345679012345678 ], [ -0.9 , -1.5 , null ], [ -0.9 , -1 , -1.1111111111111112 ], [ -0.9 , -0.9 , null ], [ -0.9 , -0.5 , null ], [ -0.9 , -0.1 , null ], [ -0.9 , -0.01 , null ], [ -0.9 , 0 , 1 ], [ -0.9 , 0.01 , null ], [ -0.9 , 0.1 , null ], [ -0.9 , 0.5 , null ], [ -0.9 , 0.9 , null ], [ -0.9 , 1 , -0.9 ], [ -0.9 , 1.5 , null ], [ -0.9 , 2 , 0.81 ], [ -0.9 , 3 , -0.7290000000000001 ], [ -0.9 , 3.5 , null ], [ -0.9 , 9.31 , null ], [ -0.9 , 12.42 , null ], [ -0.9 , 42.53 , null ], [ -0.9 , 42 , 0.011972515182562043 ], [ -0.9 , 99 , -0.000029512665430652893 ], [ -0.9 , 1024 , 1.3942147270624363e-47 ], [ -0.9 , 10000 , 0 ], [ -0.9 , 999999 , 0 ], [ -0.9 , 1.23e+42 , 0 ], [ -0.9 , 4.536e+121 , 0 ], [ -0.9 , 1.321e-45 , null ], [ -0.5 , -4.536e+121 , null ], [ -0.5 , -1.23e+42 , null ], [ -0.5 , -999999 , null ], [ -0.5 , -10000 , null ], [ -0.5 , -1024 , null ], [ -0.5 , -99 , -6.338253001141147e+29 ], [ -0.5 , -42 , 4398046511104 ], [ -0.5 , -42.53 , null ], [ -0.5 , -12.42 , null ], [ -0.5 , -9.31 , null ], [ -0.5 , -3.5 , null ], [ -0.5 , -3 , -8 ], [ -0.5 , -2 , 4 ], [ -0.5 , -1.5 , null ], [ -0.5 , -1 , -2 ], [ -0.5 , -0.9 , null ], [ -0.5 , -0.5 , null ], [ -0.5 , -0.1 , null ], [ -0.5 , -0.01 , null ], [ -0.5 , 0 , 1 ], [ -0.5 , 0.01 , null ], [ -0.5 , 0.1 , null ], [ -0.5 , 0.5 , null ], [ -0.5 , 0.9 , null ], [ -0.5 , 1 , -0.5 ], [ -0.5 , 1.5 , null ], [ -0.5 , 2 , 0.25 ], [ -0.5 , 3 , -0.125 ], [ -0.5 , 3.5 , null ], [ -0.5 , 9.31 , null ], [ -0.5 , 12.42 , null ], [ -0.5 , 42.53 , null ], [ -0.5 , 42 , 2.2737367544323206e-13 ], [ -0.5 , 99 , -1.5777218104420236e-30 ], [ -0.5 , 1024 , 5.562684646268003e-309 ], [ -0.5 , 10000 , 0 ], [ -0.5 , 999999 , 0 ], [ -0.5 , 1.23e+42 , 0 ], [ -0.5 , 4.536e+121 , 0 ], [ -0.5 , 1.321e-45 , null ], [ -0.1 , -4.536e+121 , null ], [ -0.1 , -1.23e+42 , null ], [ -0.1 , -999999 , null ], [ -0.1 , -10000 , null ], [ -0.1 , -1024 , null ], [ -0.1 , -99 , -9.999999999999894e+98 ], [ -0.1 , -42 , 9.999999999999956e+41 ], [ -0.1 , -42.53 , null ], [ -0.1 , -12.42 , null ], [ -0.1 , -9.31 , null ], [ -0.1 , -3.5 , null ], [ -0.1 , -3 , -999.9999999999998 ], [ -0.1 , -2 , 99.99999999999999 ], [ -0.1 , -1.5 , null ], [ -0.1 , -1 , -10 ], [ -0.1 , -0.9 , null ], [ -0.1 , -0.5 , null ], [ -0.1 , -0.1 , null ], [ -0.1 , -0.01 , null ], [ -0.1 , 0 , 1 ], [ -0.1 , 0.01 , null ], [ -0.1 , 0.1 , null ], [ -0.1 , 0.5 , null ], [ -0.1 , 0.9 , null ], [ -0.1 , 1 , -0.1 ], [ -0.1 , 1.5 , null ], [ -0.1 , 2 , 0.010000000000000002 ], [ -0.1 , 3 , -0.0010000000000000002 ], [ -0.1 , 3.5 , null ], [ -0.1 , 9.31 , null ], [ -0.1 , 12.42 , null ], [ -0.1 , 42.53 , null ], [ -0.1 , 42 , 1.0000000000000045e-42 ], [ -0.1 , 99 , -1.0000000000000106e-99 ], [ -0.1 , 1024 , 0 ], [ -0.1 , 10000 , 0 ], [ -0.1 , 999999 , 0 ], [ -0.1 , 1.23e+42 , 0 ], [ -0.1 , 4.536e+121 , 0 ], [ -0.1 , 1.321e-45 , null ], [ -0.01 , -4.536e+121 , null ], [ -0.01 , -1.23e+42 , null ], [ -0.01 , -999999 , null ], [ -0.01 , -10000 , null ], [ -0.01 , -1024 , null ], [ -0.01 , -99 , -9.99999999999999e+197 ], [ -0.01 , -42 , 9.999999999999996e+83 ], [ -0.01 , -42.53 , null ], [ -0.01 , -12.42 , null ], [ -0.01 , -9.31 , null ], [ -0.01 , -3.5 , null ], [ -0.01 , -3 , -999999.9999999999 ], [ -0.01 , -2 , 10000 ], [ -0.01 , -1.5 , null ], [ -0.01 , -1 , -100 ], [ -0.01 , -0.9 , null ], [ -0.01 , -0.5 , null ], [ -0.01 , -0.1 , null ], [ -0.01 , -0.01 , null ], [ -0.01 , 0 , 1 ], [ -0.01 , 0.01 , null ], [ -0.01 , 0.1 , null ], [ -0.01 , 0.5 , null ], [ -0.01 , 0.9 , null ], [ -0.01 , 1 , -0.01 ], [ -0.01 , 1.5 , null ], [ -0.01 , 2 , 0.0001 ], [ -0.01 , 3 , -0.0000010000000000000002 ], [ -0.01 , 3.5 , null ], [ -0.01 , 9.31 , null ], [ -0.01 , 12.42 , null ], [ -0.01 , 42.53 , null ], [ -0.01 , 42 , 1.0000000000000004e-84 ], [ -0.01 , 99 , -1.000000000000001e-198 ], [ -0.01 , 1024 , 0 ], [ -0.01 , 10000 , 0 ], [ -0.01 , 999999 , 0 ], [ -0.01 , 1.23e+42 , 0 ], [ -0.01 , 4.536e+121 , 0 ], [ -0.01 , 1.321e-45 , null ], [ 0 , -4.536e+121 , null ], [ 0 , -1.23e+42 , null ], [ 0 , -999999 , null ], [ 0 , -10000 , null ], [ 0 , -1024 , null ], [ 0 , -99 , null ], [ 0 , -42 , null ], [ 0 , -42.53 , null ], [ 0 , -12.42 , null ], [ 0 , -9.31 , null ], [ 0 , -3.5 , null ], [ 0 , -3 , null ], [ 0 , -2 , null ], [ 0 , -1.5 , null ], [ 0 , -1 , null ], [ 0 , -0.9 , null ], [ 0 , -0.5 , null ], [ 0 , -0.1 , null ], [ 0 , -0.01 , null ], [ 0 , 0 , 1 ], [ 0 , 0.01 , 0 ], [ 0 , 0.1 , 0 ], [ 0 , 0.5 , 0 ], [ 0 , 0.9 , 0 ], [ 0 , 1 , 0 ], [ 0 , 1.5 , 0 ], [ 0 , 2 , 0 ], [ 0 , 3 , 0 ], [ 0 , 3.5 , 0 ], [ 0 , 9.31 , 0 ], [ 0 , 12.42 , 0 ], [ 0 , 42.53 , 0 ], [ 0 , 42 , 0 ], [ 0 , 99 , 0 ], [ 0 , 1024 , 0 ], [ 0 , 10000 , 0 ], [ 0 , 999999 , 0 ], [ 0 , 1.23e+42 , 0 ], [ 0 , 4.536e+121 , 0 ], [ 0 , 1.321e-45 , 0 ], [ 0.01 , -4.536e+121 , null ], [ 0.01 , -1.23e+42 , null ], [ 0.01 , -999999 , null ], [ 0.01 , -10000 , null ], [ 0.01 , -1024 , null ], [ 0.01 , -99 , 9.99999999999999e+197 ], [ 0.01 , -42 , 9.999999999999996e+83 ], [ 0.01 , -42.53 , 1.1481536214968878e+85 ], [ 0.01 , -12.42 , 6.918309709189361e+24 ], [ 0.01 , -9.31 , 4168693834703362600 ], [ 0.01 , -3.5 , 10000000 ], [ 0.01 , -3 , 999999.9999999999 ], [ 0.01 , -2 , 10000 ], [ 0.01 , -1.5 , 1000 ], [ 0.01 , -1 , 100 ], [ 0.01 , -0.9 , 63.09573444801933 ], [ 0.01 , -0.5 , 10 ], [ 0.01 , -0.1 , 1.5848931924611136 ], [ 0.01 , -0.01 , 1.0471285480508996 ], [ 0.01 , 0 , 1 ], [ 0.01 , 0.01 , 0.954992586021436 ], [ 0.01 , 0.1 , 0.6309573444801932 ], [ 0.01 , 0.5 , 0.1 ], [ 0.01 , 0.9 , 0.015848931924611134 ], [ 0.01 , 1 , 0.01 ], [ 0.01 , 1.5 , 0.001 ], [ 0.01 , 2 , 0.0001 ], [ 0.01 , 3 , 0.0000010000000000000002 ], [ 0.01 , 3.5 , 1.0000000000000001e-7 ], [ 0.01 , 9.31 , 2.3988329190194855e-19 ], [ 0.01 , 12.42 , 1.4454397707459285e-25 ], [ 0.01 , 42.53 , 8.709635899560769e-86 ], [ 0.01 , 42 , 1.0000000000000004e-84 ], [ 0.01 , 99 , 1.000000000000001e-198 ], [ 0.01 , 1024 , 0 ], [ 0.01 , 10000 , 0 ], [ 0.01 , 999999 , 0 ], [ 0.01 , 1.23e+42 , 0 ], [ 0.01 , 4.536e+121 , 0 ], [ 0.01 , 1.321e-45 , 1 ], [ 0.1 , -4.536e+121 , null ], [ 0.1 , -1.23e+42 , null ], [ 0.1 , -999999 , null ], [ 0.1 , -10000 , null ], [ 0.1 , -1024 , null ], [ 0.1 , -99 , 9.999999999999894e+98 ], [ 0.1 , -42 , 9.999999999999956e+41 ], [ 0.1 , -42.53 , 3.388441561392026e+42 ], [ 0.1 , -12.42 , 2630267991895.38 ], [ 0.1 , -9.31 , 2041737944.6695306 ], [ 0.1 , -3.5 , 3162.2776601683786 ], [ 0.1 , -3 , 999.9999999999998 ], [ 0.1 , -2 , 99.99999999999999 ], [ 0.1 , -1.5 , 31.62277660168379 ], [ 0.1 , -1 , 10 ], [ 0.1 , -0.9 , 7.943282347242815 ], [ 0.1 , -0.5 , 3.162277660168379 ], [ 0.1 , -0.1 , 1.2589254117941673 ], [ 0.1 , -0.01 , 1.023292992280754 ], [ 0.1 , 0 , 1 ], [ 0.1 , 0.01 , 0.9772372209558107 ], [ 0.1 , 0.1 , 0.7943282347242815 ], [ 0.1 , 0.5 , 0.31622776601683794 ], [ 0.1 , 0.9 , 0.12589254117941673 ], [ 0.1 , 1 , 0.1 ], [ 0.1 , 1.5 , 0.0316227766016838 ], [ 0.1 , 2 , 0.010000000000000002 ], [ 0.1 , 3 , 0.0010000000000000002 ], [ 0.1 , 3.5 , 0.000316227766016838 ], [ 0.1 , 9.31 , 4.897788193684459e-10 ], [ 0.1 , 12.42 , 3.801893963205615e-13 ], [ 0.1 , 42.53 , 2.951209226666385e-43 ], [ 0.1 , 42 , 1.0000000000000045e-42 ], [ 0.1 , 99 , 1.0000000000000106e-99 ], [ 0.1 , 1024 , 0 ], [ 0.1 , 10000 , 0 ], [ 0.1 , 999999 , 0 ], [ 0.1 , 1.23e+42 , 0 ], [ 0.1 , 4.536e+121 , 0 ], [ 0.1 , 1.321e-45 , 1 ], [ 0.5 , -4.536e+121 , null ], [ 0.5 , -1.23e+42 , null ], [ 0.5 , -999999 , null ], [ 0.5 , -10000 , null ], [ 0.5 , -1024 , null ], [ 0.5 , -99 , 6.338253001141147e+29 ], [ 0.5 , -42 , 4398046511104 ], [ 0.5 , -42.53 , 6350467760648.925 ], [ 0.5 , -12.42 , 5480.151264403915 ], [ 0.5 , -9.31 , 634.7303423687613 ], [ 0.5 , -3.5 , 11.313708498984761 ], [ 0.5 , -3 , 8 ], [ 0.5 , -2 , 4 ], [ 0.5 , -1.5 , 2.8284271247461903 ], [ 0.5 , -1 , 2 ], [ 0.5 , -0.9 , 1.8660659830736148 ], [ 0.5 , -0.5 , 1.414213562373095 ], [ 0.5 , -0.1 , 1.0717734625362931 ], [ 0.5 , -0.01 , 1.0069555500567189 ], [ 0.5 , 0 , 1 ], [ 0.5 , 0.01 , 0.9930924954370359 ], [ 0.5 , 0.1 , 0.9330329915368074 ], [ 0.5 , 0.5 , 0.7071067811865476 ], [ 0.5 , 0.9 , 0.5358867312681466 ], [ 0.5 , 1 , 0.5 ], [ 0.5 , 1.5 , 0.3535533905932738 ], [ 0.5 , 2 , 0.25 ], [ 0.5 , 3 , 0.125 ], [ 0.5 , 3.5 , 0.08838834764831845 ], [ 0.5 , 9.31 , 0.0015754721859807148 ], [ 0.5 , 12.42 , 0.00018247671492125714 ], [ 0.5 , 42.53 , 1.5746871532780048e-13 ], [ 0.5 , 42 , 2.2737367544323206e-13 ], [ 0.5 , 99 , 1.5777218104420236e-30 ], [ 0.5 , 1024 , 5.562684646268003e-309 ], [ 0.5 , 10000 , 0 ], [ 0.5 , 999999 , 0 ], [ 0.5 , 1.23e+42 , 0 ], [ 0.5 , 4.536e+121 , 0 ], [ 0.5 , 1.321e-45 , 1 ], [ 0.9 , -4.536e+121 , null ], [ 0.9 , -1.23e+42 , null ], [ 0.9 , -999999 , null ], [ 0.9 , -10000 , null ], [ 0.9 , -1024 , 7.172496320613156e+46 ], [ 0.9 , -99 , 33883.757546391076 ], [ 0.9 , -42 , 83.52463828623905 ], [ 0.9 , -42.53 , 88.3214262380771 ], [ 0.9 , -12.42 , 3.7009058146944076 ], [ 0.9 , -9.31 , 2.6668724019696044 ], [ 0.9 , -3.5 , 1.4459431459389023 ], [ 0.9 , -3 , 1.371742112482853 ], [ 0.9 , -2 , 1.2345679012345678 ], [ 0.9 , -1.5 , 1.1712139482105108 ], [ 0.9 , -1 , 1.1111111111111112 ], [ 0.9 , -0.9 , 1.0994658424513493 ], [ 0.9 , -0.5 , 1.0540925533894598 ], [ 0.9 , -0.1 , 1.0105917512032914 ], [ 0.9 , -0.01 , 1.0010541603934742 ], [ 0.9 , 0 , 1 ], [ 0.9 , 0.01 , 0.9989469496904544 ], [ 0.9 , 0.1 , 0.9895192582062144 ], [ 0.9 , 0.5 , 0.9486832980505138 ], [ 0.9 , 0.9 , 0.9095325760829622 ], [ 0.9 , 1 , 0.9 ], [ 0.9 , 1.5 , 0.8538149682454624 ], [ 0.9 , 2 , 0.81 ], [ 0.9 , 3 , 0.7290000000000001 ], [ 0.9 , 3.5 , 0.6915901242788246 ], [ 0.9 , 9.31 , 0.3749710707049409 ], [ 0.9 , 12.42 , 0.2702041203073881 ], [ 0.9 , 42.53 , 0.011322280929934536 ], [ 0.9 , 42 , 0.011972515182562043 ], [ 0.9 , 99 , 0.000029512665430652893 ], [ 0.9 , 1024 , 1.3942147270624363e-47 ], [ 0.9 , 10000 , 0 ], [ 0.9 , 999999 , 0 ], [ 0.9 , 1.23e+42 , 0 ], [ 0.9 , 4.536e+121 , 0 ], [ 0.9 , 1.321e-45 , 1 ], [ 1 , -4.536e+121 , 1 ], [ 1 , -1.23e+42 , 1 ], [ 1 , -999999 , 1 ], [ 1 , -10000 , 1 ], [ 1 , -1024 , 1 ], [ 1 , -99 , 1 ], [ 1 , -42 , 1 ], [ 1 , -42.53 , 1 ], [ 1 , -12.42 , 1 ], [ 1 , -9.31 , 1 ], [ 1 , -3.5 , 1 ], [ 1 , -3 , 1 ], [ 1 , -2 , 1 ], [ 1 , -1.5 , 1 ], [ 1 , -1 , 1 ], [ 1 , -0.9 , 1 ], [ 1 , -0.5 , 1 ], [ 1 , -0.1 , 1 ], [ 1 , -0.01 , 1 ], [ 1 , 0 , 1 ], [ 1 , 0.01 , 1 ], [ 1 , 0.1 , 1 ], [ 1 , 0.5 , 1 ], [ 1 , 0.9 , 1 ], [ 1 , 1 , 1 ], [ 1 , 1.5 , 1 ], [ 1 , 2 , 1 ], [ 1 , 3 , 1 ], [ 1 , 3.5 , 1 ], [ 1 , 9.31 , 1 ], [ 1 , 12.42 , 1 ], [ 1 , 42.53 , 1 ], [ 1 , 42 , 1 ], [ 1 , 99 , 1 ], [ 1 , 1024 , 1 ], [ 1 , 10000 , 1 ], [ 1 , 999999 , 1 ], [ 1 , 1.23e+42 , 1 ], [ 1 , 4.536e+121 , 1 ], [ 1 , 1.321e-45 , 1 ], [ 1.5 , -4.536e+121 , 0 ], [ 1.5 , -1.23e+42 , 0 ], [ 1.5 , -999999 , 0 ], [ 1.5 , -10000 , 0 ], [ 1.5 , -1024 , 4.8144948555349255e-181 ], [ 1.5 , -99 , 3.689481639869744e-18 ], [ 1.5 , -42 , 4.019454526140723e-8 ], [ 1.5 , -42.53 , 3.242192168108336e-8 ], [ 1.5 , -12.42 , 0.006500497004951538 ], [ 1.5 , -9.31 , 0.022939839668172403 ], [ 1.5 , -3.5 , 0.2419249128674744 ], [ 1.5 , -3 , 0.2962962962962963 ], [ 1.5 , -2 , 0.4444444444444444 ], [ 1.5 , -1.5 , 0.5443310539518174 ], [ 1.5 , -1 , 0.6666666666666666 ], [ 1.5 , -0.9 , 0.6942531626616071 ], [ 1.5 , -0.5 , 0.8164965809277261 ], [ 1.5 , -0.1 , 0.960264500792218 ], [ 1.5 , -0.01 , 0.9959535579179896 ], [ 1.5 , 0 , 1 ], [ 1.5 , 0.01 , 1.0040628822999231 ], [ 1.5 , 0.1 , 1.0413797439924106 ], [ 1.5 , 0.5 , 1.224744871391589 ], [ 1.5 , 0.9 , 1.440396751188327 ], [ 1.5 , 1 , 1.5 ], [ 1.5 , 1.5 , 1.8371173070873836 ], [ 1.5 , 2 , 2.25 ], [ 1.5 , 3 , 3.375 ], [ 1.5 , 3.5 , 4.133513940946613 ], [ 1.5 , 9.31 , 43.592283750240746 ], [ 1.5 , 12.42 , 153.8343913147384 ], [ 1.5 , 42.53 , 30843329.085686248 ], [ 1.5 , 42 , 24878997.72211503 ], [ 1.5 , 99 , 271040785023476800 ], [ 1.5 , 1024 , 2.0770611040332967e+180 ], [ 1.5 , 10000 , null ], [ 1.5 , 999999 , null ], [ 1.5 , 1.23e+42 , null ], [ 1.5 , 4.536e+121 , null ], [ 1.5 , 1.321e-45 , 1 ], [ 2 , -4.536e+121 , 0 ], [ 2 , -1.23e+42 , 0 ], [ 2 , -999999 , 0 ], [ 2 , -10000 , 0 ], [ 2 , -1024 , 5.562684646268003e-309 ], [ 2 , -99 , 1.5777218104420236e-30 ], [ 2 , -42 , 2.2737367544323206e-13 ], [ 2 , -42.53 , 1.5746871532780048e-13 ], [ 2 , -12.42 , 0.00018247671492125714 ], [ 2 , -9.31 , 0.0015754721859807148 ], [ 2 , -3.5 , 0.08838834764831845 ], [ 2 , -3 , 0.125 ], [ 2 , -2 , 0.25 ], [ 2 , -1.5 , 0.3535533905932738 ], [ 2 , -1 , 0.5 ], [ 2 , -0.9 , 0.5358867312681466 ], [ 2 , -0.5 , 0.7071067811865475 ], [ 2 , -0.1 , 0.9330329915368074 ], [ 2 , -0.01 , 0.9930924954370359 ], [ 2 , 0 , 1 ], [ 2 , 0.01 , 1.0069555500567189 ], [ 2 , 0.1 , 1.0717734625362931 ], [ 2 , 0.5 , 1.4142135623730951 ], [ 2 , 0.9 , 1.8660659830736148 ], [ 2 , 1 , 2 ], [ 2 , 1.5 , 2.8284271247461903 ], [ 2 , 2 , 4 ], [ 2 , 3 , 8 ], [ 2 , 3.5 , 11.313708498984761 ], [ 2 , 9.31 , 634.7303423687613 ], [ 2 , 12.42 , 5480.151264403915 ], [ 2 , 42.53 , 6350467760648.925 ], [ 2 , 42 , 4398046511104 ], [ 2 , 99 , 6.338253001141147e+29 ], [ 2 , 1024 , null ], [ 2 , 10000 , null ], [ 2 , 999999 , null ], [ 2 , 1.23e+42 , null ], [ 2 , 4.536e+121 , null ], [ 2 , 1.321e-45 , 1 ], [ 3 , -4.536e+121 , 0 ], [ 3 , -1.23e+42 , 0 ], [ 3 , -999999 , 0 ], [ 3 , -10000 , 0 ], [ 3 , -1024 , 0 ], [ 3 , -99 , 5.820975652447899e-48 ], [ 3 , -42 , 9.139181488855509e-21 ], [ 3 , -42.53 , 5.105438355578758e-21 ], [ 3 , -12.42 , 0.0000011861893388190278 ], [ 3 , -9.31 , 0.0000361410793480627 ], [ 3 , -3.5 , 0.021383343303319473 ], [ 3 , -3 , 0.037037037037037035 ], [ 3 , -2 , 0.1111111111111111 ], [ 3 , -1.5 , 0.19245008972987526 ], [ 3 , -1 , 0.3333333333333333 ], [ 3 , -0.9 , 0.3720410580113015 ], [ 3 , -0.5 , 0.5773502691896258 ], [ 3 , -0.1 , 0.8959584598407622 ], [ 3 , -0.01 , 0.9890740041721707 ], [ 3 , 0 , 1 ], [ 3 , 0.01 , 1.0110466919378536 ], [ 3 , 0.1 , 1.1161231740339044 ], [ 3 , 0.5 , 1.7320508075688772 ], [ 3 , 0.9 , 2.6878753795222865 ], [ 3 , 1 , 3 ], [ 3 , 1.5 , 5.196152422706632 ], [ 3 , 2 , 9 ], [ 3 , 3 , 27 ], [ 3 , 3.5 , 46.76537180435969 ], [ 3 , 9.31 , 27669.3451894265 ], [ 3 , 12.42 , 843035.7340722702 ], [ 3 , 42.53 , 195869566989735800000 ], [ 3 , 42 , 109418989131512370000 ], [ 3 , 99 , 1.7179250691067043e+47 ], [ 3 , 1024 , null ], [ 3 , 10000 , null ], [ 3 , 999999 , null ], [ 3 , 1.23e+42 , null ], [ 3 , 4.536e+121 , null ], [ 3 , 1.321e-45 , 1 ], [ 3.5 , -4.536e+121 , 0 ], [ 3.5 , -1.23e+42 , 0 ], [ 3.5 , -999999 , 0 ], [ 3.5 , -10000 , 0 ], [ 3.5 , -1024 , 0 ], [ 3.5 , -99 , 1.3717141205373995e-54 ], [ 3.5 , -42 , 1.4097501104573573e-23 ], [ 3.5 , -42.53 , 7.257483778289607e-24 ], [ 3.5 , -12.42 , 1.7485372517077033e-7 ], [ 3.5 , -9.31 , 0.000008604517200839208 ], [ 3.5 , -3.5 , 0.012466996707285103 ], [ 3.5 , -3 , 0.023323615160349854 ], [ 3.5 , -2 , 0.08163265306122448 ], [ 3.5 , -1.5 , 0.1527207096642425 ], [ 3.5 , -1 , 0.2857142857142857 ], [ 3.5 , -0.9 , 0.32384616619162787 ], [ 3.5 , -0.5 , 0.5345224838248488 ], [ 3.5 , -0.1 , 0.8822531051524675 ], [ 3.5 , -0.01 , 0.9875505144073412 ], [ 3.5 , 0 , 1 ], [ 3.5 , 0.01 , 1.0126064291507457 ], [ 3.5 , 0.1 , 1.1334615816706974 ], [ 3.5 , 0.5 , 1.8708286933869707 ], [ 3.5 , 0.9 , 3.087885868033636 ], [ 3.5 , 1 , 3.5 ], [ 3.5 , 1.5 , 6.547900426854397 ], [ 3.5 , 2 , 12.25 ], [ 3.5 , 3 , 42.875 ], [ 3.5 , 3.5 , 80.21178022896636 ], [ 3.5 , 9.31 , 116218.02556248815 ], [ 3.5 , 12.42 , 5719066.030897273 ], [ 3.5 , 42.53 , 1.3778880264141258e+23 ], [ 3.5 , 42 , 7.093455730786045e+22 ], [ 3.5 , 99 , 7.29014876371053e+53 ], [ 3.5 , 1024 , null ], [ 3.5 , 10000 , null ], [ 3.5 , 999999 , null ], [ 3.5 , 1.23e+42 , null ], [ 3.5 , 4.536e+121 , null ], [ 3.5 , 1.321e-45 , 1 ], [ 9.31 , -4.536e+121 , 0 ], [ 9.31 , -1.23e+42 , 0 ], [ 9.31 , -999999 , 0 ], [ 9.31 , -10000 , 0 ], [ 9.31 , -1024 , 0 ], [ 9.31 , -99 , 1.185718464264813e-96 ], [ 9.31 , -42 , 2.014250122755899e-41 ], [ 9.31 , -42.53 , 6.174048942416913e-42 ], [ 9.31 , -12.42 , 9.239425377277916e-13 ], [ 9.31 , -9.31 , 9.529683345984896e-10 ], [ 9.31 , -3.5 , 0.0004061403292595729 ], [ 9.31 , -3 , 0.0012392272564971695 ], [ 9.31 , -2 , 0.01153720575798865 ], [ 9.31 , -1.5 , 0.035202659792935666 ], [ 9.31 , -1 , 0.10741138560687433 ], [ 9.31 , -0.9 , 0.13425958088274992 ], [ 9.31 , -0.5 , 0.3277367626722311 ], [ 9.31 , -0.1 , 0.8000277142282877 ], [ 9.31 , -0.01 , 0.9779361563216156 ], [ 9.31 , 0 , 1 ], [ 9.31 , 0.01 , 1.0225616401804538 ], [ 9.31 , 0.1 , 1.2499566980184018 ], [ 9.31 , 0.5 , 3.0512292604784714 ], [ 9.31 , 0.9 , 7.448258019465359 ], [ 9.31 , 1 , 9.31 ], [ 9.31 , 1.5 , 28.40694441505457 ], [ 9.31 , 2 , 86.6761 ], [ 9.31 , 3 , 806.9544910000001 ], [ 9.31 , 3.5 , 2462.203154813712 ], [ 9.31 , 9.31 , 1049352810.260297 ], [ 9.31 , 12.42 , 1082318390123.3218 ], [ 9.31 , 42.53 , 1.6196826577285553e+41 ], [ 9.31 , 42 , 4.964626729831343e+40 ], [ 9.31 , 99 , 8.433705218717624e+95 ], [ 9.31 , 1024 , null ], [ 9.31 , 10000 , null ], [ 9.31 , 999999 , null ], [ 9.31 , 1.23e+42 , null ], [ 9.31 , 4.536e+121 , null ], [ 9.31 , 1.321e-45 , 1 ], [ 12.42 , -4.536e+121 , 0 ], [ 12.42 , -1.23e+42 , 0 ], [ 12.42 , -999999 , 0 ], [ 12.42 , -10000 , 0 ], [ 12.42 , -1024 , 0 ], [ 12.42 , -99 , 4.807972907429728e-109 ], [ 12.42 , -42 , 1.1140199663976283e-46 ], [ 12.42 , -42.53 , 2.930950804221487e-47 ], [ 12.42 , -12.42 , 2.5763791725433842e-14 ], [ 12.42 , -9.31 , 6.512203190396084e-11 ], [ 12.42 , -3.5 , 0.00014810660080442122 ], [ 12.42 , -3 , 0.000521957584298624 ], [ 12.42 , -2 , 0.00648271319698891 ], [ 12.42 , -1.5 , 0.022846391056327124 ], [ 12.42 , -1 , 0.08051529790660225 ], [ 12.42 , -0.9 , 0.10358349579403998 ], [ 12.42 , -0.5 , 0.2837521769195829 ], [ 12.42 , -0.1 , 0.7772985193190879 ], [ 12.42 , -0.01 , 0.9751216166230495 ], [ 12.42 , 0 , 1 ], [ 12.42 , 0.01 , 1.0255131082655176 ], [ 12.42 , 0.1 , 1.2865070177619768 ], [ 12.42 , 0.5 , 3.5242020373412193 ], [ 12.42 , 0.9 , 9.654047609943072 ], [ 12.42 , 1 , 12.42 ], [ 12.42 , 1.5 , 43.77058930377794 ], [ 12.42 , 2 , 154.25639999999999 ], [ 12.42 , 3 , 1915.8644879999997 ], [ 12.42 , 3.5 , 6751.893531879292 ], [ 12.42 , 9.31 , 15355786218.015383 ], [ 12.42 , 12.42 , 38814162552509.95 ], [ 12.42 , 42.53 , 3.411862111638608e+46 ], [ 12.42 , 42 , 8.976499795005191e+45 ], [ 12.42 , 99 , 2.0798786084145918e+108 ], [ 12.42 , 1024 , null ], [ 12.42 , 10000 , null ], [ 12.42 , 999999 , null ], [ 12.42 , 1.23e+42 , null ], [ 12.42 , 4.536e+121 , null ], [ 12.42 , 1.321e-45 , 1 ], [ 42.53 , -4.536e+121 , 0 ], [ 42.53 , -1.23e+42 , 0 ], [ 42.53 , -999999 , 0 ], [ 42.53 , -10000 , 0 ], [ 42.53 , -1024 , 0 ], [ 42.53 , -99 , 5.743241933935965e-162 ], [ 42.53 , -42 , 3.933633791030979e-69 ], [ 42.53 , -42.53 , 5.389957902101816e-70 ], [ 42.53 , -12.42 , 5.910215910303245e-21 ], [ 42.53 , -9.31 , 6.868248293727032e-16 ], [ 42.53 , -3.5 , 0.000001993270138174389 ], [ 42.53 , -3 , 0.000012999116975170522 ], [ 42.53 , -2 , 0.0005528524449540023 ], [ 42.53 , -1.5 , 0.00360542881987296 ], [ 42.53 , -1 , 0.02351281448389372 ], [ 42.53 , -0.9 , 0.03421166065027591 ], [ 42.53 , -0.5 , 0.15333888770919699 ], [ 42.53 , -0.1 , 0.687274865849112 ], [ 42.53 , -0.01 , 0.9631923978150005 ], [ 42.53 , 0 , 1 ], [ 42.53 , 0.01 , 1.038214174310862 ], [ 42.53 , 0.1 , 1.4550219274562344 ], [ 42.53 , 0.5 , 6.521502894272148 ], [ 42.53 , 0.9 , 29.22980004456274 ], [ 42.53 , 1 , 42.53 ], [ 42.53 , 1.5 , 277.35951809339446 ], [ 42.53 , 2 , 1808.8009000000002 ], [ 42.53 , 3 , 76928.30227700001 ], [ 42.53 , 3.5 , 501688.1459508982 ], [ 42.53 , 9.31 , 1455975318937331.5 ], [ 42.53 , 12.42 , 169198556393973020000 ], [ 42.53 , 42.53 , 1.8553020601701723e+69 ], [ 42.53 , 42 , 2.542178690553466e+68 ], [ 42.53 , 99 , 1.7411768675304243e+161 ], [ 42.53 , 1024 , null ], [ 42.53 , 10000 , null ], [ 42.53 , 999999 , null ], [ 42.53 , 1.23e+42 , null ], [ 42.53 , 4.536e+121 , null ], [ 42.53 , 1.321e-45 , 1 ], [ 42 , -4.536e+121 , 0 ], [ 42 , -1.23e+42 , 0 ], [ 42 , -999999 , 0 ], [ 42 , -10000 , 0 ], [ 42 , -1024 , 0 ], [ 42 , -99 , 1.9875600123585817e-161 ], [ 42 , -42 , 6.660852295672145e-69 ], [ 42 , -42.53 , 9.187718476318233e-70 ], [ 42 , -12.42 , 6.906274137921159e-21 ], [ 42 , -9.31 , 7.718787882624365e-16 ], [ 42 , -3.5 , 0.0000020827036761971158 ], [ 42 , -3 , 0.000013497462477054314 ], [ 42 , -2 , 0.0005668934240362812 ], [ 42 , -1.5 , 0.003673889284811712 ], [ 42 , -1 , 0.023809523809523808 ], [ 42 , -0.9 , 0.03459996334005399 ], [ 42 , -0.5 , 0.1543033499620919 ], [ 42 , -0.1 , 0.6881372553930184 ], [ 42 , -0.01 , 0.9633131905916237 ], [ 42 , 0 , 1 ], [ 42 , 0.01 , 1.0380839894716327 ], [ 42 , 0.1 , 1.4531984602822678 ], [ 42 , 0.5 , 6.48074069840786 ], [ 42 , 0.9 , 28.901764726506773 ], [ 42 , 1 , 42 ], [ 42 , 1.5 , 272.19110933313016 ], [ 42 , 2 , 1764 ], [ 42 , 3 , 74088 ], [ 42 , 3.5 , 480145.11686364154 ], [ 42 , 9.31 , 1295540200361100 ], [ 42 , 12.42 , 144795874016812120000 ], [ 42 , 42.53 , 1.088409492060021e+69 ], [ 42 , 42 , 1.5013093754529656e+68 ], [ 42 , 99 , 5.031294621455621e+160 ], [ 42 , 1024 , null ], [ 42 , 10000 , null ], [ 42 , 999999 , null ], [ 42 , 1.23e+42 , null ], [ 42 , 4.536e+121 , null ], [ 42 , 1.321e-45 , 1 ], [ 99 , -4.536e+121 , 0 ], [ 99 , -1.23e+42 , 0 ], [ 99 , -999999 , 0 ], [ 99 , -10000 , 0 ], [ 99 , -1024 , 0 ], [ 99 , -99 , 2.7046790361647396e-198 ], [ 99 , -42 , 1.5251825470010567e-84 ], [ 99 , -42.53 , 1.3354731897084872e-85 ], [ 99 , -12.42 , 1.6376115137024526e-25 ], [ 99 , -9.31 , 2.6341247460666577e-19 ], [ 99 , -3.5 , 1.0358021756790557e-7 ], [ 99 , -3 , 0.0000010306101521283646 ], [ 99 , -2 , 0.00010203040506070809 ], [ 99 , -1.5 , 0.0010151897123830424 ], [ 99 , -1 , 0.010101010101010102 ], [ 99 , -0.9 , 0.015992940623735113 ], [ 99 , -0.5 , 0.10050378152592121 ], [ 99 , -0.1 , 0.6315917965717447 ], [ 99 , -0.01 , 0.955088570807023 ], [ 99 , 0 , 1 ], [ 99 , 0.01 , 1.047023313403309 ], [ 99 , 0.1 , 1.5833011217497763 ], [ 99 , 0.5 , 9.9498743710662 ], [ 99 , 0.9 , 62.527587860602736 ], [ 99 , 1 , 99 ], [ 99 , 1.5 , 985.0375627355537 ], [ 99 , 2 , 9801 ], [ 99 , 3 , 970299 ], [ 99 , 3.5 , 9654353.152371163 ], [ 99 , 9.31 , 3796327419546950000 ], [ 99 , 12.42 , 6.106454379641691e+24 ], [ 99 , 42.53 , 7.487982594531039e+84 ], [ 99 , 42 , 6.556592205741436e+83 ], [ 99 , 99 , 3.697296376497263e+197 ], [ 99 , 1024 , null ], [ 99 , 10000 , null ], [ 99 , 999999 , null ], [ 99 , 1.23e+42 , null ], [ 99 , 4.536e+121 , null ], [ 99 , 1.321e-45 , 1 ], [ 1024 , -4.536e+121 , 0 ], [ 1024 , -1.23e+42 , 0 ], [ 1024 , -999999 , 0 ], [ 1024 , -10000 , 0 ], [ 1024 , -1024 , 0 ], [ 1024 , -99 , 9.556619453472961e-299 ], [ 1024 , -42 , 3.6931914471142943e-127 ], [ 1024 , -42.53 , 9.37438625975286e-129 ], [ 1024 , -12.42 , 4.0933090770390186e-38 ], [ 1024 , -9.31 , 9.421225603901338e-29 ], [ 1024 , -3.5 , 2.9103830456733704e-11 ], [ 1024 , -3 , 9.313225746154785e-10 ], [ 1024 , -2 , 9.5367431640625e-7 ], [ 1024 , -1.5 , 0.000030517578125 ], [ 1024 , -1 , 0.0009765625 ], [ 1024 , -0.9 , 0.0019531249999999998 ], [ 1024 , -0.5 , 0.03125 ], [ 1024 , -0.1 , 0.5 ], [ 1024 , -0.01 , 0.9330329915368074 ], [ 1024 , 0 , 1 ], [ 1024 , 0.01 , 1.0717734625362931 ], [ 1024 , 0.1 , 2 ], [ 1024 , 0.5 , 32 ], [ 1024 , 0.9 , 512.0000000000001 ], [ 1024 , 1 , 1024 ], [ 1024 , 1.5 , 32768 ], [ 1024 , 2 , 1048576 ], [ 1024 , 3 , 1073741824 ], [ 1024 , 3.5 , 34359738368 ], [ 1024 , 9.31 , 1.0614330258537691e+28 ], [ 1024 , 12.42 , 2.4430112194786206e+37 ], [ 1024 , 42.53 , 1.0667365012398832e+128 ], [ 1024 , 42 , 2.7076852481648583e+126 ], [ 1024 , 99 , 1.0463951242053392e+298 ], [ 1024 , 1024 , null ], [ 1024 , 10000 , null ], [ 1024 , 999999 , null ], [ 1024 , 1.23e+42 , null ], [ 1024 , 4.536e+121 , null ], [ 1024 , 1.321e-45 , 1 ], [ 10000 , -4.536e+121 , 0 ], [ 10000 , -1.23e+42 , 0 ], [ 10000 , -999999 , 0 ], [ 10000 , -10000 , 0 ], [ 10000 , -1024 , 0 ], [ 10000 , -99 , 0 ], [ 10000 , -42 , 9.999999999999997e-169 ], [ 10000 , -42.53 , 7.585775750291758e-171 ], [ 10000 , -12.42 , 2.0892961308540409e-50 ], [ 10000 , -9.31 , 5.754399373371543e-38 ], [ 10000 , -3.5 , 1e-14 ], [ 10000 , -3 , 1e-12 ], [ 10000 , -2 , 1e-8 ], [ 10000 , -1.5 , 0.000001 ], [ 10000 , -1 , 0.0001 ], [ 10000 , -0.9 , 0.00025118864315095795 ], [ 10000 , -0.5 , 0.01 ], [ 10000 , -0.1 , 0.3981071705534972 ], [ 10000 , -0.01 , 0.9120108393559098 ], [ 10000 , 0 , 1 ], [ 10000 , 0.01 , 1.096478196143185 ], [ 10000 , 0.1 , 2.51188643150958 ], [ 10000 , 0.5 , 100 ], [ 10000 , 0.9 , 3981.0717055349733 ], [ 10000 , 1 , 10000 ], [ 10000 , 1.5 , 1000000 ], [ 10000 , 2 , 100000000 ], [ 10000 , 3 , 1000000000000 ], [ 10000 , 3.5 , 100000000000000 ], [ 10000 , 9.31 , 1.7378008287493835e+37 ], [ 10000 , 12.42 , 4.78630092322638e+49 ], [ 10000 , 42.53 , 1.318256738556421e+170 ], [ 10000 , 42 , 1.0000000000000004e+168 ], [ 10000 , 99 , null ], [ 10000 , 1024 , null ], [ 10000 , 10000 , null ], [ 10000 , 999999 , null ], [ 10000 , 1.23e+42 , null ], [ 10000 , 4.536e+121 , null ], [ 10000 , 1.321e-45 , 1 ], [ 999999 , -4.536e+121 , 0 ], [ 999999 , -1.23e+42 , 0 ], [ 999999 , -999999 , 0 ], [ 999999 , -10000 , 0 ], [ 999999 , -1024 , 0 ], [ 999999 , -99 , 0 ], [ 999999 , -42 , 1.0000420009030127e-252 ], [ 999999 , -42.53 , 6.607215479115195e-256 ], [ 999999 , -12.42 , 3.019989228454065e-75 ], [ 999999 , -9.31 , 1.3803971160466279e-56 ], [ 999999 , -3.5 , 1.000003500007875e-21 ], [ 999999 , -3 , 1.000003000006e-18 ], [ 999999 , -2 , 1.000002000003e-12 ], [ 999999 , -1.5 , 1.000001500001875e-9 ], [ 999999 , -1 , 0.000001000001000001 ], [ 999999 , -0.9 , 0.00000398107528850291 ], [ 999999 , -0.5 , 0.0010000005000003751 ], [ 999999 , -0.1 , 0.2511886682698361 ], [ 999999 , -0.01 , 0.8709635986657209 ], [ 999999 , 0 , 1 ], [ 999999 , 0.01 , 1.1481536100153409 ], [ 999999 , 0.1 , 3.981071307427623 ], [ 999999 , 0.5 , 999.999499999875 ], [ 999999 , 0.9 , 251188.41708116795 ], [ 999999 , 1 , 999999 ], [ 999999 , 1.5 , 999998500.000375 ], [ 999999 , 2 , 999998000001 ], [ 999999 , 3 , 999997000002999900 ], [ 999999 , 3.5 , 999996500004375000000 ], [ 999999 , 9.31 , 7.244292156042301e+55 ], [ 999999 , 12.42 , 3.311270088575451e+74 ], [ 999999 , 42.53 , 1.5134968780129974e+255 ], [ 999999 , 42 , 9.99958000860989e+251 ], [ 999999 , 99 , null ], [ 999999 , 1024 , null ], [ 999999 , 10000 , null ], [ 999999 , 999999 , null ], [ 999999 , 1.23e+42 , null ], [ 999999 , 4.536e+121 , null ], [ 999999 , 1.321e-45 , 1 ], [ 1.23e+42 , -4.536e+121 , 0 ], [ 1.23e+42 , -1.23e+42 , 0 ], [ 1.23e+42 , -999999 , 0 ], [ 1.23e+42 , -10000 , 0 ], [ 1.23e+42 , -1024 , 0 ], [ 1.23e+42 , -99 , 0 ], [ 1.23e+42 , -42 , 0 ], [ 1.23e+42 , -42.53 , 0 ], [ 1.23e+42 , -12.42 , 0 ], [ 1.23e+42 , -9.31 , 0 ], [ 1.23e+42 , -3.5 , 4.845427613405108e-148 ], [ 1.23e+42 , -3 , 5.373839183563361e-127 ], [ 1.23e+42 , -2 , 6.609822195782934e-85 ], [ 1.23e+42 , -1.5 , 7.330647436320588e-64 ], [ 1.23e+42 , -1 , 8.130081300813009e-43 ], [ 1.23e+42 , -0.9 , 1.3154834835469472e-38 ], [ 1.23e+42 , -0.5 , 9.016696346674322e-22 ], [ 1.23e+42 , -0.1 , 0.00006180299032635357 ], [ 1.23e+42 , -0.01 , 0.3794031644861138 ], [ 1.23e+42 , 0 , 1 ], [ 1.23e+42 , 0.01 , 2.635718659211658 ], [ 1.23e+42 , 0.1 , 16180.446847627492 ], [ 1.23e+42 , 0.5 , 1.1090536506409417e+21 ], [ 1.23e+42 , 0.9 , 7.601767810141509e+37 ], [ 1.23e+42 , 1 , 1.23e+42 ], [ 1.23e+42 , 1.5 , 1.3641359902883582e+63 ], [ 1.23e+42 , 2 , 1.5128999999999998e+84 ], [ 1.23e+42 , 3 , 1.8608669999999998e+126 ], [ 1.23e+42 , 3.5 , 2.063801339707257e+147 ], [ 1.23e+42 , 9.31 , null ], [ 1.23e+42 , 12.42 , null ], [ 1.23e+42 , 42.53 , null ], [ 1.23e+42 , 42 , null ], [ 1.23e+42 , 99 , null ], [ 1.23e+42 , 1024 , null ], [ 1.23e+42 , 10000 , null ], [ 1.23e+42 , 999999 , null ], [ 1.23e+42 , 1.23e+42 , null ], [ 1.23e+42 , 4.536e+121 , null ], [ 1.23e+42 , 1.321e-45 , 1 ], [ 4.536e+121 , -4.536e+121 , 0 ], [ 4.536e+121 , -1.23e+42 , 0 ], [ 4.536e+121 , -999999 , 0 ], [ 4.536e+121 , -10000 , 0 ], [ 4.536e+121 , -1024 , 0 ], [ 4.536e+121 , -99 , 0 ], [ 4.536e+121 , -42 , 0 ], [ 4.536e+121 , -42.53 , 0 ], [ 4.536e+121 , -12.42 , 0 ], [ 4.536e+121 , -9.31 , 0 ], [ 4.536e+121 , -3.5 , 0 ], [ 4.536e+121 , -3 , 0 ], [ 4.536e+121 , -2 , 4.860197394001039e-244 ], [ 4.536e+121 , -1.5 , 3.2733348264798203e-183 ], [ 4.536e+121 , -1 , 2.2045855379188713e-122 ], [ 4.536e+121 , -0.9 , 3.228451441872509e-110 ], [ 4.536e+121 , -0.5 , 1.4847846772912466e-61 ], [ 4.536e+121 , -0.1 , 6.828616064425581e-13 ], [ 4.536e+121 , -0.01 , 0.06073419360506709 ], [ 4.536e+121 , 0 , 1 ], [ 4.536e+121 , 0.01 , 16.46518938742556 ], [ 4.536e+121 , 0.1 , 1464425574033.3813 ], [ 4.536e+121 , 0.5 , 6.734983296193095e+60 ], [ 4.536e+121 , 0.9 , 3.0974602468234675e+109 ], [ 4.536e+121 , 1 , 4.536e+121 ], [ 4.536e+121 , 1.5 , 3.0549884231531876e+182 ], [ 4.536e+121 , 2 , 2.0575296e+243 ], [ 4.536e+121 , 3 , null ], [ 4.536e+121 , 3.5 , null ], [ 4.536e+121 , 9.31 , null ], [ 4.536e+121 , 12.42 , null ], [ 4.536e+121 , 42.53 , null ], [ 4.536e+121 , 42 , null ], [ 4.536e+121 , 99 , null ], [ 4.536e+121 , 1024 , null ], [ 4.536e+121 , 10000 , null ], [ 4.536e+121 , 999999 , null ], [ 4.536e+121 , 1.23e+42 , null ], [ 4.536e+121 , 4.536e+121 , null ], [ 4.536e+121 , 1.321e-45 , 1 ], [ 1.321e-45 , -4.536e+121 , null ], [ 1.321e-45 , -1.23e+42 , null ], [ 1.321e-45 , -999999 , null ], [ 1.321e-45 , -10000 , null ], [ 1.321e-45 , -1024 , null ], [ 1.321e-45 , -99 , null ], [ 1.321e-45 , -42 , null ], [ 1.321e-45 , -42.53 , null ], [ 1.321e-45 , -12.42 , null ], [ 1.321e-45 , -9.31 , null ], [ 1.321e-45 , -3.5 , 1.1935486842274423e+157 ], [ 1.321e-45 , -3 , 4.338019972062622e+134 ], [ 1.321e-45 , -2 , 5.730524383094723e+89 ], [ 1.321e-45 , -1.5 , 2.0827913894729404e+67 ], [ 1.321e-45 , -1 , 7.57002271006813e+44 ], [ 1.321e-45 , -0.9 , 2.461429856359432e+40 ], [ 1.321e-45 , -0.5 , 2.751367425493754e+22 ], [ 1.321e-45 , -0.1 , 30754.5741777284 ], [ 1.321e-45 , -0.01 , 2.8105477736558084 ], [ 1.321e-45 , 0 , 1 ], [ 1.321e-45 , 0.01 , 0.35580252695696185 ], [ 1.321e-45 , 0.1 , 0.00003251548840250801 ], [ 1.321e-45 , 0.5 , 3.63455636907725e-23 ], [ 1.321e-45 , 0.9 , 4.06267924887791e-41 ], [ 1.321e-45 , 1 , 1.321e-45 ], [ 1.321e-45 , 1.5 , 4.801248963551047e-68 ], [ 1.321e-45 , 2 , 1.745041e-90 ], [ 1.321e-45 , 3 , 2.3051991610000002e-135 ], [ 1.321e-45 , 3.5 , 8.378376292604084e-158 ], [ 1.321e-45 , 9.31 , 0 ], [ 1.321e-45 , 12.42 , 0 ], [ 1.321e-45 , 42.53 , 0 ], [ 1.321e-45 , 42 , 0 ], [ 1.321e-45 , 99 , 0 ], [ 1.321e-45 , 1024 , 0 ], [ 1.321e-45 , 10000 , 0 ], [ 1.321e-45 , 999999 , 0 ], [ 1.321e-45 , 1.23e+42 , 0 ], [ 1.321e-45 , 4.536e+121 , 0 ], [ 1.321e-45 , 1.321e-45 , 1 ] ]; var valgrind = require("internal").valgrind; data.forEach(function (value) { if (valgrind && (value[0] === 0 || value[1] >= 0 && value[1] < 1)) { // V8 under Valgrind has an issue with Math.pow(0, 0.1); return; } var query = "RETURN POW(" + JSON.stringify(value[0]) + ", " + JSON.stringify(value[1]) + ")"; var actual = getQueryResults(query); if (value[2] === null) { assertNull(actual[0]); } else { assertEqual(value[2].toPrecision(4), actual[0].toPrecision(4), value); } actual = getQueryResults("RETURN NOOPT(POW(" + JSON.stringify(value[0]) + ", " + JSON.stringify(value[1]) + "))"); if (value[2] === null) { assertNull(actual[0]); } else { assertEqual(value[2].toPrecision(4), actual[0].toPrecision(4), value); } query = "RETURN NOOPT(V8(POW(" + JSON.stringify(value[0]) + ", " + JSON.stringify(value[1]) + ")))"; actual = getQueryResults(query); if (value[2] === null) { assertNull(actual[0], query); } else { assertEqual(value[2].toPrecision(4), actual[0].toPrecision(4), value); } }); }, //////////////////////////////////////////////////////////////////////////////// /// @brief test pow function //////////////////////////////////////////////////////////////////////////////// testPowInvalid : function () { var buildQuery = function (nr, input) { switch (nr) { case 0: return `RETURN POW(${input})`; case 1: return `RETURN NOOPT(POW(${input}))`; case 2: return `RETURN NOOPT(V8(POW(${input})))`; default: assertTrue(false, "Undefined state"); } }; for (var i = 0; i < 3; ++i) { assertQueryError(errors.ERROR_QUERY_FUNCTION_ARGUMENT_NUMBER_MISMATCH.code, buildQuery(i, "")); assertQueryError(errors.ERROR_QUERY_FUNCTION_ARGUMENT_NUMBER_MISMATCH.code, buildQuery(i, "2")); assertQueryError(errors.ERROR_QUERY_FUNCTION_ARGUMENT_NUMBER_MISMATCH.code, buildQuery(i, "2, 2, 3")); assertQueryError(errors.ERROR_QUERY_FUNCTION_ARGUMENT_NUMBER_MISMATCH.code, buildQuery(i, "2, 2, 3, 4")); assertEqual([ 1 ], getQueryResults(buildQuery(i, "false, false"))); assertEqual([ 0 ], getQueryResults(buildQuery(i, "false, 1"))); assertEqual([ 0 ], getQueryResults(buildQuery(i, "false, 2"))); assertEqual([ 1 ], getQueryResults(buildQuery(i, "true, true"))); assertEqual([ 0 ], getQueryResults(buildQuery(i, "0, true"))); assertEqual([ 1 ], getQueryResults(buildQuery(i, "0, false"))); assertEqual([ 0 ], getQueryResults(buildQuery(i, "'foo', 1"))); assertEqual([ 0 ], getQueryResults(buildQuery(i, "[ ], 1"))); assertEqual([ 0 ], getQueryResults(buildQuery(i, "{ }, 1"))); } } }; } //////////////////////////////////////////////////////////////////////////////// /// @brief executes the test suite //////////////////////////////////////////////////////////////////////////////// jsunity.run(ahuacatlNumericFunctionsTestSuite); return jsunity.done();