1
0
Fork 0
arangodb/js/server/tests/aql/aql-functions-numeric.js

2054 lines
80 KiB
JavaScript

/*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();