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

5858 lines
198 KiB
JavaScript

/*jshint globalstrict:false, strict:false, maxlen: 500 */
/*global assertEqual, 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 () {
function assertAlmostEqual(a, b) {
if (typeof(a) === 'number') {
a = a.toPrecision(8);
}
if (typeof(b) === 'number') {
b = b.toPrecision(8);
}
if (((a === 0) && (b === 0.0))||
((b === 0) && (a === 0.0))) {
return;
}
assertEqual(a, b);
}
return {
////////////////////////////////////////////////////////////////////////////////
/// @brief test pi function
////////////////////////////////////////////////////////////////////////////////
testPi : function () {
var expected = 3.141592653589793;
var query = "RETURN PI()";
assertAlmostEqual(expected, getQueryResults(query)[0]);
query = "RETURN NOOPT(PI())";
assertAlmostEqual(expected, getQueryResults(query)[0]);
query = "RETURN NOOPT(V8(PI()))";
assertAlmostEqual(expected, getQueryResults(query)[0]);
},
////////////////////////////////////////////////////////////////////////////////
/// @brief test log function
////////////////////////////////////////////////////////////////////////////////
testLog : function () {
var values = [
[-999999999,null],
[-1000,null],
[-100,null],
[-99.5,null],
[-99,null],
[-10,null],
[-5,null],
[-4.5,null],
[-3.1,null],
[-2.5,null],
[-2,null],
[-1.99,null],
[-1.5,null],
[-1.1,null],
[-1,null],
[-0.9,null],
[-0.8,null],
[-0.75,null],
[-0.666,null],
[-0.5,null],
[-0.499,null],
[-0.3,null],
[-0.2,null],
[-0.1,null],
[-0.001,null],
[-0.00001,null],
[0,null],
[0.00001,-11.512925464970229],
[0.001,-6.907755278982137],
[0.1,-2.3025850929940455],
[0.2,-1.6094379124341003],
[0.3,-1.2039728043259361],
[0.499,-0.6951491832306184],
[0.5,-0.6931471805599453],
[0.666,-0.40646560844174784],
[0.75,-0.2876820724517809],
[0.8,-0.2231435513142097],
[0.9,-0.10536051565782628],
[1,0],
[1.1,0.09531017980432493],
[1.5,0.4054651081081644],
[1.99,0.688134638736401],
[2,0.6931471805599453],
[2.5,0.9162907318741551],
[3.1,1.1314021114911006],
[4.5,1.5040773967762742],
[5,1.6094379124341003],
[10,2.302585092994046],
[99,4.59511985013459],
[99.5,4.600157644164547],
[100,4.605170185988092],
[1000,6.907755278982137],
[999999999,20.72326583594641]
];
values.forEach(function(v) {
var query = "RETURN LOG(@v)";
assertAlmostEqual(v[1], getQueryResults(query, { v: v[0] })[0]);
query = "RETURN NOOPT(LOG(@v))";
assertAlmostEqual(v[1], getQueryResults(query, { v: v[0] })[0]);
query = "RETURN NOOPT(V8(LOG(@v)))";
assertAlmostEqual(v[1], getQueryResults(query, { v: v[0] })[0]);
});
},
////////////////////////////////////////////////////////////////////////////////
/// @brief test log2 function
////////////////////////////////////////////////////////////////////////////////
testLog2 : function () {
var values = [
[-999999999,null],
[-1000,null],
[-100,null],
[-99.5,null],
[-99,null],
[-10,null],
[-5,null],
[-4.5,null],
[-3.1,null],
[-2.5,null],
[-2,null],
[-1.99,null],
[-1.5,null],
[-1.1,null],
[-1,null],
[-0.9,null],
[-0.8,null],
[-0.75,null],
[-0.666,null],
[-0.5,null],
[-0.499,null],
[-0.3,null],
[-0.2,null],
[-0.1,null],
[-0.001,null],
[-0.00001,null],
[0,null],
[0.00001,-16.609640474436812],
[0.001,-9.965784284662087],
[0.1,-3.321928094887362],
[0.2,-2.321928094887362],
[0.3,-1.7369655941662063],
[0.499,-1.0028882793248266],
[0.5,-1],
[0.666,-0.5864059175908248],
[0.75,-0.4150374992788438],
[0.8,-0.3219280948873623],
[0.9,-0.15200309344504995],
[1,0],
[1.1,0.13750352374993502],
[1.5,0.5849625007211562],
[1.99,0.9927684307689242],
[2,1],
[2.5,1.3219280948873624],
[3.1,1.632268215499513],
[4.5,2.169925001442312],
[5,2.321928094887362],
[10,3.321928094887362],
[99,6.6293566200796095],
[99.5,6.636624620543649],
[100,6.643856189774724],
[1000,9.965784284662087],
[999999999,29.897352852543566]
];
values.forEach(function(v) {
var query = "RETURN LOG2(@v)";
assertAlmostEqual(v[1], getQueryResults(query, { v: v[0] })[0]);
query = "RETURN NOOPT(LOG2(@v))";
assertAlmostEqual(v[1], getQueryResults(query, { v: v[0] })[0]);
query = "RETURN NOOPT(V8(LOG2(@v)))";
assertAlmostEqual(v[1], getQueryResults(query, { v: v[0] })[0]);
});
},
////////////////////////////////////////////////////////////////////////////////
/// @brief test log10 function
////////////////////////////////////////////////////////////////////////////////
testLog10 : function () {
var values = [
[-999999999,null],
[-1000,null],
[-100,null],
[-99.5,null],
[-99,null],
[-10,null],
[-5,null],
[-4.5,null],
[-3.1,null],
[-2.5,null],
[-2,null],
[-1.99,null],
[-1.5,null],
[-1.1,null],
[-1,null],
[-0.9,null],
[-0.8,null],
[-0.75,null],
[-0.666,null],
[-0.5,null],
[-0.499,null],
[-0.3,null],
[-0.2,null],
[-0.1,null],
[-0.001,null],
[-0.00001,null],
[0,null],
[0.00001,-5],
[0.001,-3],
[0.1,-1],
[0.2,-0.6989700043360187],
[0.3,-0.5228787452803376],
[0.499,-0.3018994543766101],
[0.5,-0.3010299956639812],
[0.666,-0.1765257708296989],
[0.75,-0.12493873660829993],
[0.8,-0.09691001300805639],
[0.9,-0.045757490560675115],
[1,0],
[1.1,0.04139268515822507],
[1.5,0.17609125905568124],
[1.99,0.29885307640970665],
[2,0.3010299956639812],
[2.5,0.3979400086720376],
[3.1,0.4913616938342727],
[4.5,0.6532125137753437],
[5,0.6989700043360189],
[10,1],
[99,1.99563519459755],
[99.5,1.9978230807457253],
[100,2],
[1000,3],
[999999999,8.999999999565706]
];
values.forEach(function(v) {
var query = "RETURN LOG10(@v)";
assertAlmostEqual(v[1], getQueryResults(query, { v: v[0] })[0]);
query = "RETURN NOOPT(LOG10(@v))";
assertAlmostEqual(v[1], getQueryResults(query, { v: v[0] })[0]);
query = "RETURN NOOPT(V8(LOG10(@v)))";
assertAlmostEqual(v[1], getQueryResults(query, { v: v[0] })[0]);
});
},
////////////////////////////////////////////////////////////////////////////////
/// @brief test exp function
////////////////////////////////////////////////////////////////////////////////
testExp : function () {
var values = [
[-999999999,0],
[-1000,0],
[-100,3.7200759760208177e-44],
[-99.5,6.133368390286068e-44],
[-99,1.011221492610439e-43],
[-10,0.00004539992976248486],
[-5,0.006737946999085468],
[-4.5,0.01110899653824231],
[-3.1,0.04504920239355781],
[-2.5,0.0820849986238988],
[-2,0.1353352832366127],
[-1.99,0.13669542544552385],
[-1.5,0.22313016014842982],
[-1.1,0.3328710836980795],
[-1,0.3678794411714424],
[-0.9,0.4065696597405991],
[-0.8,0.4493289641172215],
[-0.75,0.47236655274101474],
[-0.666,0.5137595112299983],
[-0.5,0.6065306597126334],
[-0.499,0.6071374937387897],
[-0.3,0.7408182206817178],
[-0.2,0.8187307530779817],
[-0.1,0.9048374180359595],
[-0.001,0.999000499833375],
[-0.00001,0.9999900000499998],
[0,1],
[0.00001,1.00001000005],
[0.001,1.0010005001667084],
[0.1,1.1051709180756477],
[0.2,1.2214027581601699],
[0.3,1.3498588075760032],
[0.499,1.6470733735153453],
[0.5,1.6487212707001282],
[0.666,1.9464359844275914],
[0.75,2.117000016612675],
[0.8,2.225540928492468],
[0.9,2.4596031111569494],
[1,2.718281828459045],
[1.1,3.004166023946434],
[1.5,4.4816890703380645],
[1.99,7.315533762309566],
[2,7.3890560989306495],
[2.5,12.182493960703471],
[3.1,22.197951281441636],
[4.5,90.0171313005218],
[5,148.41315910257657],
[10,22026.46579480671],
[99,9.889030319347039e+42],
[99.5,1.6304254634105857e+43],
[100,2.6881171418161485e+43],
[1000,null],
[999999999,null]
];
values.forEach(function(v) {
var query = "RETURN EXP(@v)";
assertAlmostEqual(v[1], getQueryResults(query, { v: v[0] })[0]);
query = "RETURN NOOPT(EXP(@v))";
assertAlmostEqual(v[1], getQueryResults(query, { v: v[0] })[0]);
query = "RETURN NOOPT(V8(EXP(@v)))";
assertAlmostEqual(v[1], getQueryResults(query, { v: v[0] })[0]);
});
},
////////////////////////////////////////////////////////////////////////////////
/// @brief test exp2 function
////////////////////////////////////////////////////////////////////////////////
testExp2 : function () {
var values = [
[-999999999,0],
[-1000,9.332636185032189e-302],
[-100,7.888609052210118e-31],
[-99.5,1.1156177909894717e-30],
[-99,1.5777218104420236e-30],
[-10,0.0009765625],
[-5,0.03125],
[-4.5,0.04419417382415922],
[-3.1,0.11662912394210093],
[-2.5,0.1767766952966369],
[-2,0.25],
[-1.99,0.2517388875141797],
[-1.5,0.3535533905932738],
[-1.1,0.4665164957684037],
[-1,0.5],
[-0.9,0.5358867312681466],
[-0.8,0.5743491774985174],
[-0.75,0.5946035575013605],
[-0.666,0.6302516957914928],
[-0.5,0.7071067811865475],
[-0.499,0.707597080163328],
[-0.3,0.8122523963562356],
[-0.2,0.8705505632961241],
[-0.1,0.9330329915368074],
[-0.001,0.9993070929904525],
[-0.00001,0.999993068552217],
[0,1],
[0.00001,1.0000069314958282],
[0.001,1.0006933874625807],
[0.1,1.0717734625362931],
[0.2,1.148698354997035],
[0.3,1.2311444133449163],
[0.499,1.4132336438827295],
[0.5,1.4142135623730951],
[0.666,1.5866676863822857],
[0.75,1.681792830507429],
[0.8,1.7411011265922482],
[0.9,1.8660659830736148],
[1,2],
[1.1,2.1435469250725863],
[1.5,2.8284271247461903],
[1.99,3.9723699817481437],
[2,4],
[2.5,5.656854249492381],
[3.1,8.574187700290345],
[4.5,22.627416997969522],
[5,32],
[10,1024],
[99,6.338253001141147e+29],
[99.5,8.963643355965783e+29],
[100,1.2676506002282294e+30],
[1000,1.0715086071862673e+301],
[999999999,null]
];
values.forEach(function(v) {
var query = "RETURN EXP2(@v)";
assertAlmostEqual(v[1], getQueryResults(query, { v: v[0] })[0]);
query = "RETURN NOOPT(EXP2(@v))";
assertAlmostEqual(v[1], getQueryResults(query, { v: v[0] })[0]);
query = "RETURN NOOPT(V8(EXP2(@v)))";
assertAlmostEqual(v[1], getQueryResults(query, { v: v[0] })[0]);
});
},
////////////////////////////////////////////////////////////////////////////////
/// @brief test radians function
////////////////////////////////////////////////////////////////////////////////
testRadians : function () {
var values = [
[-1000,-17.453292519943297],
[-100,-1.7453292519943295],
[-99.5,-1.736602605734358],
[-99,-1.7278759594743862],
[-10,-0.17453292519943295],
[-5,-0.08726646259971647],
[-4.5,-0.07853981633974483],
[-3.1,-0.054105206811824215],
[-2.5,-0.04363323129985824],
[-2,-0.03490658503988659],
[-1.99,-0.034732052114687155],
[-1.5,-0.026179938779914945],
[-1.1,-0.019198621771937627],
[-1,-0.017453292519943295],
[-0.9,-0.015707963267948967],
[-0.8,-0.013962634015954637],
[-0.75,-0.013089969389957472],
[-0.666,-0.011623892818282236],
[-0.5,-0.008726646259971648],
[-0.499,-0.008709192967451705],
[-0.3,-0.005235987755982988],
[-0.2,-0.003490658503988659],
[-0.1,-0.0017453292519943296],
[-0.001,-0.000017453292519943296],
[-0.00001,-1.7453292519943297e-7],
[0,0],
[0.00001,1.7453292519943297e-7],
[0.001,0.000017453292519943296],
[0.1,0.0017453292519943296],
[0.2,0.003490658503988659],
[0.3,0.005235987755982988],
[0.499,0.008709192967451705],
[0.5,0.008726646259971648],
[0.666,0.011623892818282236],
[0.75,0.013089969389957472],
[0.8,0.013962634015954637],
[0.9,0.015707963267948967],
[1,0.017453292519943295],
[1.1,0.019198621771937627],
[1.5,0.026179938779914945],
[1.99,0.034732052114687155],
[2,0.03490658503988659],
[2.5,0.04363323129985824],
[3.1,0.054105206811824215],
[4.5,0.07853981633974483],
[5,0.08726646259971647],
[10,0.17453292519943295],
[99,1.7278759594743862],
[99.5,1.736602605734358],
[100,1.7453292519943295],
[1000,17.453292519943297]
];
values.forEach(function(v) {
var query = "RETURN RADIANS(@v)";
assertAlmostEqual(v[1], getQueryResults(query, { v: v[0] })[0]);
query = "RETURN NOOPT(RADIANS(@v))";
assertAlmostEqual(v[1], getQueryResults(query, { v: v[0] })[0]);
query = "RETURN NOOPT(V8(RADIANS(@v)))";
assertAlmostEqual(v[1], getQueryResults(query, { v: v[0] })[0]);
});
},
////////////////////////////////////////////////////////////////////////////////
/// @brief test degrees function
////////////////////////////////////////////////////////////////////////////////
testDegrees : function () {
var values = [
[-1000,-57295.77951308232],
[-100,-5729.5779513082325],
[-99.5,-5700.930061551691],
[-99,-5672.28217179515],
[-10,-572.9577951308232],
[-5,-286.4788975654116],
[-4.5,-257.8310078088705],
[-3.1,-177.6169164905552],
[-2.5,-143.2394487827058],
[-2,-114.59155902616465],
[-1.99,-114.01860123103383],
[-1.5,-85.94366926962348],
[-1.1,-63.02535746439056],
[-1,-57.29577951308232],
[-0.9,-51.56620156177409],
[-0.8,-45.836623610465864],
[-0.75,-42.97183463481174],
[-0.666,-38.15898915571283],
[-0.5,-28.64788975654116],
[-0.499,-28.590593977028078],
[-0.3,-17.188733853924695],
[-0.2,-11.459155902616466],
[-0.1,-5.729577951308233],
[-0.001,-0.057295779513082325],
[-0.00001,-0.0005729577951308233],
[0,0],
[0.00001,0.0005729577951308233],
[0.001,0.057295779513082325],
[0.1,5.729577951308233],
[0.2,11.459155902616466],
[0.3,17.188733853924695],
[0.499,28.590593977028078],
[0.5,28.64788975654116],
[0.666,38.15898915571283],
[0.75,42.97183463481174],
[0.8,45.836623610465864],
[0.9,51.56620156177409],
[1,57.29577951308232],
[1.1,63.02535746439056],
[1.5,85.94366926962348],
[1.99,114.01860123103383],
[2,114.59155902616465],
[2.5,143.2394487827058],
[3.1,177.6169164905552],
[4.5,257.8310078088705],
[5,286.4788975654116],
[10,572.9577951308232],
[99,5672.28217179515],
[99.5,5700.930061551691],
[100,5729.5779513082325],
[1000,57295.77951308232]
];
values.forEach(function(v) {
var query = "RETURN DEGREES(@v)";
assertAlmostEqual(v[1], getQueryResults(query, { v: v[0] })[0]);
query = "RETURN NOOPT(DEGREES(@v))";
assertAlmostEqual(v[1], getQueryResults(query, { v: v[0] })[0]);
query = "RETURN NOOPT(V8(DEGREES(@v)))";
assertAlmostEqual(v[1], getQueryResults(query, { v: v[0] })[0]);
});
},
////////////////////////////////////////////////////////////////////////////////
/// @brief test sin function
////////////////////////////////////////////////////////////////////////////////
testSin : function () {
var values = [
[-999999999,0.41013727728004373],
[-1000,-0.8268795405320025],
[-100,0.5063656411097588],
[-99.5,0.857795346373455],
[-99,0.9992068341863537],
[-10,0.5440211108893698],
[-5,0.9589242746631385],
[-4.5,0.977530117665097],
[-3.1,-0.04158066243329049],
[-2.5,-0.5984721441039564],
[-2,-0.9092974268256817],
[-1.99,-0.9134133613412252],
[-1.5,-0.9974949866040544],
[-1.1,-0.8912073600614354],
[-1,-0.8414709848078965],
[-0.9,-0.7833269096274834],
[-0.8,-0.7173560908995228],
[-0.75,-0.6816387600233341],
[-0.666,-0.6178457408525216],
[-0.5,-0.479425538604203],
[-0.499,-0.47854771647582706],
[-0.3,-0.29552020666133955],
[-0.2,-0.19866933079506122],
[-0.1,-0.09983341664682815],
[-0.001,-0.0009999998333333417],
[-0.00001,-0.000009999999999833334],
[0,0],
[0.00001,0.000009999999999833334],
[0.001,0.0009999998333333417],
[0.1,0.09983341664682815],
[0.2,0.19866933079506122],
[0.3,0.29552020666133955],
[0.499,0.47854771647582706],
[0.5,0.479425538604203],
[0.666,0.6178457408525216],
[0.75,0.6816387600233341],
[0.8,0.7173560908995229],
[0.9,0.7833269096274834],
[1,0.8414709848078965],
[1.1,0.8912073600614354],
[1.5,0.9974949866040544],
[1.99,0.9134133613412252],
[2,0.9092974268256817],
[2.5,0.5984721441039564],
[3.1,0.04158066243329049],
[4.5,-0.977530117665097],
[5,-0.9589242746631385],
[10,-0.5440211108893698],
[99,-0.9992068341863537],
[99.5,-0.857795346373455],
[100,-0.5063656411097588],
[1000,0.8268795405320026],
[999999999,-0.41013727728004373],
];
values.forEach(function(v) {
var query = "RETURN SIN(@v)";
assertAlmostEqual(v[1], getQueryResults(query, { v: v[0] })[0]);
query = "RETURN NOOPT(SIN(@v))";
assertAlmostEqual(v[1], getQueryResults(query, { v: v[0] })[0]);
query = "RETURN NOOPT(V8(SIN(@v)))";
assertAlmostEqual(v[1], getQueryResults(query, { v: v[0] })[0]);
});
},
////////////////////////////////////////////////////////////////////////////////
/// @brief test cos function
////////////////////////////////////////////////////////////////////////////////
testCos : function () {
var values = [
[-999999999,0.9120238011068091],
[-1000,0.562379076290703],
[-100,0.8623188722876839],
[-99.5,0.5139913848889341],
[-99,0.0398208803931389],
[-10,-0.8390715290764524],
[-5,0.28366218546322625],
[-4.5,-0.2107957994307797],
[-3.1,-0.9991351502732795],
[-2.5,-0.8011436155469337],
[-2,-0.4161468365471424],
[-1.99,-0.4070332066592655],
[-1.5,0.0707372016677029],
[-1.1,0.4535961214255773],
[-1,0.5403023058681398],
[-0.9,0.6216099682706644],
[-0.8,0.6967067093471654],
[-0.75,0.7316888688738209],
[-0.666,0.7862993326401839],
[-0.5,0.8775825618903728],
[-0.499,0.8780615485578283],
[-0.3,0.955336489125606],
[-0.2,0.9800665778412416],
[-0.1,0.9950041652780257],
[-0.001,0.9999995000000417],
[-0.00001,0.99999999995],
[0,1],
[0.00001,0.99999999995],
[0.001,0.9999995000000417],
[0.1,0.9950041652780257],
[0.2,0.9800665778412416],
[0.3,0.955336489125606],
[0.499,0.8780615485578283],
[0.5,0.8775825618903728],
[0.666,0.7862993326401839],
[0.75,0.7316888688738209],
[0.8,0.6967067093471654],
[0.9,0.6216099682706644],
[1,0.5403023058681398],
[1.1,0.4535961214255773],
[1.5,0.0707372016677029],
[1.99,-0.4070332066592655],
[2,-0.4161468365471424],
[2.5,-0.8011436155469337],
[3.1,-0.9991351502732795],
[4.5,-0.2107957994307797],
[5,0.28366218546322625],
[10,-0.8390715290764524],
[99,0.0398208803931389],
[99.5,0.5139913848889341],
[100,0.862318872287684],
[1000,0.562379076290703],
[999999999,0.9120238011068091],
];
values.forEach(function(v) {
var query = "RETURN COS(@v)";
assertAlmostEqual(v[1], getQueryResults(query, { v: v[0] })[0]);
query = "RETURN NOOPT(COS(@v))";
assertAlmostEqual(v[1], getQueryResults(query, { v: v[0] })[0]);
query = "RETURN NOOPT(V8(COS(@v)))";
assertAlmostEqual(v[1], getQueryResults(query, { v: v[0] })[0]);
});
},
////////////////////////////////////////////////////////////////////////////////
/// @brief test tan function
////////////////////////////////////////////////////////////////////////////////
testTan : function () {
var values = [
[-999999999,0.44970019069931233],
[-1000,-1.4703241557027185],
[-100,0.5872139151569291],
[-99.5,1.6688905137170962],
[-99,25.092534979676547],
[-10,-0.6483608274590866],
[-5,3.380515006246586],
[-4.5,-4.637332054551185],
[-3.1,0.041616654585635904],
[-2.5,0.7470222972386603],
[-2,2.185039863261519],
[-1.99,2.244075781526737],
[-1.5,-14.101419947171719],
[-1.1,-1.9647596572486523],
[-1,-1.5574077246549023],
[-0.9,-1.2601582175503392],
[-0.8,-1.0296385570503641],
[-0.75,-0.9315964599440725],
[-0.666,-0.7857640407476374],
[-0.5,-0.5463024898437905],
[-0.499,-0.5450047519582397],
[-0.3,-0.30933624960962325],
[-0.2,-0.2027100355086725],
[-0.1,-0.10033467208545055],
[-0.001,-0.0010000003333334668],
[-0.00001,-0.000010000000000333334],
[0,0],
[0.00001,0.000010000000000333334],
[0.001,0.0010000003333334668],
[0.1,0.10033467208545055],
[0.2,0.2027100355086725],
[0.3,0.30933624960962325],
[0.499,0.5450047519582397],
[0.5,0.5463024898437905],
[0.666,0.7857640407476374],
[0.75,0.9315964599440725],
[0.8,1.0296385570503641],
[0.9,1.2601582175503392],
[1,1.5574077246549023],
[1.1,1.9647596572486523],
[1.5,14.101419947171719],
[1.99,-2.244075781526737],
[2,-2.185039863261519],
[2.5,-0.7470222972386603],
[3.1,-0.041616654585635904],
[4.5,4.637332054551185],
[5,-3.380515006246586],
[10,0.6483608274590866],
[99,-25.092534979676547],
[99.5,-1.6688905137170962],
[100,-0.5872139151569291],
[1000,1.4703241557027185],
[999999999,-0.44970019069931233],
];
values.forEach(function(v) {
var query = "RETURN TAN(@v)";
assertAlmostEqual(v[1], getQueryResults(query, { v: v[0] })[0]);
query = "RETURN NOOPT(TAN(@v))";
assertAlmostEqual(v[1], getQueryResults(query, { v: v[0] })[0]);
query = "RETURN NOOPT(V8(TAN(@v)))";
assertAlmostEqual(v[1], getQueryResults(query, { v: v[0] })[0]);
});
},
////////////////////////////////////////////////////////////////////////////////
/// @brief test asin function
////////////////////////////////////////////////////////////////////////////////
testAsin : function () {
var values = [
[-999999999,null],
[-1000,null],
[-100,null],
[-99.5,null],
[-99,null],
[-10,null],
[-5,null],
[-4.5,null],
[-3.1,null],
[-2.5,null],
[-2,null],
[-1.99,null],
[-1.5,null],
[-1.1,null],
[-1,-1.5707963267948966],
[-0.9,-1.1197695149986342],
[-0.8,-0.9272952180016123],
[-0.75,-0.848062078981481],
[-0.666,-0.7288335864018695],
[-0.5,-0.5235987755982989],
[-0.499,-0.5224444594474967],
[-0.3,-0.3046926540153975],
[-0.2,-0.2013579207903308],
[-0.1,-0.1001674211615598],
[-0.001,-0.0010000001666667416],
[-0.00001,-0.000010000000000166668],
[0,0],
[0.00001,0.000010000000000166668],
[0.001,0.0010000001666667416],
[0.1,0.1001674211615598],
[0.2,0.2013579207903308],
[0.3,0.3046926540153975],
[0.499,0.5224444594474967],
[0.5,0.5235987755982989],
[0.666,0.7288335864018695],
[0.75,0.848062078981481],
[0.8,0.9272952180016123],
[0.9,1.1197695149986342],
[1,1.5707963267948966],
[1.1,null],
[1.5,null],
[1.99,null],
[2,null],
[2.5,null],
[3.1,null],
[4.5,null],
[5,null],
[10,null],
[99,null],
[99.5,null],
[100,null],
[1000,null],
[999999999,null]
];
values.forEach(function(v) {
var query = "RETURN ASIN(@v)";
assertAlmostEqual(v[1], getQueryResults(query, { v: v[0] })[0]);
query = "RETURN NOOPT(ASIN(@v))";
assertAlmostEqual(v[1], getQueryResults(query, { v: v[0] })[0]);
query = "RETURN NOOPT(V8(ASIN(@v)))";
assertAlmostEqual(v[1], getQueryResults(query, { v: v[0] })[0]);
});
},
////////////////////////////////////////////////////////////////////////////////
/// @brief test acos function
////////////////////////////////////////////////////////////////////////////////
testAcos : function () {
var values = [
[-999999999,null],
[-1000,null],
[-100,null],
[-99.5,null],
[-99,null],
[-10,null],
[-5,null],
[-4.5,null],
[-3.1,null],
[-2.5,null],
[-2,null],
[-1.99,null],
[-1.5,null],
[-1.1,null],
[-1,3.141592653589793],
[-0.9,2.6905658417935308],
[-0.8,2.498091544796509],
[-0.75,2.4188584057763776],
[-0.666,2.299629913196766],
[-0.5,2.0943951023931957],
[-0.499,2.093240786242393],
[-0.3,1.8754889808102941],
[-0.2,1.7721542475852274],
[-0.1,1.6709637479564565],
[-0.001,1.5717963269615634],
[-0.00001,1.5708063267948968],
[0,1.5707963267948966],
[0.00001,1.5707863267948965],
[0.001,1.56979632662823],
[0.1,1.4706289056333368],
[0.2,1.369438406004566],
[0.3,1.2661036727794992],
[0.499,1.0483518673474],
[0.5,1.0471975511965979],
[0.666,0.8419627403930272],
[0.75,0.7227342478134157],
[0.8,0.6435011087932843],
[0.9,0.45102681179626236],
[1,0],
[1.1,null],
[1.5,null],
[1.99,null],
[2,null],
[2.5,null],
[3.1,null],
[4.5,null],
[5,null],
[10,null],
[99,null],
[99.5,null],
[100,null],
[1000,null],
[999999999,null]
];
values.forEach(function(v) {
var query = "RETURN ACOS(@v)";
assertAlmostEqual(v[1], getQueryResults(query, { v: v[0] })[0]);
query = "RETURN NOOPT(ACOS(@v))";
assertAlmostEqual(v[1], getQueryResults(query, { v: v[0] })[0]);
query = "RETURN NOOPT(V8(ACOS(@v)))";
assertAlmostEqual(v[1], getQueryResults(query, { v: v[0] })[0]);
});
},
////////////////////////////////////////////////////////////////////////////////
/// @brief test atan function
////////////////////////////////////////////////////////////////////////////////
testAtan : function () {
var values = [
[-999999999,-1.5707963257948967],
[-1000,-1.5697963271282298],
[-100,-1.5607966601082315],
[-99.5,-1.5607464139018623],
[-99,-1.5606956602095747],
[-10,-1.4711276743037347],
[-5,-1.373400766945016],
[-4.5,-1.3521273809209546],
[-3.1,-1.2587542052323633],
[-2.5,-1.1902899496825317],
[-2,-1.1071487177940904],
[-1.99,-1.1051406883644943],
[-1.5,-0.982793723247329],
[-1.1,-0.8329812666744317],
[-1,-0.7853981633974483],
[-0.9,-0.7328151017865066],
[-0.8,-0.6747409422235527],
[-0.75,-0.6435011087932844],
[-0.666,-0.5875409230632876],
[-0.5,-0.4636476090008061],
[-0.499,-0.4628472890436265],
[-0.3,-0.2914567944778671],
[-0.2,-0.19739555984988078],
[-0.1,-0.09966865249116204],
[-0.001,-0.0009999996666668668],
[-0.00001,-0.000009999999999666668],
[0,0],
[0.00001,0.000009999999999666668],
[0.001,0.0009999996666668668],
[0.1,0.09966865249116204],
[0.2,0.19739555984988078],
[0.3,0.2914567944778671],
[0.499,0.4628472890436265],
[0.5,0.4636476090008061],
[0.666,0.5875409230632876],
[0.75,0.6435011087932844],
[0.8,0.6747409422235527],
[0.9,0.7328151017865066],
[1,0.7853981633974483],
[1.1,0.8329812666744317],
[1.5,0.982793723247329],
[1.99,1.1051406883644943],
[2,1.1071487177940904],
[2.5,1.1902899496825317],
[3.1,1.2587542052323633],
[4.5,1.3521273809209546],
[5,1.373400766945016],
[10,1.4711276743037347],
[99,1.5606956602095747],
[99.5,1.5607464139018623],
[100,1.5607966601082315],
[1000,1.5697963271282298],
[999999999,1.5707963257948967]
];
values.forEach(function(v) {
var query = "RETURN ATAN(@v)";
assertAlmostEqual(v[1], getQueryResults(query, { v: v[0] })[0]);
query = "RETURN NOOPT(ATAN(@v))";
assertAlmostEqual(v[1], getQueryResults(query, { v: v[0] })[0]);
query = "RETURN NOOPT(V8(ATAN(@v)))";
assertAlmostEqual(v[1], getQueryResults(query, { v: v[0] })[0]);
});
},
////////////////////////////////////////////////////////////////////////////////
/// @brief test atan2 function
////////////////////////////////////////////////////////////////////////////////
testAtan2 : function () {
var values = [
[-999999999,-999999999,-2.356194490192345],
[-999999999,-1000,-1.5707973267948976],
[-999999999,-100,-1.5707964267948966],
[-999999999,-99.5,-1.5707964262948968],
[-999999999,-99,-1.5707964257948968],
[-999999999,-10,-1.5707963367948967],
[-999999999,-5,-1.5707963317948965],
[-999999999,-4.5,-1.5707963312948967],
[-999999999,-3.1,-1.5707963298948966],
[-999999999,-2.5,-1.5707963292948965],
[-999999999,-2,-1.5707963287948967],
[-999999999,-1.99,-1.5707963287848967],
[-999999999,-1.5,-1.5707963282948967],
[-999999999,-1.1,-1.5707963278948966],
[-999999999,-1,-1.5707963277948966],
[-999999999,-0.9,-1.5707963276948966],
[-999999999,-0.8,-1.5707963275948966],
[-999999999,-0.75,-1.5707963275448966],
[-999999999,-0.666,-1.5707963274608967],
[-999999999,-0.5,-1.5707963272948966],
[-999999999,-0.499,-1.5707963272938965],
[-999999999,-0.3,-1.5707963270948966],
[-999999999,-0.2,-1.5707963269948966],
[-999999999,-0.1,-1.5707963268948966],
[-999999999,-0.001,-1.5707963267958966],
[-999999999,-0.00001,-1.5707963267949066],
[-999999999,0,-1.5707963267948966],
[-999999999,0.00001,-1.5707963267948866],
[-999999999,0.001,-1.5707963267938967],
[-999999999,0.1,-1.5707963266948965],
[-999999999,0.2,-1.5707963265948965],
[-999999999,0.3,-1.5707963264948965],
[-999999999,0.499,-1.5707963262958966],
[-999999999,0.5,-1.5707963262948965],
[-999999999,0.666,-1.5707963261288966],
[-999999999,0.75,-1.5707963260448967],
[-999999999,0.8,-1.5707963259948967],
[-999999999,0.9,-1.5707963258948967],
[-999999999,1,-1.5707963257948967],
[-999999999,1.1,-1.5707963256948967],
[-999999999,1.5,-1.5707963252948967],
[-999999999,1.99,-1.5707963248048966],
[-999999999,2,-1.5707963247948966],
[-999999999,2.5,-1.5707963242948966],
[-999999999,3.1,-1.5707963236948965],
[-999999999,4.5,-1.5707963222948966],
[-999999999,5,-1.5707963217948966],
[-999999999,10,-1.5707963167948966],
[-999999999,99,-1.5707962277948966],
[-999999999,99.5,-1.5707962272948965],
[-999999999,100,-1.5707962267948965],
[-999999999,1000,-1.5707953267948955],
[-999999999,999999999,-0.7853981633974483],
[-1000,-999999999,-3.141591653589792],
[-1000,-1000,-2.356194490192345],
[-1000,-100,-1.6704649792860586],
[-1000,-99.5,-1.6699699053129409],
[-1000,-99,-1.6694747825604719],
[-1000,-10,-1.5807959934815619],
[-1000,-5,-1.575796285128855],
[-1000,-4.5,-1.5752962964202657],
[-1000,-3.1,-1.5738963168646205],
[-1000,-2.5,-1.5732963215865827],
[-1000,-2,-1.5727963241282363],
[-1000,-1.99,-1.5727863241680364],
[-1000,-1.5,-1.572296325669898],
[-1000,-1.1,-1.5718963263512302],
[-1000,-1,-1.5717963264615635],
[-1000,-0.9,-1.5716963265518968],
[-1000,-0.8,-1.57159632662423],
[-1000,-0.75,-1.5715463266542717],
[-1000,-0.666,-1.5714623266964272],
[-1000,-0.5,-1.57129632675323],
[-1000,-0.499,-1.5712953267534795],
[-1000,-0.3,-1.5710963267858966],
[-1000,-0.2,-1.57099632679223],
[-1000,-0.1,-1.5708963267945633],
[-1000,-0.001,-1.5707973267948967],
[-1000,-0.00001,-1.5707963367948967],
[-1000,0,-1.5707963267948966],
[-1000,0.00001,-1.5707963167948966],
[-1000,0.001,-1.5707953267948966],
[-1000,0.1,-1.5706963267952299],
[-1000,0.2,-1.5705963267975633],
[-1000,0.3,-1.5704963268038967],
[-1000,0.499,-1.5702973268363138],
[-1000,0.5,-1.5702963268365633],
[-1000,0.666,-1.570130326893366],
[-1000,0.75,-1.5700463269355216],
[-1000,0.8,-1.5699963269655632],
[-1000,0.9,-1.5698963270378965],
[-1000,1,-1.5697963271282298],
[-1000,1.1,-1.569696327238563],
[-1000,1.5,-1.569296327919895],
[-1000,1.99,-1.5688063294217567],
[-1000,2,-1.5687963294615568],
[-1000,2.5,-1.5682963320032104],
[-1000,3.1,-1.5676963367251726],
[-1000,4.5,-1.5662963571695276],
[-1000,5,-1.5657963684609384],
[-1000,10,-1.5607966601082315],
[-1000,99,-1.4721178710293215],
[-1000,99.5,-1.4716227482768525],
[-1000,100,-1.4711276743037347],
[-1000,1000,-0.7853981633974483],
[-1000,999999999,-0.0000010000000009996668],
[-100,-999999999,-3.1415925535897933],
[-100,-1000,-3.0419240010986313],
[-100,-100,-2.356194490192345],
[-100,-99.5,-2.3536882297757566],
[-100,-99,-2.3511694068615325],
[-100,-10,-1.6704649792860586],
[-100,-5,-1.6207547225168393],
[-100,-4.5,-1.6157659886472242],
[-100,-3.1,-1.601786402183466],
[-100,-2.5,-1.5957911204138169],
[-100,-2,-1.590793660768047],
[-100,-1.99,-1.5906937005525459],
[-100,-1.5,-1.5857952019467472],
[-100,-1.1,-1.5817958831604373],
[-100,-1,-1.5807959934815619],
[-100,-0.9,-1.5797960838067058],
[-100,-0.8,-1.5787961561347832],
[-100,-0.75,-1.5782961861746425],
[-100,-0.666,-1.577456228328085],
[-100,-0.5,-1.575796285128855],
[-100,-0.499,-1.575786285378349],
[-100,-0.3,-1.5737963177949452],
[-100,-0.2,-1.5727963241282363],
[-100,-0.1,-1.5717963264615635],
[-100,-0.001,-1.5708063267948962],
[-100,-0.00001,-1.5707964267948966],
[-100,0,-1.5707963267948966],
[-100,0.00001,-1.5707962267948967],
[-100,0.001,-1.570786326794897],
[-100,0.1,-1.5697963271282298],
[-100,0.2,-1.5687963294615568],
[-100,0.3,-1.5677963357948481],
[-100,0.499,-1.5658063682114443],
[-100,0.5,-1.5657963684609384],
[-100,0.666,-1.564136425261708],
[-100,0.75,-1.5632964674151508],
[-100,0.8,-1.56279649745501],
[-100,0.9,-1.5617965697830876],
[-100,1,-1.5607966601082315],
[-100,1.1,-1.5597967704293558],
[-100,1.5,-1.555797451643046],
[-100,1.99,-1.5508989530372472],
[-100,2,-1.550798992821746],
[-100,2.5,-1.5458015331759765],
[-100,3.1,-1.539806251406327],
[-100,4.5,-1.5258266649425691],
[-100,5,-1.5208379310729538],
[-100,10,-1.4711276743037347],
[-100,99,-0.7904232467282607],
[-100,99.5,-0.7879044238140365],
[-100,100,-0.7853981633974483],
[-100,1000,-0.09966865249116202],
[-100,999999999,-1.0000000009999967e-7],
[-99.5,-999999999,-3.1415925540897933],
[-99.5,-1000,-3.042419075071749],
[-99.5,-100,-2.358700750608933],
[-99.5,-99.5,-2.356194490192345],
[-99.5,-99,-2.353675603831968],
[-99.5,-10,-1.6709624916828216],
[-99.5,-5,-1.6210053490780079],
[-99.5,-4.5,-1.615991660015726],
[-99.5,-3.1,-1.6019420307660597],
[-99.5,-2.5,-1.5959166696912488],
[-99.5,-2,-1.5908941228934879],
[-99.5,-1.99,-1.590793660768047],
[-99.5,-1.5,-1.585870561789856],
[-99.5,-1.1,-1.5818511528210555],
[-99.5,-1,-1.580846239687931],
[-99.5,-0.9,-1.5798413062559027],
[-99.5,-0.8,-1.5788363545541597],
[-99.5,-0.75,-1.578333872486328],
[-99.5,-0.666,-1.577489694172899],
[-99.5,-0.5,-1.575821410125709],
[-99.5,-0.499,-1.575811360127727],
[-99.5,-0.3,-1.5738113930354696],
[-99.5,-0.2,-1.5728063743390894],
[-99.5,-0.1,-1.5718013515821412],
[-99.5,-0.001,-1.5708063770461527],
[-99.5,-0.00001,-1.570796427297409],
[-99.5,0,-1.5707963267948966],
[-99.5,0.00001,-1.570796226292384],
[-99.5,0.001,-1.5707862765436407],
[-99.5,0.1,-1.569791302007652],
[-99.5,0.2,-1.568786279250704],
[-99.5,0.3,-1.5677812605543238],
[-99.5,0.499,-1.5657812934620663],
[-99.5,0.5,-1.5657712434640843],
[-99.5,0.666,-1.564102959416894],
[-99.5,0.75,-1.563258781103465],
[-99.5,0.8,-1.5627562990356334],
[-99.5,0.9,-1.5617513473338906],
[-99.5,1,-1.5607464139018623],
[-99.5,1.1,-1.5597415007687376],
[-99.5,1.5,-1.5557220917999373],
[-99.5,1.99,-1.550798992821746],
[-99.5,2,-1.5506985306963055],
[-99.5,2.5,-1.5456759838985445],
[-99.5,3.1,-1.5396506228237334],
[-99.5,4.5,-1.5256009935740673],
[-99.5,5,-1.5205873045117855],
[-99.5,10,-1.4706301619069715],
[-99.5,99,-0.7879170497578252],
[-99.5,99.5,-0.7853981633974483],
[-99.5,100,-0.7828919029808601],
[-99.5,1000,-0.09917357851804426],
[-99.5,999999999,-9.950000009949967e-8],
[-99,-999999999,-3.141592554589793],
[-99,-1000,-3.042914197824218],
[-99,-100,-2.361219573523157],
[-99,-99.5,-2.3587133765527217],
[-99,-99,-2.356194490192345],
[-99,-10,-1.6714649789527256],
[-99,-5,-1.6212585008117524],
[-99,-4.5,-1.6162196062164735],
[-99,-3.1,-1.602099229822382],
[-99,-2.5,-1.5960434863390585],
[-99,-2,-1.5909955993759646],
[-99,-1.99,-1.5908946302769316],
[-99,-1.5,-1.5859466826696664],
[-99,-1.1,-1.5819069806925041],
[-99,-1,-1.5808969933802186],
[-99,-0.9,-1.5798869854599564],
[-99,-0.8,-1.5788769589917964],
[-99,-0.75,-1.578371939446092],
[-99,-0.666,-1.5775234980413286],
[-99,-0.5,-1.5758467889039691],
[-99,-0.499,-1.5758366881509993],
[-99,-0.3,-1.5738266205497593],
[-99,-0.2,-1.5728165260668117],
[-99,-0.1,-1.5718064274614612],
[-99,-0.001,-1.5708064278049974],
[-99,-0.00001,-1.5707964278049977],
[-99,0,-1.5707963267948966],
[-99,0.00001,-1.5707962257847956],
[-99,0.001,-1.570786225784796],
[-99,0.1,-1.5697862261283322],
[-99,0.2,-1.5687761275229817],
[-99,0.3,-1.5677660330400338],
[-99,0.499,-1.565755965438794],
[-99,0.5,-1.565745864685824],
[-99,0.666,-1.5640691555484647],
[-99,0.75,-1.5632207141437011],
[-99,0.8,-1.5627156945979968],
[-99,0.9,-1.561705668129837],
[-99,1,-1.5606956602095747],
[-99,1.1,-1.5596856728972892],
[-99,1.5,-1.555645970920127],
[-99,1.99,-1.5506980233128616],
[-99,2,-1.5505970542138288],
[-99,2.5,-1.5455491672507347],
[-99,3.1,-1.5394934237674114],
[-99,4.5,-1.5253730473733196],
[-99,5,-1.5203341527780407],
[-99,10,-1.4701276746370677],
[-99,99,-0.7853981633974483],
[-99,99.5,-0.7828792770370715],
[-99,100,-0.7803730800666359],
[-99,1000,-0.09867845576557521],
[-99,999999999,-9.900000009899968e-8],
[-10,-999999999,-3.141592643589793],
[-10,-1000,-3.131592986903128],
[-10,-100,-3.0419240010986313],
[-10,-99.5,-3.0414264887018683],
[-10,-99,-3.0409240014319643],
[-10,-10,-2.356194490192345],
[-10,-5,-2.0344439357957027],
[-10,-4.5,-1.9936502529278373],
[-10,-3.1,-1.8714019968372921],
[-10,-2.5,-1.8157749899217608],
[-10,-2,-1.7681918866447774],
[-10,-1.99,-1.7672301635329326],
[-10,-1.5,-1.719686274404394],
[-10,-1.1,-1.680355853568841],
[-10,-1,-1.6704649792860586],
[-10,-0.9,-1.6605545009848472],
[-10,-0.8,-1.6506263125071339],
[-10,-0.75,-1.6456561745056635],
[-10,-0.666,-1.6372981185957207],
[-10,-0.5,-1.6207547225168393],
[-10,-0.499,-1.620654971396217],
[-10,-0.3,-1.6007873316517744],
[-10,-0.2,-1.590793660768047],
[-10,-0.1,-1.5807959934815619],
[-10,-0.001,-1.5708963267945633],
[-10,-0.00001,-1.5707973267948967],
[-10,0,-1.5707963267948966],
[-10,0.00001,-1.5707953267948966],
[-10,0.001,-1.5706963267952299],
[-10,0.1,-1.5607966601082315],
[-10,0.2,-1.550798992821746],
[-10,0.3,-1.5408053219380187],
[-10,0.499,-1.5209376821935763],
[-10,0.5,-1.5208379310729538],
[-10,0.666,-1.5042945349940726],
[-10,0.75,-1.4959364790841299],
[-10,0.8,-1.4909663410826592],
[-10,0.9,-1.481038152604946],
[-10,1,-1.4711276743037347],
[-10,1.1,-1.4612368000209524],
[-10,1.5,-1.4219063791853994],
[-10,1.99,-1.3743624900568607],
[-10,2,-1.373400766945016],
[-10,2.5,-1.3258176636680326],
[-10,3.1,-1.2701906567525012],
[-10,4.5,-1.1479424006619559],
[-10,5,-1.1071487177940904],
[-10,10,-0.7853981633974483],
[-10,99,-0.1006686521578289],
[-10,99.5,-0.10016616488792511],
[-10,100,-0.09966865249116202],
[-10,1000,-0.009999666686665238],
[-10,999999999,-1.000000001e-8],
[-5,-999999999,-3.141592648589793],
[-5,-1000,-3.136592695255835],
[-5,-100,-3.0916342578678506],
[-5,-99.5,-3.091383631306682],
[-5,-99,-3.0911304795729375],
[-5,-10,-2.677945044588987],
[-5,-5,-2.356194490192345],
[-5,-4.5,-2.3036114285814033],
[-5,-3.1,-2.1257920541334836],
[-5,-2.5,-2.0344439357957027],
[-5,-2,-1.9513027039072615],
[-5,-1.99,-1.949577377806934],
[-5,-1.5,-1.8622531212727638],
[-5,-1.1,-1.7873466317709858],
[-5,-1,-1.7681918866447774],
[-5,-0.9,-1.748889265026094],
[-5,-0.8,-1.729451588981298],
[-5,-0.75,-1.719686274404394],
[-5,-0.666,-1.703216852437182],
[-5,-0.5,-1.6704649792860586],
[-5,-0.499,-1.670266955565405],
[-5,-0.3,-1.6307244819161044],
[-5,-0.2,-1.6107750139181867],
[-5,-0.1,-1.590793660768047],
[-5,-0.001,-1.57099632679223],
[-5,-0.00001,-1.5707983267948966],
[-5,0,-1.5707963267948966],
[-5,0.00001,-1.5707943267948967],
[-5,0.001,-1.5705963267975633],
[-5,0.1,-1.550798992821746],
[-5,0.2,-1.5308176396716067],
[-5,0.3,-1.5108681716736887],
[-5,0.499,-1.4713256980243883],
[-5,0.5,-1.4711276743037347],
[-5,0.666,-1.438375801152611],
[-5,0.75,-1.4219063791853994],
[-5,0.8,-1.4121410646084953],
[-5,0.9,-1.392703388563699],
[-5,1,-1.373400766945016],
[-5,1.1,-1.3542460218188073],
[-5,1.5,-1.2793395323170296],
[-5,1.99,-1.192015275782859],
[-5,2,-1.1902899496825317],
[-5,2.5,-1.1071487177940904],
[-5,3.1,-1.0158005994563097],
[-5,4.5,-0.83798122500839],
[-5,5,-0.7853981633974483],
[-5,10,-0.4636476090008061],
[-5,99,-0.05046217401685585],
[-5,99.5,-0.05020902228311121],
[-5,100,-0.04995839572194276],
[-5,1000,-0.0049999583339583225],
[-5,999999999,-5.000000005e-9],
[-4.5,-999999999,-3.141592649089793],
[-4.5,-1000,-3.137092683964424],
[-4.5,-100,-3.0966229917374655],
[-4.5,-99.5,-3.096397320368964],
[-4.5,-99,-3.096169374168216],
[-4.5,-10,-2.7187387274568526],
[-4.5,-5,-2.408777551803287],
[-4.5,-4.5,-2.356194490192345],
[-4.5,-3.1,-2.1740261797195815],
[-4.5,-2.5,-2.0778948311872334],
[-4.5,-2,-1.9890206563741257],
[-4.5,-1.99,-1.9871634566934766],
[-4.5,-1.5,-1.892546881191539],
[-4.5,-1.1,-1.8105394356653532],
[-4.5,-1,-1.7894652726688385],
[-4.5,-0.9,-1.7681918866447774],
[-4.5,-0.8,-1.7467359522474244],
[-4.5,-0.75,-1.7359450042095235],
[-4.5,-0.666,-1.7177297126279216],
[-4.5,-0.5,-1.6814535479687922],
[-4.5,-0.499,-1.6812340304231097],
[-4.5,-0.3,-1.6373644905707203],
[-4.5,-0.2,-1.6152115420418074],
[-4.5,-0.1,-1.5930148921216156],
[-4.5,-0.001,-1.571018549013461],
[-4.5,-0.00001,-1.5707985490171188],
[-4.5,0,-1.5707963267948966],
[-4.5,0.00001,-1.5707941045726743],
[-4.5,0.001,-1.5705741045763324],
[-4.5,0.1,-1.5485777614681775],
[-4.5,0.2,-1.5263811115479857],
[-4.5,0.3,-1.5042281630190728],
[-4.5,0.499,-1.4603586231666834],
[-4.5,0.5,-1.460139105621001],
[-4.5,0.666,-1.4238629409618717],
[-4.5,0.75,-1.4056476493802699],
[-4.5,0.8,-1.3948567013423687],
[-4.5,0.9,-1.373400766945016],
[-4.5,1,-1.3521273809209546],
[-4.5,1.1,-1.33105321792444],
[-4.5,1.5,-1.2490457723982544],
[-4.5,1.99,-1.1544291968963167],
[-4.5,2,-1.1525719972156676],
[-4.5,2.5,-1.0636978224025597],
[-4.5,3.1,-0.9675664738702118],
[-4.5,4.5,-0.7853981633974483],
[-4.5,5,-0.7328151017865066],
[-4.5,10,-0.4228539261329407],
[-4.5,99,-0.04542327942157701],
[-4.5,99.5,-0.04519533322082931],
[-4.5,100,-0.044969661852327585],
[-4.5,1000,-0.004499969625369051],
[-4.5,999999999,-4.5000000045e-9],
[-3.1,-999999999,-3.1415926504897933],
[-3.1,-1000,-3.1384926635200694],
[-3.1,-100,-3.110602578201224],
[-3.1,-99.5,-3.11044694961863],
[-3.1,-99,-3.110289750562308],
[-3.1,-10,-2.8409869835473978],
[-3.1,-5,-2.5865969262512065],
[-3.1,-4.5,-2.538362800665108],
[-3.1,-3.1,-2.356194490192345],
[-3.1,-2.5,-2.2494588175432093],
[-3.1,-2,-2.143762469683603],
[-3.1,-1.99,-2.1414813846039826],
[-3.1,-1.5,-2.0214576528755304],
[-3.1,-1.1,-1.911775280291246],
[-3.1,-1,-1.8828384483574299],
[-3.1,-0.9,-1.8533512792644842],
[-3.1,-0.8,-1.8233506025729562],
[-3.1,-0.75,-1.8081705737680673],
[-3.1,-0.666,-1.7824183176185104],
[-3.1,-0.5,-1.730709449953116],
[-3.1,-0.499,-1.730395032396663],
[-3.1,-0.3,-1.6672701019774836],
[-3.1,-0.2,-1.6352231662204502],
[-3.1,-0.1,-1.6030432092301505],
[-3.1,-0.001,-1.571118907428869],
[-3.1,-0.00001,-1.5707995526013483],
[-3.1,0,-1.5707963267948966],
[-3.1,0.00001,-1.570793100988445],
[-3.1,0.001,-1.5704737461609244],
[-3.1,0.1,-1.5385494443596428],
[-3.1,0.2,-1.5063694873693432],
[-3.1,0.3,-1.4743225516123097],
[-3.1,0.499,-1.41119762119313],
[-3.1,0.5,-1.4108832036366774],
[-3.1,0.666,-1.359174335971283],
[-3.1,0.75,-1.3334220798217258],
[-3.1,0.8,-1.3182420510168371],
[-3.1,0.9,-1.2882413743253092],
[-3.1,1,-1.2587542052323633],
[-3.1,1.1,-1.2298173732985471],
[-3.1,1.5,-1.120135000714263],
[-3.1,1.99,-1.0001112689858107],
[-3.1,2,-0.9978301839061905],
[-3.1,2.5,-0.8921338360465839],
[-3.1,3.1,-0.7853981633974483],
[-3.1,4.5,-0.6032298529246849],
[-3.1,5,-0.5549957273385868],
[-3.1,10,-0.3006056700423954],
[-3.1,99,-0.03130290302748527],
[-3.1,99.5,-0.031145703971163147],
[-3.1,100,-0.03099007538856943],
[-3.1,1000,-0.0030999900697239245],
[-3.1,999999999,-3.1000000031e-9],
[-2.5,-999999999,-3.1415926510897934],
[-2.5,-1000,-3.139092658798107],
[-2.5,-100,-3.1165978599708732],
[-2.5,-99.5,-3.116472310693441],
[-2.5,-99,-3.1163454940456314],
[-2.5,-10,-2.896613990462929],
[-2.5,-5,-2.677945044588987],
[-2.5,-4.5,-2.6344941491974563],
[-2.5,-3.1,-2.462930162841481],
[-2.5,-2.5,-2.356194490192345],
[-2.5,-2,-2.2455372690184494],
[-2.5,-1.99,-2.2430934811169356],
[-2.5,-1.5,-2.1112158270654806],
[-2.5,-1.1,-1.9853032013796825],
[-2.5,-1,-1.9513027039072615],
[-2.5,-0.9,-1.9163519073766087],
[-2.5,-0.8,-1.8804992713373527],
[-2.5,-0.75,-1.8622531212727638],
[-2.5,-0.666,-1.8311497393620424],
[-2.5,-0.5,-1.7681918866447774],
[-2.5,-0.499,-1.7678072416910569],
[-2.5,-0.3,-1.690225252813235],
[-2.5,-0.2,-1.6506263125071339],
[-2.5,-0.1,-1.6107750139181867],
[-2.5,-0.001,-1.5711963267735634],
[-2.5,-0.00001,-1.5708003267948967],
[-2.5,0,-1.5707963267948966],
[-2.5,0.00001,-1.5707923267948967],
[-2.5,0.001,-1.57039632681623],
[-2.5,0.1,-1.5308176396716067],
[-2.5,0.2,-1.4909663410826592],
[-2.5,0.3,-1.4513674007765582],
[-2.5,0.499,-1.3737854118987365],
[-2.5,0.5,-1.373400766945016],
[-2.5,0.666,-1.310442914227751],
[-2.5,0.75,-1.2793395323170296],
[-2.5,0.8,-1.2610933822524404],
[-2.5,0.9,-1.2252407462131845],
[-2.5,1,-1.1902899496825317],
[-2.5,1.1,-1.1562894522101106],
[-2.5,1.5,-1.0303768265243125],
[-2.5,1.99,-0.8984991724728577],
[-2.5,2,-0.8960553845713439],
[-2.5,2.5,-0.7853981633974483],
[-2.5,3.1,-0.6786624907483126],
[-2.5,4.5,-0.507098504392337],
[-2.5,5,-0.4636476090008061],
[-2.5,10,-0.24497866312686414],
[-2.5,99,-0.025247159544161922],
[-2.5,99.5,-0.02512034289635215],
[-2.5,100,-0.02499479361892016],
[-2.5,1000,-0.0024999947916861977],
[-2.5,999999999,-2.5000000025e-9],
[-2,-999999999,-3.1415926515897934],
[-2,-1000,-3.1395926562564536],
[-2,-100,-3.1215953196166426],
[-2,-99.5,-3.1214948574912023],
[-2,-99,-3.1213933810087253],
[-2,-10,-2.9441970937399127],
[-2,-5,-2.761086276477428],
[-2,-4.5,-2.723368324010564],
[-2,-3.1,-2.5686265107010873],
[-2,-2.5,-2.4668517113662407],
[-2,-2,-2.356194490192345],
[-2,-1.99,-2.3536882297757566],
[-2,-1.5,-2.214297435588181],
[-2,-1.1,-2.0736395377227574],
[-2,-1,-2.0344439357957027],
[-2,-0.9,-1.9936502529278373],
[-2,-0.8,-1.9513027039072615],
[-2,-0.75,-1.9295669970654687],
[-2,-0.666,-1.8922468511975412],
[-2,-0.5,-1.8157749899217608],
[-2,-0.499,-1.8153043463513807],
[-2,-0.3,-1.719686274404394],
[-2,-0.2,-1.6704649792860586],
[-2,-0.1,-1.6207547225168393],
[-2,-0.001,-1.57129632675323],
[-2,-0.00001,-1.5708013267948966],
[-2,0,-1.5707963267948966],
[-2,0.00001,-1.5707913267948967],
[-2,0.001,-1.5702963268365633],
[-2,0.1,-1.5208379310729538],
[-2,0.2,-1.4711276743037345],
[-2,0.3,-1.4219063791853994],
[-2,0.499,-1.3262883072384124],
[-2,0.5,-1.3258176636680326],
[-2,0.666,-1.249345802392252],
[-2,0.75,-1.2120256565243244],
[-2,0.8,-1.1902899496825317],
[-2,0.9,-1.1479424006619559],
[-2,1,-1.1071487177940904],
[-2,1.1,-1.0679531158670357],
[-2,1.5,-0.9272952180016122],
[-2,1.99,-0.7879044238140366],
[-2,2,-0.7853981633974483],
[-2,2.5,-0.6747409422235526],
[-2,3.1,-0.5729661428887062],
[-2,4.5,-0.4182243295792291],
[-2,5,-0.3805063771123649],
[-2,10,-0.19739555984988075],
[-2,99,-0.020199272581067927],
[-2,99.5,-0.02009779609859114],
[-2,100,-0.01999733397315053],
[-2,1000,-0.0019999973333397333],
[-2,999999999,-2.000000002e-9],
[-1.99,-999999999,-3.1415926515997934],
[-1.99,-1000,-3.1396026562166535],
[-1.99,-100,-3.121695279832144],
[-1.99,-99.5,-3.1215953196166426],
[-1.99,-99,-3.121494350107758],
[-1.99,-10,-2.945158816851757],
[-1.99,-5,-2.762811602577756],
[-1.99,-4.5,-2.725225523691213],
[-1.99,-3.1,-2.5709075957807075],
[-1.99,-2.5,-2.4692954992677545],
[-1.99,-2,-2.358700750608933],
[-1.99,-1.99,-2.356194490192345],
[-1.99,-1.5,-2.2167051355905714],
[-1.99,-1.1,-2.0757589950501107],
[-1.99,-1,-2.036451965225299],
[-1.99,-0.9,-1.9955291651217966],
[-1.99,-0.8,-1.9530343039081624],
[-1.99,-0.75,-1.9312180687627511],
[-1.99,-0.666,-1.89375242611686],
[-1.99,-0.5,-1.8169570224681748],
[-1.99,-0.499,-1.8164842935030088],
[-1.99,-0.3,-1.7204233750080014],
[-1.99,-0.2,-1.6709624916828218],
[-1.99,-0.1,-1.6210053490780079],
[-1.99,-0.001,-1.5712988393154128],
[-1.99,-0.00001,-1.5708013519205246],
[-1.99,0,-1.5707963267948966],
[-1.99,0.00001,-1.5707913016692685],
[-1.99,0.001,-1.5702938142743805],
[-1.99,0.1,-1.5205873045117855],
[-1.99,0.2,-1.4706301619069715],
[-1.99,0.3,-1.4211692785817918],
[-1.99,0.499,-1.3251083600867846],
[-1.99,0.5,-1.3246356311216183],
[-1.99,0.666,-1.2478402274729334],
[-1.99,0.75,-1.2103745848270422],
[-1.99,0.8,-1.1885583496816308],
[-1.99,0.9,-1.1460634884679968],
[-1.99,1,-1.1051406883644943],
[-1.99,1.1,-1.0658336585396824],
[-1.99,1.5,-0.9248875179992219],
[-1.99,1.99,-0.7853981633974483],
[-1.99,2,-0.7828919029808601],
[-1.99,2.5,-0.6722971543220388],
[-1.99,3.1,-0.5706850578090858],
[-1.99,4.5,-0.41636712989858],
[-1.99,5,-0.3787810510120375],
[-1.99,10,-0.19643383673803597],
[-1.99,99,-0.020098303482035014],
[-1.99,99.5,-0.01999733397315053],
[-1.99,100,-0.01989737375764937],
[-1.99,1000,-0.001989997373139908],
[-1.99,999999999,-1.99000000199e-9],
[-1.5,-999999999,-3.1415926520897934],
[-1.5,-1000,-3.140092654714792],
[-1.5,-100,-3.1265937784379427],
[-1.5,-99.5,-3.126518418594834],
[-1.5,-99,-3.1264422977150232],
[-1.5,-10,-2.992702705980296],
[-1.5,-5,-2.8501358591119264],
[-1.5,-4.5,-2.819842099193151],
[-1.5,-3.1,-2.6909313275091598],
[-1.5,-2.5,-2.601173153319209],
[-1.5,-2,-2.498091544796509],
[-1.5,-1.99,-2.4956838447941183],
[-1.5,-1.5,-2.356194490192345],
[-1.5,-1.1,-2.20354516179708],
[-1.5,-1,-2.158798930342464],
[-1.5,-0.9,-2.1112158270654806],
[-1.5,-0.8,-2.060753653048625],
[-1.5,-0.75,-2.0344439357957027],
[-1.5,-0.666,-1.9886494611424734],
[-1.5,-0.5,-1.892546881191539],
[-1.5,-0.499,-1.8919467612395773],
[-1.5,-0.3,-1.7681918866447774],
[-1.5,-0.2,-1.7033478590915707],
[-1.5,-0.1,-1.6373644905707205],
[-1.5,-0.001,-1.571462993362798],
[-1.5,-0.00001,-1.5708029934615633],
[-1.5,0,-1.5707963267948966],
[-1.5,0.00001,-1.57078966012823],
[-1.5,0.001,-1.5701296602269954],
[-1.5,0.1,-1.5042281630190728],
[-1.5,0.2,-1.4382447944982226],
[-1.5,0.3,-1.373400766945016],
[-1.5,0.499,-1.249645892350216],
[-1.5,0.5,-1.2490457723982544],
[-1.5,0.666,-1.15294319244732],
[-1.5,0.75,-1.1071487177940904],
[-1.5,0.8,-1.0808390005411683],
[-1.5,0.9,-1.0303768265243125],
[-1.5,1,-0.982793723247329],
[-1.5,1.1,-0.9380474917927134],
[-1.5,1.5,-0.7853981633974483],
[-1.5,1.99,-0.6459088087956748],
[-1.5,2,-0.6435011087932844],
[-1.5,2.5,-0.5404195002705842],
[-1.5,3.1,-0.45066132608063364],
[-1.5,4.5,-0.3217505543966422],
[-1.5,5,-0.2914567944778671],
[-1.5,10,-0.14888994760949725],
[-1.5,99,-0.015150355874769811],
[-1.5,99.5,-0.015074234994959463],
[-1.5,100,-0.014998875151850596],
[-1.5,1000,-0.0014999988750015187],
[-1.5,999999999,-1.5000000015e-9],
[-1.1,-999999999,-3.141592652489793],
[-1.1,-1000,-3.1404926540334595],
[-1.1,-100,-3.1305930972242524],
[-1.1,-99.5,-3.1305378275636344],
[-1.1,-99,-3.1304819996921855],
[-1.1,-10,-3.0320331268158487],
[-1.1,-5,-2.925042348613704],
[-1.1,-4.5,-2.9018495447193366],
[-1.1,-3.1,-2.800613700093444],
[-1.1,-2.5,-2.7270857790050074],
[-1.1,-2,-2.6387494426619322],
[-1.1,-1.99,-2.636629985334579],
[-1.1,-1.5,-2.50884381858761],
[-1.1,-1.1,-2.356194490192345],
[-1.1,-1,-2.3086113869153615],
[-1.1,-0.9,-2.256525837701183],
[-1.1,-0.8,-2.1995926132103296],
[-1.1,-0.75,-2.1692152202734336],
[-1.1,-0.666,-2.1152168726664637],
[-1.1,-0.5,-1.9974238199217726],
[-1.1,-0.499,-1.9966701372964082],
[-1.1,-0.3,-1.837048375945822],
[-1.1,-0.2,-1.750649826587375],
[-1.1,-0.1,-1.6614562139956417],
[-1.1,-0.001,-1.5717054174535494],
[-1.1,-0.00001,-1.5708054177039872],
[-1.1,0,-1.5707963267948966],
[-1.1,0.00001,-1.570787235885806],
[-1.1,0.001,-1.569887236136244],
[-1.1,0.1,-1.4801364395941514],
[-1.1,0.2,-1.3909428270024184],
[-1.1,0.3,-1.3045442776439713],
[-1.1,0.499,-1.1449225162933852],
[-1.1,0.5,-1.1441688336680205],
[-1.1,0.666,-1.0263757809233296],
[-1.1,0.75,-0.9723774333163594],
[-1.1,0.8,-0.9420000403794637],
[-1.1,0.9,-0.8850668158886104],
[-1.1,1,-0.8329812666744317],
[-1.1,1.1,-0.7853981633974483],
[-1.1,1.5,-0.6327488350021832],
[-1.1,1.99,-0.5049626682552143],
[-1.1,2,-0.5028432109278609],
[-1.1,2.5,-0.41450687458478597],
[-1.1,3.1,-0.34097895349634944],
[-1.1,4.5,-0.2397431088704566],
[-1.1,5,-0.2165503049760893],
[-1.1,10,-0.10955952677394436],
[-1.1,99,-0.011110653897607474],
[-1.1,99.5,-0.011054826026158903],
[-1.1,100,-0.010999556365540751],
[-1.1,1000,-0.0010999995563336555],
[-1.1,999999999,-1.1000000011e-9],
[-1,-999999999,-3.141592652589793],
[-1,-1000,-3.1405926539231266],
[-1,-100,-3.131592986903128],
[-1,-99.5,-3.131542740696759],
[-1,-99,-3.1314919870044715],
[-1,-10,-3.0419240010986313],
[-1,-5,-2.9441970937399127],
[-1,-4.5,-2.922923707715851],
[-1,-3.1,-2.82955053202726],
[-1,-2.5,-2.761086276477428],
[-1,-2,-2.677945044588987],
[-1,-1.99,-2.675937015159391],
[-1,-1.5,-2.5535900500422257],
[-1,-1.1,-2.403777593469328],
[-1,-1,-2.356194490192345],
[-1,-0.9,-2.3036114285814033],
[-1,-0.8,-2.2455372690184494],
[-1,-0.75,-2.214297435588181],
[-1,-0.666,-2.1583372498581843],
[-1,-0.5,-2.0344439357957027],
[-1,-0.499,-2.033643615838523],
[-1,-0.3,-1.8622531212727638],
[-1,-0.2,-1.7681918866447774],
[-1,-0.1,-1.6704649792860586],
[-1,-0.001,-1.5717963264615635],
[-1,-0.00001,-1.5708063267948962],
[-1,0,-1.5707963267948966],
[-1,0.00001,-1.570786326794897],
[-1,0.001,-1.5697963271282298],
[-1,0.1,-1.4711276743037345],
[-1,0.2,-1.373400766945016],
[-1,0.3,-1.2793395323170296],
[-1,0.499,-1.1079490377512702],
[-1,0.5,-1.1071487177940904],
[-1,0.666,-0.983255403731609],
[-1,0.75,-0.9272952180016122],
[-1,0.8,-0.8960553845713439],
[-1,0.9,-0.83798122500839],
[-1,1,-0.7853981633974483],
[-1,1.1,-0.7378150601204648],
[-1,1.5,-0.5880026035475675],
[-1,1.99,-0.4656556384304023],
[-1,2,-0.4636476090008061],
[-1,2.5,-0.3805063771123649],
[-1,3.1,-0.3120421215625333],
[-1,4.5,-0.21866894587394195],
[-1,5,-0.19739555984988075],
[-1,10,-0.09966865249116202],
[-1,99,-0.010100666585321907],
[-1,99.5,-0.010049912893034368],
[-1,100,-0.009999666686665238],
[-1,1000,-0.0009999996666668666],
[-1,999999999,-1.000000001e-9],
[-0.9,-999999999,-3.141592652689793],
[-0.9,-1000,-3.1406926538327933],
[-0.9,-100,-3.132592896577984],
[-0.9,-99.5,-3.132547674128787],
[-0.9,-99,-3.1325019949247332],
[-0.9,-10,-3.051834479399843],
[-0.9,-5,-2.9634997153585956],
[-0.9,-4.5,-2.9441970937399127],
[-0.9,-3.1,-2.8590377011202057],
[-0.9,-2.5,-2.796037073008081],
[-0.9,-2,-2.7187387274568526],
[-0.9,-1.99,-2.7168598152628936],
[-0.9,-1.5,-2.601173153319209],
[-0.9,-1.1,-2.455863142683507],
[-0.9,-1,-2.408777551803287],
[-0.9,-0.9,-2.356194490192345],
[-0.9,-0.8,-2.297438667476622],
[-0.9,-0.75,-2.2655346029916],
[-0.9,-0.666,-2.20786665607058],
[-0.9,-0.5,-2.0778948311872334],
[-0.9,-0.499,-2.0770453741003747],
[-0.9,-0.3,-1.8925468811915387],
[-0.9,-0.2,-1.7894652726688385],
[-0.9,-0.1,-1.6814535479687922],
[-0.9,-0.001,-1.5719074374487607],
[-0.9,-0.00001,-1.5708074379060073],
[-0.9,0,-1.5707963267948966],
[-0.9,0.00001,-1.570785215683786],
[-0.9,0.001,-1.5696852161410326],
[-0.9,0.1,-1.460139105621001],
[-0.9,0.2,-1.3521273809209546],
[-0.9,0.3,-1.2490457723982544],
[-0.9,0.499,-1.0645472794894184],
[-0.9,0.5,-1.0636978224025597],
[-0.9,0.666,-0.933725997519213],
[-0.9,0.75,-0.8760580505981934],
[-0.9,0.8,-0.8441539861131709],
[-0.9,0.9,-0.7853981633974483],
[-0.9,1,-0.7328151017865066],
[-0.9,1.1,-0.6857295109062862],
[-0.9,1.5,-0.5404195002705842],
[-0.9,1.99,-0.4247328383268999],
[-0.9,2,-0.4228539261329407],
[-0.9,2.5,-0.34555558058171215],
[-0.9,3.1,-0.2825549524695875],
[-0.9,4.5,-0.19739555984988078],
[-0.9,5,-0.17809293823119757],
[-0.9,10,-0.08975817418995052],
[-0.9,99,-0.009090658665059818],
[-0.9,99.5,-0.00904497946100604],
[-0.9,100,-0.008999757011809117],
[-0.9,1000,-0.0008999997570001181],
[-0.9,999999999,-9.000000009e-10],
[-0.8,-999999999,-3.141592652789793],
[-0.8,-1000,-3.14079265376046],
[-0.8,-100,-3.1335928242499067],
[-0.8,-99.5,-3.13355262583053],
[-0.8,-99,-3.1335120213928933],
[-0.8,-10,-3.061762667877556],
[-0.8,-5,-2.9829373914033916],
[-0.8,-4.5,-2.9656530281372655],
[-0.8,-3.1,-2.8890383778117337],
[-0.8,-2.5,-2.831889709047337],
[-0.8,-2,-2.761086276477428],
[-0.8,-1.99,-2.7593546764765273],
[-0.8,-1.5,-2.651635327336065],
[-0.8,-1.1,-2.5127963671743605],
[-0.8,-1,-2.4668517113662407],
[-0.8,-0.9,-2.4149503129080676],
[-0.8,-0.8,-2.356194490192345],
[-0.8,-0.75,-2.323947607757091],
[-0.8,-0.666,-2.26504259811125],
[-0.8,-0.5,-2.129395642138459],
[-0.8,-0.499,-2.12849626070586],
[-0.8,-0.3,-1.9295669970654687],
[-0.8,-0.2,-1.8157749899217608],
[-0.8,-0.1,-1.695151321341658],
[-0.8,-0.001,-1.5720463261438555],
[-0.8,-0.00001,-1.5708088267948959],
[-0.8,0,-1.5707963267948966],
[-0.8,0.00001,-1.5707838267948973],
[-0.8,0.001,-1.5695463274459376],
[-0.8,0.1,-1.446441332248135],
[-0.8,0.2,-1.3258176636680326],
[-0.8,0.3,-1.2120256565243244],
[-0.8,0.499,-1.0130963928839332],
[-0.8,0.5,-1.0121970114513341],
[-0.8,0.666,-0.8765500554785429],
[-0.8,0.75,-0.8176450458327023],
[-0.8,0.8,-0.7853981633974483],
[-0.8,0.9,-0.7266423406817256],
[-0.8,1,-0.6747409422235527],
[-0.8,1.1,-0.628796286415433],
[-0.8,1.5,-0.48995732625372834],
[-0.8,1.99,-0.38223797711326585],
[-0.8,2,-0.3805063771123649],
[-0.8,2.5,-0.3097029445424562],
[-0.8,3.1,-0.25255427577805956],
[-0.8,4.5,-0.17593962545252784],
[-0.8,5,-0.1586552621864014],
[-0.8,10,-0.07982998571223732],
[-0.8,99,-0.008080632196899808],
[-0.8,99.5,-0.008040027759263131],
[-0.8,100,-0.007999829339886634],
[-0.8,1000,-0.000799999829333399],
[-0.8,999999999,-8.000000008e-10],
[-0.75,-999999999,-3.141592652839793],
[-0.75,-1000,-3.1408426537304184],
[-0.75,-100,-3.1340927942100474],
[-0.75,-99.5,-3.134055107898362],
[-0.75,-99,-3.134017040938598],
[-0.75,-10,-3.066732805879026],
[-0.75,-5,-2.992702705980296],
[-0.75,-4.5,-2.976443976175166],
[-0.75,-3.1,-2.9042184066166223],
[-0.75,-2.5,-2.8501358591119264],
[-0.75,-2,-2.782821983319221],
[-0.75,-1.99,-2.7811709116219387],
[-0.75,-1.5,-2.677945044588987],
[-0.75,-1.1,-2.543173760111256],
[-0.75,-1,-2.498091544796509],
[-0.75,-0.9,-2.44685437739309],
[-0.75,-0.8,-2.388441372627599],
[-0.75,-0.75,-2.356194490192345],
[-0.75,-0.666,-2.296941896528913],
[-0.75,-0.5,-2.158798930342464],
[-0.75,-0.499,-2.1578752852849274],
[-0.75,-0.3,-1.9513027039072615],
[-0.75,-0.2,-1.8313987185422376],
[-0.75,-0.1,-1.7033478590915707],
[-0.75,-0.001,-1.5721296593381073],
[-0.75,-0.00001,-1.570809660128229],
[-0.75,0,-1.5707963267948966],
[-0.75,0.00001,-1.570782993461564],
[-0.75,0.001,-1.569462994251686],
[-0.75,0.1,-1.4382447944982226],
[-0.75,0.2,-1.3101939350475555],
[-0.75,0.3,-1.1902899496825317],
[-0.75,0.499,-0.9837173683048659],
[-0.75,0.5,-0.982793723247329],
[-0.75,0.666,-0.8446507570608807],
[-0.75,0.75,-0.7853981633974483],
[-0.75,0.8,-0.7531512809621944],
[-0.75,0.9,-0.6947382761967031],
[-0.75,1,-0.6435011087932844],
[-0.75,1.1,-0.5984188934785372],
[-0.75,1.5,-0.4636476090008061],
[-0.75,1.99,-0.3604217419678544],
[-0.75,2,-0.35877067027057225],
[-0.75,2.5,-0.2914567944778671],
[-0.75,3.1,-0.2373742469731708],
[-0.75,4.5,-0.16514867741462683],
[-0.75,5,-0.14888994760949725],
[-0.75,10,-0.07485984771076686],
[-0.75,99,-0.007575612651195415],
[-0.75,99.5,-0.007537545691431545],
[-0.75,100,-0.007499859379745903],
[-0.75,1000,-0.0007499998593750475],
[-0.75,999999999,-7.5000000075e-10],
[-0.666,-999999999,-3.1415926529237934],
[-0.666,-1000,-3.1409266536882625],
[-0.666,-100,-3.1349327520566046],
[-0.666,-99.5,-3.1348992862117906],
[-0.666,-99,-3.1348654823433613],
[-0.666,-10,-3.0750908617889694],
[-0.666,-5,-3.0091721279475077],
[-0.666,-4.5,-2.9946592677567683],
[-0.666,-3.1,-2.9299706627661797],
[-0.666,-2.5,-2.8812392410226475],
[-0.666,-2,-2.8201421291871487],
[-0.666,-1.99,-2.81863655426783],
[-0.666,-1.5,-2.7237395192422165],
[-0.666,-1.1,-2.597172107718226],
[-0.666,-1,-2.554051730526506],
[-0.666,-0.9,-2.5045223243141095],
[-0.666,-0.8,-2.4473463822734396],
[-0.666,-0.75,-2.4154470838557773],
[-0.666,-0.666,-2.356194490192345],
[-0.666,-0.5,-2.2147777429479802],
[-0.666,-0.499,-2.213816781936179],
[-0.666,-0.3,-1.994024784745531],
[-0.666,-0.2,-1.8625286033594588],
[-0.666,-0.1,-1.719833117281459],
[-0.666,-0.001,-1.572297827168018],
[-0.666,-0.00001,-1.5708113418099106],
[-0.666,0,-1.5707963267948966],
[-0.666,0.00001,-1.5707813117798828],
[-0.666,0.001,-1.5692948264217754],
[-0.666,0.1,-1.4217595363083344],
[-0.666,0.2,-1.2790640502303345],
[-0.666,0.3,-1.1475678688442623],
[-0.666,0.499,-0.9277758716536145],
[-0.666,0.5,-0.9268149106418132],
[-0.666,0.666,-0.7853981633974483],
[-0.666,0.75,-0.726145569734016],
[-0.666,0.8,-0.6942462713163536],
[-0.666,0.9,-0.6370703292756836],
[-0.666,1,-0.5875409230632876],
[-0.666,1.1,-0.5444205458715671],
[-0.666,1.5,-0.4178531343475768],
[-0.666,1.99,-0.32295609932196323],
[-0.666,2,-0.3214505244026446],
[-0.666,2.5,-0.26035341256714567],
[-0.666,3.1,-0.21162199082361374],
[-0.666,4.5,-0.14693338583302493],
[-0.666,5,-0.13242052564228543],
[-0.666,10,-0.06650179180082404],
[-0.666,99,-0.006727171246432002],
[-0.666,99.5,-0.006693367378002532],
[-0.666,100,-0.00665990153318852],
[-0.666,1000,-0.0006659999015305942],
[-0.666,999999999,-6.66000000666e-10],
[-0.5,-999999999,-3.141592653089793],
[-0.5,-1000,-3.14109265363146],
[-0.5,-100,-3.136592695255835],
[-0.5,-99.5,-3.136567570258981],
[-0.5,-99,-3.1365421914807206],
[-0.5,-10,-3.0916342578678506],
[-0.5,-5,-3.0419240010986313],
[-0.5,-4.5,-3.0309354324158977],
[-0.5,-3.1,-2.981679530431574],
[-0.5,-2.5,-2.9441970937399127],
[-0.5,-2,-2.896613990462929],
[-0.5,-1.99,-2.895431957916515],
[-0.5,-1.5,-2.819842099193151],
[-0.5,-1.1,-2.714965160462917],
[-0.5,-1,-2.677945044588987],
[-0.5,-0.9,-2.6344941491974563],
[-0.5,-0.8,-2.5829933382462307],
[-0.5,-0.75,-2.5535900500422257],
[-0.5,-0.666,-2.49761123743671],
[-0.5,-0.5,-2.356194490192345],
[-0.5,-0.499,-2.355193489525679],
[-0.5,-0.3,-2.1112158270654806],
[-0.5,-0.2,-1.9513027039072615],
[-0.5,-0.1,-1.7681918866447774],
[-0.5,-0.001,-1.5727963241282363],
[-0.5,-0.00001,-1.570816326794894],
[-0.5,0,-1.5707963267948966],
[-0.5,0.00001,-1.5707763267948993],
[-0.5,0.001,-1.5687963294615568],
[-0.5,0.1,-1.373400766945016],
[-0.5,0.2,-1.1902899496825317],
[-0.5,0.3,-1.0303768265243125],
[-0.5,0.499,-0.7863991640641141],
[-0.5,0.5,-0.7853981633974483],
[-0.5,0.666,-0.6439814161530834],
[-0.5,0.75,-0.5880026035475675],
[-0.5,0.8,-0.5585993153435624],
[-0.5,0.9,-0.507098504392337],
[-0.5,1,-0.4636476090008061],
[-0.5,1.1,-0.42662749312687603],
[-0.5,1.5,-0.3217505543966422],
[-0.5,1.99,-0.24616069567327822],
[-0.5,2,-0.24497866312686414],
[-0.5,2.5,-0.19739555984988075],
[-0.5,3.1,-0.15991312315821926],
[-0.5,4.5,-0.11065722117389565],
[-0.5,5,-0.09966865249116202],
[-0.5,10,-0.04995839572194276],
[-0.5,99,-0.005050462109072576],
[-0.5,99.5,-0.005025083330812411],
[-0.5,100,-0.0049999583339583225],
[-0.5,1000,-0.0004999999583333395],
[-0.5,999999999,-5.000000005e-10],
[-0.499,-999999999,-3.141592653090793],
[-0.499,-1000,-3.14109365363121],
[-0.499,-100,-3.136602695006341],
[-0.499,-99.5,-3.136577620256963],
[-0.499,-99,-3.1365522922336906],
[-0.499,-10,-3.091734008988473],
[-0.499,-5,-3.042122024819285],
[-0.499,-4.5,-3.03115494996158],
[-0.499,-3.1,-2.981993947988027],
[-0.499,-2.5,-2.9445817386936333],
[-0.499,-2,-2.897084634033309],
[-0.499,-1.99,-2.895904686881681],
[-0.499,-1.5,-2.8204422191451126],
[-0.499,-1.1,-2.7157188430882817],
[-0.499,-1,-2.6787453645461667],
[-0.499,-0.9,-2.635343606284315],
[-0.499,-0.8,-2.58389271967883],
[-0.499,-0.75,-2.5545136950997627],
[-0.499,-0.666,-2.498572198448511],
[-0.499,-0.5,-2.3571954908590107],
[-0.499,-0.499,-2.356194490192345],
[-0.499,-0.3,-2.1120994792655274],
[-0.499,-0.2,-1.9519935500840564],
[-0.499,-0.1,-1.768577243080423],
[-0.499,-0.001,-1.5728003321282042],
[-0.499,-0.00001,-1.5708163668750543],
[-0.499,0,-1.5707963267948966],
[-0.499,0.00001,-1.570776286714739],
[-0.499,0.001,-1.5687923214615889],
[-0.499,0.1,-1.3730154105093704],
[-0.499,0.2,-1.189599103505737],
[-0.499,0.3,-1.0294931743242657],
[-0.499,0.499,-0.7853981633974483],
[-0.499,0.5,-0.7843971627307824],
[-0.499,0.666,-0.6430204551412821],
[-0.499,0.75,-0.5870789584900307],
[-0.499,0.8,-0.5576999339109634],
[-0.499,0.9,-0.5062490473054783],
[-0.499,1,-0.4628472890436265],
[-0.499,1.1,-0.4258738105015115],
[-0.499,1.5,-0.3211504344446806],
[-0.499,1.99,-0.24568796670811216],
[-0.499,2,-0.24450801955648416],
[-0.499,2.5,-0.19701091489616018],
[-0.499,3.1,-0.15959870560176648],
[-0.499,4.5,-0.11043770362821316],
[-0.499,5,-0.09947062877050837],
[-0.499,10,-0.04985864460132039],
[-0.499,99,-0.005040361356102597],
[-0.499,99.5,-0.005015033332830324],
[-0.499,100,-0.0049899585834524305],
[-0.499,1000,-0.0004989999585828398],
[-0.499,999999999,-4.99000000499e-10],
[-0.3,-999999999,-3.141592653289793],
[-0.3,-1000,-3.1412926535987933],
[-0.3,-100,-3.1385926625897445],
[-0.3,-99.5,-3.13857758734922],
[-0.3,-99,-3.1385623598349306],
[-0.3,-10,-3.1116016487329152],
[-0.3,-5,-3.0816644984685855],
[-0.3,-4.5,-3.0750244898139694],
[-0.3,-3.1,-3.0451188784072065],
[-0.3,-2.5,-3.0221637275714546],
[-0.3,-2,-2.992702705980296],
[-0.3,-1.99,-2.9919656053766883],
[-0.3,-1.5,-2.9441970937399127],
[-0.3,-1.1,-2.875340604438868],
[-0.3,-1,-2.8501358591119264],
[-0.3,-0.9,-2.819842099193151],
[-0.3,-0.8,-2.782821983319221],
[-0.3,-0.75,-2.761086276477428],
[-0.3,-0.666,-2.718364195639159],
[-0.3,-0.5,-2.601173153319209],
[-0.3,-0.499,-2.6002895011191622],
[-0.3,-0.3,-2.356194490192345],
[-0.3,-0.2,-2.1587989303424644],
[-0.3,-0.1,-1.892546881191539],
[-0.3,-0.001,-1.5741296477826332],
[-0.3,-0.00001,-1.5708296601282177],
[-0.3,0,-1.5707963267948966],
[-0.3,0.00001,-1.5707629934615757],
[-0.3,0.001,-1.56746300580716],
[-0.3,0.1,-1.2490457723982544],
[-0.3,0.2,-0.982793723247329],
[-0.3,0.3,-0.7853981633974483],
[-0.3,0.499,-0.5413031524706309],
[-0.3,0.5,-0.5404195002705842],
[-0.3,0.666,-0.4232284579506343],
[-0.3,0.75,-0.38050637711236485],
[-0.3,0.8,-0.3587706702705722],
[-0.3,0.9,-0.3217505543966422],
[-0.3,1,-0.2914567944778671],
[-0.3,1.1,-0.2662520491509253],
[-0.3,1.5,-0.19739555984988075],
[-0.3,1.99,-0.1496270482131048],
[-0.3,2,-0.14888994760949725],
[-0.3,2.5,-0.11942892601833845],
[-0.3,3.1,-0.0964737751825869],
[-0.3,4.5,-0.06656816377582381],
[-0.3,5,-0.05992815512120788],
[-0.3,10,-0.0299910048568779],
[-0.3,99,-0.0030302937548627655],
[-0.3,99.5,-0.00301506624057292],
[-0.3,100,-0.0029999910000485996],
[-0.3,1000,-0.0002999999910000005],
[-0.3,999999999,-3.000000003e-10],
[-0.2,-999999999,-3.141592653389793],
[-0.2,-1000,-3.14139265359246],
[-0.2,-100,-3.1395926562564536],
[-0.2,-99.5,-3.1395826060456002],
[-0.2,-99,-3.1395724543178782],
[-0.2,-10,-3.1215953196166426],
[-0.2,-5,-3.1016139664665032],
[-0.2,-4.5,-3.0971774383428823],
[-0.2,-3.1,-3.0771658141642395],
[-0.2,-2.5,-3.061762667877556],
[-0.2,-2,-3.0419240010986313],
[-0.2,-1.99,-3.0414264887018683],
[-0.2,-1.5,-3.0090411212931194],
[-0.2,-1.1,-2.961739153797315],
[-0.2,-1,-2.9441970937399127],
[-0.2,-0.9,-2.922923707715851],
[-0.2,-0.8,-2.896613990462929],
[-0.2,-0.75,-2.8809902618424523],
[-0.2,-0.666,-2.849860377025231],
[-0.2,-0.5,-2.761086276477428],
[-0.2,-0.499,-2.7603954303006337],
[-0.2,-0.3,-2.5535900500422257],
[-0.2,-0.2,-2.356194490192345],
[-0.2,-0.1,-2.0344439357957027],
[-0.2,-0.001,-1.575796285128855],
[-0.2,-0.00001,-1.570846326794855],
[-0.2,0,-1.5707963267948966],
[-0.2,0.00001,-1.5707463267949382],
[-0.2,0.001,-1.5657963684609384],
[-0.2,0.1,-1.1071487177940904],
[-0.2,0.2,-0.7853981633974483],
[-0.2,0.3,-0.5880026035475676],
[-0.2,0.499,-0.3811972232891597],
[-0.2,0.5,-0.3805063771123649],
[-0.2,0.666,-0.2917322765645622],
[-0.2,0.75,-0.260602391747341],
[-0.2,0.8,-0.24497866312686414],
[-0.2,0.9,-0.21866894587394198],
[-0.2,1,-0.19739555984988078],
[-0.2,1.1,-0.17985349979247828],
[-0.2,1.5,-0.13255153229667402],
[-0.2,1.99,-0.10016616488792512],
[-0.2,2,-0.09966865249116204],
[-0.2,2.5,-0.07982998571223732],
[-0.2,3.1,-0.06442683942555355],
[-0.2,4.5,-0.04441521524691084],
[-0.2,5,-0.039978687123290044],
[-0.2,10,-0.019997333973150535],
[-0.2,99,-0.002020199271915011],
[-0.2,99.5,-0.002010047544192819],
[-0.2,100,-0.0019999973333397333],
[-0.2,1000,-0.0001999999973333334],
[-0.2,999999999,-2.000000002e-10],
[-0.1,-999999999,-3.141592653489793],
[-0.1,-1000,-3.1414926535901264],
[-0.1,-100,-3.1405926539231266],
[-0.1,-99.5,-3.1405876288025487],
[-0.1,-99,-3.1405825529232287],
[-0.1,-10,-3.131592986903128],
[-0.1,-5,-3.1215953196166426],
[-0.1,-4.5,-3.1193740882630743],
[-0.1,-3.1,-3.109345771154539],
[-0.1,-2.5,-3.1016139664665032],
[-0.1,-2,-3.0916342578678506],
[-0.1,-1.99,-3.091383631306682],
[-0.1,-1.5,-3.0750244898139694],
[-0.1,-1.1,-3.050932766389048],
[-0.1,-1,-3.0419240010986313],
[-0.1,-0.9,-3.0309354324158977],
[-0.1,-0.8,-3.017237659043032],
[-0.1,-0.75,-3.0090411212931194],
[-0.1,-0.666,-2.992555863103231],
[-0.1,-0.5,-2.9441970937399127],
[-0.1,-0.499,-2.943811737304267],
[-0.1,-0.3,-2.819842099193151],
[-0.1,-0.2,-2.677945044588987],
[-0.1,-0.1,-2.356194490192345],
[-0.1,-0.001,-1.5807959934815619],
[-0.1,-0.00001,-1.5708963267945633],
[-0.1,0,-1.5707963267948966],
[-0.1,0.00001,-1.5706963267952299],
[-0.1,0.001,-1.5607966601082315],
[-0.1,0.1,-0.7853981633974483],
[-0.1,0.2,-0.4636476090008061],
[-0.1,0.3,-0.32175055439664224],
[-0.1,0.499,-0.1977809162855263],
[-0.1,0.5,-0.19739555984988078],
[-0.1,0.666,-0.1490367904865622],
[-0.1,0.75,-0.13255153229667402],
[-0.1,0.8,-0.12435499454676144],
[-0.1,0.9,-0.11065722117389565],
[-0.1,1,-0.09966865249116204],
[-0.1,1.1,-0.09065988720074511],
[-0.1,1.5,-0.06656816377582381],
[-0.1,1.99,-0.050209022283111214],
[-0.1,2,-0.049958395721942765],
[-0.1,2.5,-0.039978687123290044],
[-0.1,3.1,-0.03224688243525392],
[-0.1,4.5,-0.02221856532671906],
[-0.1,5,-0.019997333973150535],
[-0.1,10,-0.00999966668666524],
[-0.1,99,-0.0010101006665645031],
[-0.1,99.5,-0.0010050247872445926],
[-0.1,100,-0.0009999996666668668],
[-0.1,1000,-0.00009999999966666667],
[-0.1,999999999,-1.000000001e-10],
[-0.001,-999999999,-3.141592653588793],
[-0.001,-1000,-3.1415916535897934],
[-0.001,-100,-3.1415826535897935],
[-0.001,-99.5,-3.1415826033385374],
[-0.001,-99,-3.1415825525796928],
[-0.001,-10,-3.1414926535901264],
[-0.001,-5,-3.14139265359246],
[-0.001,-4.5,-3.141370431371229],
[-0.001,-3.1,-3.141270072955821],
[-0.001,-2.5,-3.1411926536111268],
[-0.001,-2,-3.14109265363146],
[-0.001,-1.99,-3.1410901410692773],
[-0.001,-1.5,-3.140925987021892],
[-0.001,-1.1,-3.1406835629311405],
[-0.001,-1,-3.1405926539231266],
[-0.001,-0.9,-3.140481542935929],
[-0.001,-0.8,-3.1403426542408344],
[-0.001,-0.75,-3.1402593210465826],
[-0.001,-0.666,-3.1400911532166718],
[-0.001,-0.5,-3.1395926562564536],
[-0.001,-0.499,-3.1395886482564856],
[-0.001,-0.3,-3.1382593326020567],
[-0.001,-0.2,-3.136592695255835],
[-0.001,-0.1,-3.131592986903128],
[-0.001,-0.001,-2.356194490192345],
[-0.001,-0.00001,-1.5807959934815619],
[-0.001,0,-1.5707963267948966],
[-0.001,0.00001,-1.5607966601082315],
[-0.001,0.001,-0.7853981633974483],
[-0.001,0.1,-0.009999666686665238],
[-0.001,0.2,-0.004999958333958322],
[-0.001,0.3,-0.003333320987736625],
[-0.001,0.499,-0.002004005333307648],
[-0.001,0.5,-0.0019999973333397333],
[-0.001,0.666,-0.0015015003731212665],
[-0.001,0.75,-0.0013333325432107195],
[-0.001,0.8,-0.0012499993489589437],
[-0.001,0.9,-0.001111110653864079],
[-0.001,1,-0.0009999996666668668],
[-0.001,1.1,-0.0009090906586527662],
[-0.001,1.5,-0.000666666567901261],
[-0.001,1.99,-0.0005025125205161076],
[-0.001,2,-0.0004999999583333395],
[-0.001,2.5,-0.0003999999786666687],
[-0.001,3.1,-0.00032258063397222947],
[-0.001,4.5,-0.00022222221856424337],
[-0.001,5,-0.0001999999973333334],
[-0.001,10,-0.00009999999966666667],
[-0.001,99,-0.000010101010100666565],
[-0.001,99.5,-0.000010050251255943023],
[-0.001,100,-0.000009999999999666666],
[-0.001,1000,-9.999999999996666e-7],
[-0.001,999999999,-1.000000001e-12],
[-0.00001,-999999999,-3.1415926535897833],
[-0.00001,-1000,-3.141592643589793],
[-0.00001,-100,-3.1415925535897933],
[-0.00001,-99.5,-3.1415925530872806],
[-0.00001,-99,-3.1415925525796924],
[-0.00001,-10,-3.1415916535897934],
[-0.00001,-5,-3.1415906535897933],
[-0.00001,-4.5,-3.141590431367571],
[-0.00001,-3.1,-3.141589427783342],
[-0.00001,-2.5,-3.1415886535897934],
[-0.00001,-2,-3.1415876535897933],
[-0.00001,-1.99,-3.141587628464165],
[-0.00001,-1.5,-3.141585986923127],
[-0.00001,-1.1,-3.1415835626807027],
[-0.00001,-1,-3.1415826535897935],
[-0.00001,-0.9,-3.1415815424786824],
[-0.00001,-0.8,-3.141580153589794],
[-0.00001,-0.75,-3.1415793202564606],
[-0.00001,-0.666,-3.1415776385747796],
[-0.00001,-0.5,-3.141572653589796],
[-0.00001,-0.499,-3.1415726135096356],
[-0.00001,-0.3,-3.1415593202564724],
[-0.00001,-0.2,-3.141542653589835],
[-0.00001,-0.1,-3.1414926535901264],
[-0.00001,-0.001,-3.131592986903128],
[-0.00001,-0.00001,-2.356194490192345],
[-0.00001,0,-1.5707963267948966],
[-0.00001,0.00001,-0.7853981633974483],
[-0.00001,0.001,-0.00999966668666524],
[-0.00001,0.1,-0.00009999999966666667],
[-0.00001,0.2,-0.000049999999958333334],
[-0.00001,0.3,-0.00003333333332098766],
[-0.00001,0.499,-0.000020040080157637914],
[-0.00001,0.5,-0.000019999999997333335],
[-0.00001,0.666,-0.000015015015013886633],
[-0.00001,0.75,-0.00001333333333254321],
[-0.00001,0.8,-0.00001249999999934896],
[-0.00001,0.9,-0.000011111111110653865],
[-0.00001,1,-0.000009999999999666668],
[-0.00001,1.1,-0.000009090909090658652],
[-0.00001,1.5,-0.000006666666666567902],
[-0.00001,1.99,-0.000005025125628098406],
[-0.00001,2,-0.000004999999999958334],
[-0.00001,2.5,-0.000003999999999978667],
[-0.00001,3.1,-0.0000032258064516017143],
[-0.00001,4.5,-0.0000022222222222185646],
[-0.00001,5,-0.0000019999999999973334],
[-0.00001,10,-9.999999999996666e-7],
[-0.00001,99,-1.0101010101010068e-7],
[-0.00001,99.5,-1.0050251256281374e-7],
[-0.00001,100,-9.999999999999968e-8],
[-0.00001,1000,-1e-8],
[-0.00001,999999999,-1.0000000010000002e-14],
[0,-999999999,3.141592653589793],
[0,-1000,3.141592653589793],
[0,-100,3.141592653589793],
[0,-99.5,3.141592653589793],
[0,-99,3.141592653589793],
[0,-10,3.141592653589793],
[0,-5,3.141592653589793],
[0,-4.5,3.141592653589793],
[0,-3.1,3.141592653589793],
[0,-2.5,3.141592653589793],
[0,-2,3.141592653589793],
[0,-1.99,3.141592653589793],
[0,-1.5,3.141592653589793],
[0,-1.1,3.141592653589793],
[0,-1,3.141592653589793],
[0,-0.9,3.141592653589793],
[0,-0.8,3.141592653589793],
[0,-0.75,3.141592653589793],
[0,-0.666,3.141592653589793],
[0,-0.5,3.141592653589793],
[0,-0.499,3.141592653589793],
[0,-0.3,3.141592653589793],
[0,-0.2,3.141592653589793],
[0,-0.1,3.141592653589793],
[0,-0.001,3.141592653589793],
[0,-0.00001,3.141592653589793],
[0,0,0],
[0,0.00001,0],
[0,0.001,0],
[0,0.1,0],
[0,0.2,0],
[0,0.3,0],
[0,0.499,0],
[0,0.5,0],
[0,0.666,0],
[0,0.75,0],
[0,0.8,0],
[0,0.9,0],
[0,1,0],
[0,1.1,0],
[0,1.5,0],
[0,1.99,0],
[0,2,0],
[0,2.5,0],
[0,3.1,0],
[0,4.5,0],
[0,5,0],
[0,10,0],
[0,99,0],
[0,99.5,0],
[0,100,0],
[0,1000,0],
[0,999999999,0],
[0.00001,-999999999,3.1415926535897833],
[0.00001,-1000,3.141592643589793],
[0.00001,-100,3.1415925535897933],
[0.00001,-99.5,3.1415925530872806],
[0.00001,-99,3.1415925525796924],
[0.00001,-10,3.1415916535897934],
[0.00001,-5,3.1415906535897933],
[0.00001,-4.5,3.141590431367571],
[0.00001,-3.1,3.141589427783342],
[0.00001,-2.5,3.1415886535897934],
[0.00001,-2,3.1415876535897933],
[0.00001,-1.99,3.141587628464165],
[0.00001,-1.5,3.141585986923127],
[0.00001,-1.1,3.1415835626807027],
[0.00001,-1,3.1415826535897935],
[0.00001,-0.9,3.1415815424786824],
[0.00001,-0.8,3.141580153589794],
[0.00001,-0.75,3.1415793202564606],
[0.00001,-0.666,3.1415776385747796],
[0.00001,-0.5,3.141572653589796],
[0.00001,-0.499,3.1415726135096356],
[0.00001,-0.3,3.1415593202564724],
[0.00001,-0.2,3.141542653589835],
[0.00001,-0.1,3.1414926535901264],
[0.00001,-0.001,3.131592986903128],
[0.00001,-0.00001,2.356194490192345],
[0.00001,0,1.5707963267948966],
[0.00001,0.00001,0.7853981633974483],
[0.00001,0.001,0.00999966668666524],
[0.00001,0.1,0.00009999999966666667],
[0.00001,0.2,0.000049999999958333334],
[0.00001,0.3,0.00003333333332098766],
[0.00001,0.499,0.000020040080157637914],
[0.00001,0.5,0.000019999999997333335],
[0.00001,0.666,0.000015015015013886633],
[0.00001,0.75,0.00001333333333254321],
[0.00001,0.8,0.00001249999999934896],
[0.00001,0.9,0.000011111111110653865],
[0.00001,1,0.000009999999999666668],
[0.00001,1.1,0.000009090909090658652],
[0.00001,1.5,0.000006666666666567902],
[0.00001,1.99,0.000005025125628098406],
[0.00001,2,0.000004999999999958334],
[0.00001,2.5,0.000003999999999978667],
[0.00001,3.1,0.0000032258064516017143],
[0.00001,4.5,0.0000022222222222185646],
[0.00001,5,0.0000019999999999973334],
[0.00001,10,9.999999999996666e-7],
[0.00001,99,1.0101010101010068e-7],
[0.00001,99.5,1.0050251256281374e-7],
[0.00001,100,9.999999999999968e-8],
[0.00001,1000,1e-8],
[0.00001,999999999,1.0000000010000002e-14],
[0.001,-999999999,3.141592653588793],
[0.001,-1000,3.1415916535897934],
[0.001,-100,3.1415826535897935],
[0.001,-99.5,3.1415826033385374],
[0.001,-99,3.1415825525796928],
[0.001,-10,3.1414926535901264],
[0.001,-5,3.14139265359246],
[0.001,-4.5,3.141370431371229],
[0.001,-3.1,3.141270072955821],
[0.001,-2.5,3.1411926536111268],
[0.001,-2,3.14109265363146],
[0.001,-1.99,3.1410901410692773],
[0.001,-1.5,3.140925987021892],
[0.001,-1.1,3.1406835629311405],
[0.001,-1,3.1405926539231266],
[0.001,-0.9,3.140481542935929],
[0.001,-0.8,3.1403426542408344],
[0.001,-0.75,3.1402593210465826],
[0.001,-0.666,3.1400911532166718],
[0.001,-0.5,3.1395926562564536],
[0.001,-0.499,3.1395886482564856],
[0.001,-0.3,3.1382593326020567],
[0.001,-0.2,3.136592695255835],
[0.001,-0.1,3.131592986903128],
[0.001,-0.001,2.356194490192345],
[0.001,-0.00001,1.5807959934815619],
[0.001,0,1.5707963267948966],
[0.001,0.00001,1.5607966601082315],
[0.001,0.001,0.7853981633974483],
[0.001,0.1,0.009999666686665238],
[0.001,0.2,0.004999958333958322],
[0.001,0.3,0.003333320987736625],
[0.001,0.499,0.002004005333307648],
[0.001,0.5,0.0019999973333397333],
[0.001,0.666,0.0015015003731212665],
[0.001,0.75,0.0013333325432107195],
[0.001,0.8,0.0012499993489589437],
[0.001,0.9,0.001111110653864079],
[0.001,1,0.0009999996666668668],
[0.001,1.1,0.0009090906586527662],
[0.001,1.5,0.000666666567901261],
[0.001,1.99,0.0005025125205161076],
[0.001,2,0.0004999999583333395],
[0.001,2.5,0.0003999999786666687],
[0.001,3.1,0.00032258063397222947],
[0.001,4.5,0.00022222221856424337],
[0.001,5,0.0001999999973333334],
[0.001,10,0.00009999999966666667],
[0.001,99,0.000010101010100666565],
[0.001,99.5,0.000010050251255943023],
[0.001,100,0.000009999999999666666],
[0.001,1000,9.999999999996666e-7],
[0.001,999999999,1.000000001e-12],
[0.1,-999999999,3.141592653489793],
[0.1,-1000,3.1414926535901264],
[0.1,-100,3.1405926539231266],
[0.1,-99.5,3.1405876288025487],
[0.1,-99,3.1405825529232287],
[0.1,-10,3.131592986903128],
[0.1,-5,3.1215953196166426],
[0.1,-4.5,3.1193740882630743],
[0.1,-3.1,3.109345771154539],
[0.1,-2.5,3.1016139664665032],
[0.1,-2,3.0916342578678506],
[0.1,-1.99,3.091383631306682],
[0.1,-1.5,3.0750244898139694],
[0.1,-1.1,3.050932766389048],
[0.1,-1,3.0419240010986313],
[0.1,-0.9,3.0309354324158977],
[0.1,-0.8,3.017237659043032],
[0.1,-0.75,3.0090411212931194],
[0.1,-0.666,2.992555863103231],
[0.1,-0.5,2.9441970937399127],
[0.1,-0.499,2.943811737304267],
[0.1,-0.3,2.819842099193151],
[0.1,-0.2,2.677945044588987],
[0.1,-0.1,2.356194490192345],
[0.1,-0.001,1.5807959934815619],
[0.1,-0.00001,1.5708963267945633],
[0.1,0,1.5707963267948966],
[0.1,0.00001,1.5706963267952299],
[0.1,0.001,1.5607966601082315],
[0.1,0.1,0.7853981633974483],
[0.1,0.2,0.4636476090008061],
[0.1,0.3,0.32175055439664224],
[0.1,0.499,0.1977809162855263],
[0.1,0.5,0.19739555984988078],
[0.1,0.666,0.1490367904865622],
[0.1,0.75,0.13255153229667402],
[0.1,0.8,0.12435499454676144],
[0.1,0.9,0.11065722117389565],
[0.1,1,0.09966865249116204],
[0.1,1.1,0.09065988720074511],
[0.1,1.5,0.06656816377582381],
[0.1,1.99,0.050209022283111214],
[0.1,2,0.049958395721942765],
[0.1,2.5,0.039978687123290044],
[0.1,3.1,0.03224688243525392],
[0.1,4.5,0.02221856532671906],
[0.1,5,0.019997333973150535],
[0.1,10,0.00999966668666524],
[0.1,99,0.0010101006665645031],
[0.1,99.5,0.0010050247872445926],
[0.1,100,0.0009999996666668668],
[0.1,1000,0.00009999999966666667],
[0.1,999999999,1.000000001e-10],
[0.2,-999999999,3.141592653389793],
[0.2,-1000,3.14139265359246],
[0.2,-100,3.1395926562564536],
[0.2,-99.5,3.1395826060456002],
[0.2,-99,3.1395724543178782],
[0.2,-10,3.1215953196166426],
[0.2,-5,3.1016139664665032],
[0.2,-4.5,3.0971774383428823],
[0.2,-3.1,3.0771658141642395],
[0.2,-2.5,3.061762667877556],
[0.2,-2,3.0419240010986313],
[0.2,-1.99,3.0414264887018683],
[0.2,-1.5,3.0090411212931194],
[0.2,-1.1,2.961739153797315],
[0.2,-1,2.9441970937399127],
[0.2,-0.9,2.922923707715851],
[0.2,-0.8,2.896613990462929],
[0.2,-0.75,2.8809902618424523],
[0.2,-0.666,2.849860377025231],
[0.2,-0.5,2.761086276477428],
[0.2,-0.499,2.7603954303006337],
[0.2,-0.3,2.5535900500422257],
[0.2,-0.2,2.356194490192345],
[0.2,-0.1,2.0344439357957027],
[0.2,-0.001,1.575796285128855],
[0.2,-0.00001,1.570846326794855],
[0.2,0,1.5707963267948966],
[0.2,0.00001,1.5707463267949382],
[0.2,0.001,1.5657963684609384],
[0.2,0.1,1.1071487177940904],
[0.2,0.2,0.7853981633974483],
[0.2,0.3,0.5880026035475676],
[0.2,0.499,0.3811972232891597],
[0.2,0.5,0.3805063771123649],
[0.2,0.666,0.2917322765645622],
[0.2,0.75,0.260602391747341],
[0.2,0.8,0.24497866312686414],
[0.2,0.9,0.21866894587394198],
[0.2,1,0.19739555984988078],
[0.2,1.1,0.17985349979247828],
[0.2,1.5,0.13255153229667402],
[0.2,1.99,0.10016616488792512],
[0.2,2,0.09966865249116204],
[0.2,2.5,0.07982998571223732],
[0.2,3.1,0.06442683942555355],
[0.2,4.5,0.04441521524691084],
[0.2,5,0.039978687123290044],
[0.2,10,0.019997333973150535],
[0.2,99,0.002020199271915011],
[0.2,99.5,0.002010047544192819],
[0.2,100,0.0019999973333397333],
[0.2,1000,0.0001999999973333334],
[0.2,999999999,2.000000002e-10],
[0.3,-999999999,3.141592653289793],
[0.3,-1000,3.1412926535987933],
[0.3,-100,3.1385926625897445],
[0.3,-99.5,3.13857758734922],
[0.3,-99,3.1385623598349306],
[0.3,-10,3.1116016487329152],
[0.3,-5,3.0816644984685855],
[0.3,-4.5,3.0750244898139694],
[0.3,-3.1,3.0451188784072065],
[0.3,-2.5,3.0221637275714546],
[0.3,-2,2.992702705980296],
[0.3,-1.99,2.9919656053766883],
[0.3,-1.5,2.9441970937399127],
[0.3,-1.1,2.875340604438868],
[0.3,-1,2.8501358591119264],
[0.3,-0.9,2.819842099193151],
[0.3,-0.8,2.782821983319221],
[0.3,-0.75,2.761086276477428],
[0.3,-0.666,2.718364195639159],
[0.3,-0.5,2.601173153319209],
[0.3,-0.499,2.6002895011191622],
[0.3,-0.3,2.356194490192345],
[0.3,-0.2,2.1587989303424644],
[0.3,-0.1,1.892546881191539],
[0.3,-0.001,1.5741296477826332],
[0.3,-0.00001,1.5708296601282177],
[0.3,0,1.5707963267948966],
[0.3,0.00001,1.5707629934615757],
[0.3,0.001,1.56746300580716],
[0.3,0.1,1.2490457723982544],
[0.3,0.2,0.982793723247329],
[0.3,0.3,0.7853981633974483],
[0.3,0.499,0.5413031524706309],
[0.3,0.5,0.5404195002705842],
[0.3,0.666,0.4232284579506343],
[0.3,0.75,0.38050637711236485],
[0.3,0.8,0.3587706702705722],
[0.3,0.9,0.3217505543966422],
[0.3,1,0.2914567944778671],
[0.3,1.1,0.2662520491509253],
[0.3,1.5,0.19739555984988075],
[0.3,1.99,0.1496270482131048],
[0.3,2,0.14888994760949725],
[0.3,2.5,0.11942892601833845],
[0.3,3.1,0.0964737751825869],
[0.3,4.5,0.06656816377582381],
[0.3,5,0.05992815512120788],
[0.3,10,0.0299910048568779],
[0.3,99,0.0030302937548627655],
[0.3,99.5,0.00301506624057292],
[0.3,100,0.0029999910000485996],
[0.3,1000,0.0002999999910000005],
[0.3,999999999,3.000000003e-10],
[0.499,-999999999,3.141592653090793],
[0.499,-1000,3.14109365363121],
[0.499,-100,3.136602695006341],
[0.499,-99.5,3.136577620256963],
[0.499,-99,3.1365522922336906],
[0.499,-10,3.091734008988473],
[0.499,-5,3.042122024819285],
[0.499,-4.5,3.03115494996158],
[0.499,-3.1,2.981993947988027],
[0.499,-2.5,2.9445817386936333],
[0.499,-2,2.897084634033309],
[0.499,-1.99,2.895904686881681],
[0.499,-1.5,2.8204422191451126],
[0.499,-1.1,2.7157188430882817],
[0.499,-1,2.6787453645461667],
[0.499,-0.9,2.635343606284315],
[0.499,-0.8,2.58389271967883],
[0.499,-0.75,2.5545136950997627],
[0.499,-0.666,2.498572198448511],
[0.499,-0.5,2.3571954908590107],
[0.499,-0.499,2.356194490192345],
[0.499,-0.3,2.1120994792655274],
[0.499,-0.2,1.9519935500840564],
[0.499,-0.1,1.768577243080423],
[0.499,-0.001,1.5728003321282042],
[0.499,-0.00001,1.5708163668750543],
[0.499,0,1.5707963267948966],
[0.499,0.00001,1.570776286714739],
[0.499,0.001,1.5687923214615889],
[0.499,0.1,1.3730154105093704],
[0.499,0.2,1.189599103505737],
[0.499,0.3,1.0294931743242657],
[0.499,0.499,0.7853981633974483],
[0.499,0.5,0.7843971627307824],
[0.499,0.666,0.6430204551412821],
[0.499,0.75,0.5870789584900307],
[0.499,0.8,0.5576999339109634],
[0.499,0.9,0.5062490473054783],
[0.499,1,0.4628472890436265],
[0.499,1.1,0.4258738105015115],
[0.499,1.5,0.3211504344446806],
[0.499,1.99,0.24568796670811216],
[0.499,2,0.24450801955648416],
[0.499,2.5,0.19701091489616018],
[0.499,3.1,0.15959870560176648],
[0.499,4.5,0.11043770362821316],
[0.499,5,0.09947062877050837],
[0.499,10,0.04985864460132039],
[0.499,99,0.005040361356102597],
[0.499,99.5,0.005015033332830324],
[0.499,100,0.0049899585834524305],
[0.499,1000,0.0004989999585828398],
[0.499,999999999,4.99000000499e-10],
[0.5,-999999999,3.141592653089793],
[0.5,-1000,3.14109265363146],
[0.5,-100,3.136592695255835],
[0.5,-99.5,3.136567570258981],
[0.5,-99,3.1365421914807206],
[0.5,-10,3.0916342578678506],
[0.5,-5,3.0419240010986313],
[0.5,-4.5,3.0309354324158977],
[0.5,-3.1,2.981679530431574],
[0.5,-2.5,2.9441970937399127],
[0.5,-2,2.896613990462929],
[0.5,-1.99,2.895431957916515],
[0.5,-1.5,2.819842099193151],
[0.5,-1.1,2.714965160462917],
[0.5,-1,2.677945044588987],
[0.5,-0.9,2.6344941491974563],
[0.5,-0.8,2.5829933382462307],
[0.5,-0.75,2.5535900500422257],
[0.5,-0.666,2.49761123743671],
[0.5,-0.5,2.356194490192345],
[0.5,-0.499,2.355193489525679],
[0.5,-0.3,2.1112158270654806],
[0.5,-0.2,1.9513027039072615],
[0.5,-0.1,1.7681918866447774],
[0.5,-0.001,1.5727963241282363],
[0.5,-0.00001,1.570816326794894],
[0.5,0,1.5707963267948966],
[0.5,0.00001,1.5707763267948993],
[0.5,0.001,1.5687963294615568],
[0.5,0.1,1.373400766945016],
[0.5,0.2,1.1902899496825317],
[0.5,0.3,1.0303768265243125],
[0.5,0.499,0.7863991640641141],
[0.5,0.5,0.7853981633974483],
[0.5,0.666,0.6439814161530834],
[0.5,0.75,0.5880026035475675],
[0.5,0.8,0.5585993153435624],
[0.5,0.9,0.507098504392337],
[0.5,1,0.4636476090008061],
[0.5,1.1,0.42662749312687603],
[0.5,1.5,0.3217505543966422],
[0.5,1.99,0.24616069567327822],
[0.5,2,0.24497866312686414],
[0.5,2.5,0.19739555984988075],
[0.5,3.1,0.15991312315821926],
[0.5,4.5,0.11065722117389565],
[0.5,5,0.09966865249116202],
[0.5,10,0.04995839572194276],
[0.5,99,0.005050462109072576],
[0.5,99.5,0.005025083330812411],
[0.5,100,0.0049999583339583225],
[0.5,1000,0.0004999999583333395],
[0.5,999999999,5.000000005e-10],
[0.666,-999999999,3.1415926529237934],
[0.666,-1000,3.1409266536882625],
[0.666,-100,3.1349327520566046],
[0.666,-99.5,3.1348992862117906],
[0.666,-99,3.1348654823433613],
[0.666,-10,3.0750908617889694],
[0.666,-5,3.0091721279475077],
[0.666,-4.5,2.9946592677567683],
[0.666,-3.1,2.9299706627661797],
[0.666,-2.5,2.8812392410226475],
[0.666,-2,2.8201421291871487],
[0.666,-1.99,2.81863655426783],
[0.666,-1.5,2.7237395192422165],
[0.666,-1.1,2.597172107718226],
[0.666,-1,2.554051730526506],
[0.666,-0.9,2.5045223243141095],
[0.666,-0.8,2.4473463822734396],
[0.666,-0.75,2.4154470838557773],
[0.666,-0.666,2.356194490192345],
[0.666,-0.5,2.2147777429479802],
[0.666,-0.499,2.213816781936179],
[0.666,-0.3,1.994024784745531],
[0.666,-0.2,1.8625286033594588],
[0.666,-0.1,1.719833117281459],
[0.666,-0.001,1.572297827168018],
[0.666,-0.00001,1.5708113418099106],
[0.666,0,1.5707963267948966],
[0.666,0.00001,1.5707813117798828],
[0.666,0.001,1.5692948264217754],
[0.666,0.1,1.4217595363083344],
[0.666,0.2,1.2790640502303345],
[0.666,0.3,1.1475678688442623],
[0.666,0.499,0.9277758716536145],
[0.666,0.5,0.9268149106418132],
[0.666,0.666,0.7853981633974483],
[0.666,0.75,0.726145569734016],
[0.666,0.8,0.6942462713163536],
[0.666,0.9,0.6370703292756836],
[0.666,1,0.5875409230632876],
[0.666,1.1,0.5444205458715671],
[0.666,1.5,0.4178531343475768],
[0.666,1.99,0.32295609932196323],
[0.666,2,0.3214505244026446],
[0.666,2.5,0.26035341256714567],
[0.666,3.1,0.21162199082361374],
[0.666,4.5,0.14693338583302493],
[0.666,5,0.13242052564228543],
[0.666,10,0.06650179180082404],
[0.666,99,0.006727171246432002],
[0.666,99.5,0.006693367378002532],
[0.666,100,0.00665990153318852],
[0.666,1000,0.0006659999015305942],
[0.666,999999999,6.66000000666e-10],
[0.75,-999999999,3.141592652839793],
[0.75,-1000,3.1408426537304184],
[0.75,-100,3.1340927942100474],
[0.75,-99.5,3.134055107898362],
[0.75,-99,3.134017040938598],
[0.75,-10,3.066732805879026],
[0.75,-5,2.992702705980296],
[0.75,-4.5,2.976443976175166],
[0.75,-3.1,2.9042184066166223],
[0.75,-2.5,2.8501358591119264],
[0.75,-2,2.782821983319221],
[0.75,-1.99,2.7811709116219387],
[0.75,-1.5,2.677945044588987],
[0.75,-1.1,2.543173760111256],
[0.75,-1,2.498091544796509],
[0.75,-0.9,2.44685437739309],
[0.75,-0.8,2.388441372627599],
[0.75,-0.75,2.356194490192345],
[0.75,-0.666,2.296941896528913],
[0.75,-0.5,2.158798930342464],
[0.75,-0.499,2.1578752852849274],
[0.75,-0.3,1.9513027039072615],
[0.75,-0.2,1.8313987185422376],
[0.75,-0.1,1.7033478590915707],
[0.75,-0.001,1.5721296593381073],
[0.75,-0.00001,1.570809660128229],
[0.75,0,1.5707963267948966],
[0.75,0.00001,1.570782993461564],
[0.75,0.001,1.569462994251686],
[0.75,0.1,1.4382447944982226],
[0.75,0.2,1.3101939350475555],
[0.75,0.3,1.1902899496825317],
[0.75,0.499,0.9837173683048659],
[0.75,0.5,0.982793723247329],
[0.75,0.666,0.8446507570608807],
[0.75,0.75,0.7853981633974483],
[0.75,0.8,0.7531512809621944],
[0.75,0.9,0.6947382761967031],
[0.75,1,0.6435011087932844],
[0.75,1.1,0.5984188934785372],
[0.75,1.5,0.4636476090008061],
[0.75,1.99,0.3604217419678544],
[0.75,2,0.35877067027057225],
[0.75,2.5,0.2914567944778671],
[0.75,3.1,0.2373742469731708],
[0.75,4.5,0.16514867741462683],
[0.75,5,0.14888994760949725],
[0.75,10,0.07485984771076686],
[0.75,99,0.007575612651195415],
[0.75,99.5,0.007537545691431545],
[0.75,100,0.007499859379745903],
[0.75,1000,0.0007499998593750475],
[0.75,999999999,7.5000000075e-10],
[0.8,-999999999,3.141592652789793],
[0.8,-1000,3.14079265376046],
[0.8,-100,3.1335928242499067],
[0.8,-99.5,3.13355262583053],
[0.8,-99,3.1335120213928933],
[0.8,-10,3.061762667877556],
[0.8,-5,2.9829373914033916],
[0.8,-4.5,2.9656530281372655],
[0.8,-3.1,2.8890383778117337],
[0.8,-2.5,2.831889709047337],
[0.8,-2,2.761086276477428],
[0.8,-1.99,2.7593546764765273],
[0.8,-1.5,2.651635327336065],
[0.8,-1.1,2.5127963671743605],
[0.8,-1,2.4668517113662407],
[0.8,-0.9,2.4149503129080676],
[0.8,-0.8,2.356194490192345],
[0.8,-0.75,2.323947607757091],
[0.8,-0.666,2.26504259811125],
[0.8,-0.5,2.129395642138459],
[0.8,-0.499,2.12849626070586],
[0.8,-0.3,1.9295669970654687],
[0.8,-0.2,1.8157749899217608],
[0.8,-0.1,1.695151321341658],
[0.8,-0.001,1.5720463261438555],
[0.8,-0.00001,1.5708088267948959],
[0.8,0,1.5707963267948966],
[0.8,0.00001,1.5707838267948973],
[0.8,0.001,1.5695463274459376],
[0.8,0.1,1.446441332248135],
[0.8,0.2,1.3258176636680326],
[0.8,0.3,1.2120256565243244],
[0.8,0.499,1.0130963928839332],
[0.8,0.5,1.0121970114513341],
[0.8,0.666,0.8765500554785429],
[0.8,0.75,0.8176450458327023],
[0.8,0.8,0.7853981633974483],
[0.8,0.9,0.7266423406817256],
[0.8,1,0.6747409422235527],
[0.8,1.1,0.628796286415433],
[0.8,1.5,0.48995732625372834],
[0.8,1.99,0.38223797711326585],
[0.8,2,0.3805063771123649],
[0.8,2.5,0.3097029445424562],
[0.8,3.1,0.25255427577805956],
[0.8,4.5,0.17593962545252784],
[0.8,5,0.1586552621864014],
[0.8,10,0.07982998571223732],
[0.8,99,0.008080632196899808],
[0.8,99.5,0.008040027759263131],
[0.8,100,0.007999829339886634],
[0.8,1000,0.000799999829333399],
[0.8,999999999,8.000000008e-10],
[0.9,-999999999,3.141592652689793],
[0.9,-1000,3.1406926538327933],
[0.9,-100,3.132592896577984],
[0.9,-99.5,3.132547674128787],
[0.9,-99,3.1325019949247332],
[0.9,-10,3.051834479399843],
[0.9,-5,2.9634997153585956],
[0.9,-4.5,2.9441970937399127],
[0.9,-3.1,2.8590377011202057],
[0.9,-2.5,2.796037073008081],
[0.9,-2,2.7187387274568526],
[0.9,-1.99,2.7168598152628936],
[0.9,-1.5,2.601173153319209],
[0.9,-1.1,2.455863142683507],
[0.9,-1,2.408777551803287],
[0.9,-0.9,2.356194490192345],
[0.9,-0.8,2.297438667476622],
[0.9,-0.75,2.2655346029916],
[0.9,-0.666,2.20786665607058],
[0.9,-0.5,2.0778948311872334],
[0.9,-0.499,2.0770453741003747],
[0.9,-0.3,1.8925468811915387],
[0.9,-0.2,1.7894652726688385],
[0.9,-0.1,1.6814535479687922],
[0.9,-0.001,1.5719074374487607],
[0.9,-0.00001,1.5708074379060073],
[0.9,0,1.5707963267948966],
[0.9,0.00001,1.570785215683786],
[0.9,0.001,1.5696852161410326],
[0.9,0.1,1.460139105621001],
[0.9,0.2,1.3521273809209546],
[0.9,0.3,1.2490457723982544],
[0.9,0.499,1.0645472794894184],
[0.9,0.5,1.0636978224025597],
[0.9,0.666,0.933725997519213],
[0.9,0.75,0.8760580505981934],
[0.9,0.8,0.8441539861131709],
[0.9,0.9,0.7853981633974483],
[0.9,1,0.7328151017865066],
[0.9,1.1,0.6857295109062862],
[0.9,1.5,0.5404195002705842],
[0.9,1.99,0.4247328383268999],
[0.9,2,0.4228539261329407],
[0.9,2.5,0.34555558058171215],
[0.9,3.1,0.2825549524695875],
[0.9,4.5,0.19739555984988078],
[0.9,5,0.17809293823119757],
[0.9,10,0.08975817418995052],
[0.9,99,0.009090658665059818],
[0.9,99.5,0.00904497946100604],
[0.9,100,0.008999757011809117],
[0.9,1000,0.0008999997570001181],
[0.9,999999999,9.000000009e-10],
[1,-999999999,3.141592652589793],
[1,-1000,3.1405926539231266],
[1,-100,3.131592986903128],
[1,-99.5,3.131542740696759],
[1,-99,3.1314919870044715],
[1,-10,3.0419240010986313],
[1,-5,2.9441970937399127],
[1,-4.5,2.922923707715851],
[1,-3.1,2.82955053202726],
[1,-2.5,2.761086276477428],
[1,-2,2.677945044588987],
[1,-1.99,2.675937015159391],
[1,-1.5,2.5535900500422257],
[1,-1.1,2.403777593469328],
[1,-1,2.356194490192345],
[1,-0.9,2.3036114285814033],
[1,-0.8,2.2455372690184494],
[1,-0.75,2.214297435588181],
[1,-0.666,2.1583372498581843],
[1,-0.5,2.0344439357957027],
[1,-0.499,2.033643615838523],
[1,-0.3,1.8622531212727638],
[1,-0.2,1.7681918866447774],
[1,-0.1,1.6704649792860586],
[1,-0.001,1.5717963264615635],
[1,-0.00001,1.5708063267948962],
[1,0,1.5707963267948966],
[1,0.00001,1.570786326794897],
[1,0.001,1.5697963271282298],
[1,0.1,1.4711276743037345],
[1,0.2,1.373400766945016],
[1,0.3,1.2793395323170296],
[1,0.499,1.1079490377512702],
[1,0.5,1.1071487177940904],
[1,0.666,0.983255403731609],
[1,0.75,0.9272952180016122],
[1,0.8,0.8960553845713439],
[1,0.9,0.83798122500839],
[1,1,0.7853981633974483],
[1,1.1,0.7378150601204648],
[1,1.5,0.5880026035475675],
[1,1.99,0.4656556384304023],
[1,2,0.4636476090008061],
[1,2.5,0.3805063771123649],
[1,3.1,0.3120421215625333],
[1,4.5,0.21866894587394195],
[1,5,0.19739555984988075],
[1,10,0.09966865249116202],
[1,99,0.010100666585321907],
[1,99.5,0.010049912893034368],
[1,100,0.009999666686665238],
[1,1000,0.0009999996666668666],
[1,999999999,1.000000001e-9],
[1.1,-999999999,3.141592652489793],
[1.1,-1000,3.1404926540334595],
[1.1,-100,3.1305930972242524],
[1.1,-99.5,3.1305378275636344],
[1.1,-99,3.1304819996921855],
[1.1,-10,3.0320331268158487],
[1.1,-5,2.925042348613704],
[1.1,-4.5,2.9018495447193366],
[1.1,-3.1,2.800613700093444],
[1.1,-2.5,2.7270857790050074],
[1.1,-2,2.6387494426619322],
[1.1,-1.99,2.636629985334579],
[1.1,-1.5,2.50884381858761],
[1.1,-1.1,2.356194490192345],
[1.1,-1,2.3086113869153615],
[1.1,-0.9,2.256525837701183],
[1.1,-0.8,2.1995926132103296],
[1.1,-0.75,2.1692152202734336],
[1.1,-0.666,2.1152168726664637],
[1.1,-0.5,1.9974238199217726],
[1.1,-0.499,1.9966701372964082],
[1.1,-0.3,1.837048375945822],
[1.1,-0.2,1.750649826587375],
[1.1,-0.1,1.6614562139956417],
[1.1,-0.001,1.5717054174535494],
[1.1,-0.00001,1.5708054177039872],
[1.1,0,1.5707963267948966],
[1.1,0.00001,1.570787235885806],
[1.1,0.001,1.569887236136244],
[1.1,0.1,1.4801364395941514],
[1.1,0.2,1.3909428270024184],
[1.1,0.3,1.3045442776439713],
[1.1,0.499,1.1449225162933852],
[1.1,0.5,1.1441688336680205],
[1.1,0.666,1.0263757809233296],
[1.1,0.75,0.9723774333163594],
[1.1,0.8,0.9420000403794637],
[1.1,0.9,0.8850668158886104],
[1.1,1,0.8329812666744317],
[1.1,1.1,0.7853981633974483],
[1.1,1.5,0.6327488350021832],
[1.1,1.99,0.5049626682552143],
[1.1,2,0.5028432109278609],
[1.1,2.5,0.41450687458478597],
[1.1,3.1,0.34097895349634944],
[1.1,4.5,0.2397431088704566],
[1.1,5,0.2165503049760893],
[1.1,10,0.10955952677394436],
[1.1,99,0.011110653897607474],
[1.1,99.5,0.011054826026158903],
[1.1,100,0.010999556365540751],
[1.1,1000,0.0010999995563336555],
[1.1,999999999,1.1000000011e-9],
[1.5,-999999999,3.1415926520897934],
[1.5,-1000,3.140092654714792],
[1.5,-100,3.1265937784379427],
[1.5,-99.5,3.126518418594834],
[1.5,-99,3.1264422977150232],
[1.5,-10,2.992702705980296],
[1.5,-5,2.8501358591119264],
[1.5,-4.5,2.819842099193151],
[1.5,-3.1,2.6909313275091598],
[1.5,-2.5,2.601173153319209],
[1.5,-2,2.498091544796509],
[1.5,-1.99,2.4956838447941183],
[1.5,-1.5,2.356194490192345],
[1.5,-1.1,2.20354516179708],
[1.5,-1,2.158798930342464],
[1.5,-0.9,2.1112158270654806],
[1.5,-0.8,2.060753653048625],
[1.5,-0.75,2.0344439357957027],
[1.5,-0.666,1.9886494611424734],
[1.5,-0.5,1.892546881191539],
[1.5,-0.499,1.8919467612395773],
[1.5,-0.3,1.7681918866447774],
[1.5,-0.2,1.7033478590915707],
[1.5,-0.1,1.6373644905707205],
[1.5,-0.001,1.571462993362798],
[1.5,-0.00001,1.5708029934615633],
[1.5,0,1.5707963267948966],
[1.5,0.00001,1.57078966012823],
[1.5,0.001,1.5701296602269954],
[1.5,0.1,1.5042281630190728],
[1.5,0.2,1.4382447944982226],
[1.5,0.3,1.373400766945016],
[1.5,0.499,1.249645892350216],
[1.5,0.5,1.2490457723982544],
[1.5,0.666,1.15294319244732],
[1.5,0.75,1.1071487177940904],
[1.5,0.8,1.0808390005411683],
[1.5,0.9,1.0303768265243125],
[1.5,1,0.982793723247329],
[1.5,1.1,0.9380474917927134],
[1.5,1.5,0.7853981633974483],
[1.5,1.99,0.6459088087956748],
[1.5,2,0.6435011087932844],
[1.5,2.5,0.5404195002705842],
[1.5,3.1,0.45066132608063364],
[1.5,4.5,0.3217505543966422],
[1.5,5,0.2914567944778671],
[1.5,10,0.14888994760949725],
[1.5,99,0.015150355874769811],
[1.5,99.5,0.015074234994959463],
[1.5,100,0.014998875151850596],
[1.5,1000,0.0014999988750015187],
[1.5,999999999,1.5000000015e-9],
[1.99,-999999999,3.1415926515997934],
[1.99,-1000,3.1396026562166535],
[1.99,-100,3.121695279832144],
[1.99,-99.5,3.1215953196166426],
[1.99,-99,3.121494350107758],
[1.99,-10,2.945158816851757],
[1.99,-5,2.762811602577756],
[1.99,-4.5,2.725225523691213],
[1.99,-3.1,2.5709075957807075],
[1.99,-2.5,2.4692954992677545],
[1.99,-2,2.358700750608933],
[1.99,-1.99,2.356194490192345],
[1.99,-1.5,2.2167051355905714],
[1.99,-1.1,2.0757589950501107],
[1.99,-1,2.036451965225299],
[1.99,-0.9,1.9955291651217966],
[1.99,-0.8,1.9530343039081624],
[1.99,-0.75,1.9312180687627511],
[1.99,-0.666,1.89375242611686],
[1.99,-0.5,1.8169570224681748],
[1.99,-0.499,1.8164842935030088],
[1.99,-0.3,1.7204233750080014],
[1.99,-0.2,1.6709624916828218],
[1.99,-0.1,1.6210053490780079],
[1.99,-0.001,1.5712988393154128],
[1.99,-0.00001,1.5708013519205246],
[1.99,0,1.5707963267948966],
[1.99,0.00001,1.5707913016692685],
[1.99,0.001,1.5702938142743805],
[1.99,0.1,1.5205873045117855],
[1.99,0.2,1.4706301619069715],
[1.99,0.3,1.4211692785817918],
[1.99,0.499,1.3251083600867846],
[1.99,0.5,1.3246356311216183],
[1.99,0.666,1.2478402274729334],
[1.99,0.75,1.2103745848270422],
[1.99,0.8,1.1885583496816308],
[1.99,0.9,1.1460634884679968],
[1.99,1,1.1051406883644943],
[1.99,1.1,1.0658336585396824],
[1.99,1.5,0.9248875179992219],
[1.99,1.99,0.7853981633974483],
[1.99,2,0.7828919029808601],
[1.99,2.5,0.6722971543220388],
[1.99,3.1,0.5706850578090858],
[1.99,4.5,0.41636712989858],
[1.99,5,0.3787810510120375],
[1.99,10,0.19643383673803597],
[1.99,99,0.020098303482035014],
[1.99,99.5,0.01999733397315053],
[1.99,100,0.01989737375764937],
[1.99,1000,0.001989997373139908],
[1.99,999999999,1.99000000199e-9],
[2,-999999999,3.1415926515897934],
[2,-1000,3.1395926562564536],
[2,-100,3.1215953196166426],
[2,-99.5,3.1214948574912023],
[2,-99,3.1213933810087253],
[2,-10,2.9441970937399127],
[2,-5,2.761086276477428],
[2,-4.5,2.723368324010564],
[2,-3.1,2.5686265107010873],
[2,-2.5,2.4668517113662407],
[2,-2,2.356194490192345],
[2,-1.99,2.3536882297757566],
[2,-1.5,2.214297435588181],
[2,-1.1,2.0736395377227574],
[2,-1,2.0344439357957027],
[2,-0.9,1.9936502529278373],
[2,-0.8,1.9513027039072615],
[2,-0.75,1.9295669970654687],
[2,-0.666,1.8922468511975412],
[2,-0.5,1.8157749899217608],
[2,-0.499,1.8153043463513807],
[2,-0.3,1.719686274404394],
[2,-0.2,1.6704649792860586],
[2,-0.1,1.6207547225168393],
[2,-0.001,1.57129632675323],
[2,-0.00001,1.5708013267948966],
[2,0,1.5707963267948966],
[2,0.00001,1.5707913267948967],
[2,0.001,1.5702963268365633],
[2,0.1,1.5208379310729538],
[2,0.2,1.4711276743037345],
[2,0.3,1.4219063791853994],
[2,0.499,1.3262883072384124],
[2,0.5,1.3258176636680326],
[2,0.666,1.249345802392252],
[2,0.75,1.2120256565243244],
[2,0.8,1.1902899496825317],
[2,0.9,1.1479424006619559],
[2,1,1.1071487177940904],
[2,1.1,1.0679531158670357],
[2,1.5,0.9272952180016122],
[2,1.99,0.7879044238140366],
[2,2,0.7853981633974483],
[2,2.5,0.6747409422235526],
[2,3.1,0.5729661428887062],
[2,4.5,0.4182243295792291],
[2,5,0.3805063771123649],
[2,10,0.19739555984988075],
[2,99,0.020199272581067927],
[2,99.5,0.02009779609859114],
[2,100,0.01999733397315053],
[2,1000,0.0019999973333397333],
[2,999999999,2.000000002e-9],
[2.5,-999999999,3.1415926510897934],
[2.5,-1000,3.139092658798107],
[2.5,-100,3.1165978599708732],
[2.5,-99.5,3.116472310693441],
[2.5,-99,3.1163454940456314],
[2.5,-10,2.896613990462929],
[2.5,-5,2.677945044588987],
[2.5,-4.5,2.6344941491974563],
[2.5,-3.1,2.462930162841481],
[2.5,-2.5,2.356194490192345],
[2.5,-2,2.2455372690184494],
[2.5,-1.99,2.2430934811169356],
[2.5,-1.5,2.1112158270654806],
[2.5,-1.1,1.9853032013796825],
[2.5,-1,1.9513027039072615],
[2.5,-0.9,1.9163519073766087],
[2.5,-0.8,1.8804992713373527],
[2.5,-0.75,1.8622531212727638],
[2.5,-0.666,1.8311497393620424],
[2.5,-0.5,1.7681918866447774],
[2.5,-0.499,1.7678072416910569],
[2.5,-0.3,1.690225252813235],
[2.5,-0.2,1.6506263125071339],
[2.5,-0.1,1.6107750139181867],
[2.5,-0.001,1.5711963267735634],
[2.5,-0.00001,1.5708003267948967],
[2.5,0,1.5707963267948966],
[2.5,0.00001,1.5707923267948967],
[2.5,0.001,1.57039632681623],
[2.5,0.1,1.5308176396716067],
[2.5,0.2,1.4909663410826592],
[2.5,0.3,1.4513674007765582],
[2.5,0.499,1.3737854118987365],
[2.5,0.5,1.373400766945016],
[2.5,0.666,1.310442914227751],
[2.5,0.75,1.2793395323170296],
[2.5,0.8,1.2610933822524404],
[2.5,0.9,1.2252407462131845],
[2.5,1,1.1902899496825317],
[2.5,1.1,1.1562894522101106],
[2.5,1.5,1.0303768265243125],
[2.5,1.99,0.8984991724728577],
[2.5,2,0.8960553845713439],
[2.5,2.5,0.7853981633974483],
[2.5,3.1,0.6786624907483126],
[2.5,4.5,0.507098504392337],
[2.5,5,0.4636476090008061],
[2.5,10,0.24497866312686414],
[2.5,99,0.025247159544161922],
[2.5,99.5,0.02512034289635215],
[2.5,100,0.02499479361892016],
[2.5,1000,0.0024999947916861977],
[2.5,999999999,2.5000000025e-9],
[3.1,-999999999,3.1415926504897933],
[3.1,-1000,3.1384926635200694],
[3.1,-100,3.110602578201224],
[3.1,-99.5,3.11044694961863],
[3.1,-99,3.110289750562308],
[3.1,-10,2.8409869835473978],
[3.1,-5,2.5865969262512065],
[3.1,-4.5,2.538362800665108],
[3.1,-3.1,2.356194490192345],
[3.1,-2.5,2.2494588175432093],
[3.1,-2,2.143762469683603],
[3.1,-1.99,2.1414813846039826],
[3.1,-1.5,2.0214576528755304],
[3.1,-1.1,1.911775280291246],
[3.1,-1,1.8828384483574299],
[3.1,-0.9,1.8533512792644842],
[3.1,-0.8,1.8233506025729562],
[3.1,-0.75,1.8081705737680673],
[3.1,-0.666,1.7824183176185104],
[3.1,-0.5,1.730709449953116],
[3.1,-0.499,1.730395032396663],
[3.1,-0.3,1.6672701019774836],
[3.1,-0.2,1.6352231662204502],
[3.1,-0.1,1.6030432092301505],
[3.1,-0.001,1.571118907428869],
[3.1,-0.00001,1.5707995526013483],
[3.1,0,1.5707963267948966],
[3.1,0.00001,1.570793100988445],
[3.1,0.001,1.5704737461609244],
[3.1,0.1,1.5385494443596428],
[3.1,0.2,1.5063694873693432],
[3.1,0.3,1.4743225516123097],
[3.1,0.499,1.41119762119313],
[3.1,0.5,1.4108832036366774],
[3.1,0.666,1.359174335971283],
[3.1,0.75,1.3334220798217258],
[3.1,0.8,1.3182420510168371],
[3.1,0.9,1.2882413743253092],
[3.1,1,1.2587542052323633],
[3.1,1.1,1.2298173732985471],
[3.1,1.5,1.120135000714263],
[3.1,1.99,1.0001112689858107],
[3.1,2,0.9978301839061905],
[3.1,2.5,0.8921338360465839],
[3.1,3.1,0.7853981633974483],
[3.1,4.5,0.6032298529246849],
[3.1,5,0.5549957273385868],
[3.1,10,0.3006056700423954],
[3.1,99,0.03130290302748527],
[3.1,99.5,0.031145703971163147],
[3.1,100,0.03099007538856943],
[3.1,1000,0.0030999900697239245],
[3.1,999999999,3.1000000031e-9],
[4.5,-999999999,3.141592649089793],
[4.5,-1000,3.137092683964424],
[4.5,-100,3.0966229917374655],
[4.5,-99.5,3.096397320368964],
[4.5,-99,3.096169374168216],
[4.5,-10,2.7187387274568526],
[4.5,-5,2.408777551803287],
[4.5,-4.5,2.356194490192345],
[4.5,-3.1,2.1740261797195815],
[4.5,-2.5,2.0778948311872334],
[4.5,-2,1.9890206563741257],
[4.5,-1.99,1.9871634566934766],
[4.5,-1.5,1.892546881191539],
[4.5,-1.1,1.8105394356653532],
[4.5,-1,1.7894652726688385],
[4.5,-0.9,1.7681918866447774],
[4.5,-0.8,1.7467359522474244],
[4.5,-0.75,1.7359450042095235],
[4.5,-0.666,1.7177297126279216],
[4.5,-0.5,1.6814535479687922],
[4.5,-0.499,1.6812340304231097],
[4.5,-0.3,1.6373644905707203],
[4.5,-0.2,1.6152115420418074],
[4.5,-0.1,1.5930148921216156],
[4.5,-0.001,1.571018549013461],
[4.5,-0.00001,1.5707985490171188],
[4.5,0,1.5707963267948966],
[4.5,0.00001,1.5707941045726743],
[4.5,0.001,1.5705741045763324],
[4.5,0.1,1.5485777614681775],
[4.5,0.2,1.5263811115479857],
[4.5,0.3,1.5042281630190728],
[4.5,0.499,1.4603586231666834],
[4.5,0.5,1.460139105621001],
[4.5,0.666,1.4238629409618717],
[4.5,0.75,1.4056476493802699],
[4.5,0.8,1.3948567013423687],
[4.5,0.9,1.373400766945016],
[4.5,1,1.3521273809209546],
[4.5,1.1,1.33105321792444],
[4.5,1.5,1.2490457723982544],
[4.5,1.99,1.1544291968963167],
[4.5,2,1.1525719972156676],
[4.5,2.5,1.0636978224025597],
[4.5,3.1,0.9675664738702118],
[4.5,4.5,0.7853981633974483],
[4.5,5,0.7328151017865066],
[4.5,10,0.4228539261329407],
[4.5,99,0.04542327942157701],
[4.5,99.5,0.04519533322082931],
[4.5,100,0.044969661852327585],
[4.5,1000,0.004499969625369051],
[4.5,999999999,4.5000000045e-9],
[5,-999999999,3.141592648589793],
[5,-1000,3.136592695255835],
[5,-100,3.0916342578678506],
[5,-99.5,3.091383631306682],
[5,-99,3.0911304795729375],
[5,-10,2.677945044588987],
[5,-5,2.356194490192345],
[5,-4.5,2.3036114285814033],
[5,-3.1,2.1257920541334836],
[5,-2.5,2.0344439357957027],
[5,-2,1.9513027039072615],
[5,-1.99,1.949577377806934],
[5,-1.5,1.8622531212727638],
[5,-1.1,1.7873466317709858],
[5,-1,1.7681918866447774],
[5,-0.9,1.748889265026094],
[5,-0.8,1.729451588981298],
[5,-0.75,1.719686274404394],
[5,-0.666,1.703216852437182],
[5,-0.5,1.6704649792860586],
[5,-0.499,1.670266955565405],
[5,-0.3,1.6307244819161044],
[5,-0.2,1.6107750139181867],
[5,-0.1,1.590793660768047],
[5,-0.001,1.57099632679223],
[5,-0.00001,1.5707983267948966],
[5,0,1.5707963267948966],
[5,0.00001,1.5707943267948967],
[5,0.001,1.5705963267975633],
[5,0.1,1.550798992821746],
[5,0.2,1.5308176396716067],
[5,0.3,1.5108681716736887],
[5,0.499,1.4713256980243883],
[5,0.5,1.4711276743037347],
[5,0.666,1.438375801152611],
[5,0.75,1.4219063791853994],
[5,0.8,1.4121410646084953],
[5,0.9,1.392703388563699],
[5,1,1.373400766945016],
[5,1.1,1.3542460218188073],
[5,1.5,1.2793395323170296],
[5,1.99,1.192015275782859],
[5,2,1.1902899496825317],
[5,2.5,1.1071487177940904],
[5,3.1,1.0158005994563097],
[5,4.5,0.83798122500839],
[5,5,0.7853981633974483],
[5,10,0.4636476090008061],
[5,99,0.05046217401685585],
[5,99.5,0.05020902228311121],
[5,100,0.04995839572194276],
[5,1000,0.0049999583339583225],
[5,999999999,5.000000005e-9],
[10,-999999999,3.141592643589793],
[10,-1000,3.131592986903128],
[10,-100,3.0419240010986313],
[10,-99.5,3.0414264887018683],
[10,-99,3.0409240014319643],
[10,-10,2.356194490192345],
[10,-5,2.0344439357957027],
[10,-4.5,1.9936502529278373],
[10,-3.1,1.8714019968372921],
[10,-2.5,1.8157749899217608],
[10,-2,1.7681918866447774],
[10,-1.99,1.7672301635329326],
[10,-1.5,1.719686274404394],
[10,-1.1,1.680355853568841],
[10,-1,1.6704649792860586],
[10,-0.9,1.6605545009848472],
[10,-0.8,1.6506263125071339],
[10,-0.75,1.6456561745056635],
[10,-0.666,1.6372981185957207],
[10,-0.5,1.6207547225168393],
[10,-0.499,1.620654971396217],
[10,-0.3,1.6007873316517744],
[10,-0.2,1.590793660768047],
[10,-0.1,1.5807959934815619],
[10,-0.001,1.5708963267945633],
[10,-0.00001,1.5707973267948967],
[10,0,1.5707963267948966],
[10,0.00001,1.5707953267948966],
[10,0.001,1.5706963267952299],
[10,0.1,1.5607966601082315],
[10,0.2,1.550798992821746],
[10,0.3,1.5408053219380187],
[10,0.499,1.5209376821935763],
[10,0.5,1.5208379310729538],
[10,0.666,1.5042945349940726],
[10,0.75,1.4959364790841299],
[10,0.8,1.4909663410826592],
[10,0.9,1.481038152604946],
[10,1,1.4711276743037347],
[10,1.1,1.4612368000209524],
[10,1.5,1.4219063791853994],
[10,1.99,1.3743624900568607],
[10,2,1.373400766945016],
[10,2.5,1.3258176636680326],
[10,3.1,1.2701906567525012],
[10,4.5,1.1479424006619559],
[10,5,1.1071487177940904],
[10,10,0.7853981633974483],
[10,99,0.1006686521578289],
[10,99.5,0.10016616488792511],
[10,100,0.09966865249116202],
[10,1000,0.009999666686665238],
[10,999999999,1.000000001e-8],
[99,-999999999,3.141592554589793],
[99,-1000,3.042914197824218],
[99,-100,2.361219573523157],
[99,-99.5,2.3587133765527217],
[99,-99,2.356194490192345],
[99,-10,1.6714649789527256],
[99,-5,1.6212585008117524],
[99,-4.5,1.6162196062164735],
[99,-3.1,1.602099229822382],
[99,-2.5,1.5960434863390585],
[99,-2,1.5909955993759646],
[99,-1.99,1.5908946302769316],
[99,-1.5,1.5859466826696664],
[99,-1.1,1.5819069806925041],
[99,-1,1.5808969933802186],
[99,-0.9,1.5798869854599564],
[99,-0.8,1.5788769589917964],
[99,-0.75,1.578371939446092],
[99,-0.666,1.5775234980413286],
[99,-0.5,1.5758467889039691],
[99,-0.499,1.5758366881509993],
[99,-0.3,1.5738266205497593],
[99,-0.2,1.5728165260668117],
[99,-0.1,1.5718064274614612],
[99,-0.001,1.5708064278049974],
[99,-0.00001,1.5707964278049977],
[99,0,1.5707963267948966],
[99,0.00001,1.5707962257847956],
[99,0.001,1.570786225784796],
[99,0.1,1.5697862261283322],
[99,0.2,1.5687761275229817],
[99,0.3,1.5677660330400338],
[99,0.499,1.565755965438794],
[99,0.5,1.565745864685824],
[99,0.666,1.5640691555484647],
[99,0.75,1.5632207141437011],
[99,0.8,1.5627156945979968],
[99,0.9,1.561705668129837],
[99,1,1.5606956602095747],
[99,1.1,1.5596856728972892],
[99,1.5,1.555645970920127],
[99,1.99,1.5506980233128616],
[99,2,1.5505970542138288],
[99,2.5,1.5455491672507347],
[99,3.1,1.5394934237674114],
[99,4.5,1.5253730473733196],
[99,5,1.5203341527780407],
[99,10,1.4701276746370677],
[99,99,0.7853981633974483],
[99,99.5,0.7828792770370715],
[99,100,0.7803730800666359],
[99,1000,0.09867845576557521],
[99,999999999,9.900000009899968e-8],
[99.5,-999999999,3.1415925540897933],
[99.5,-1000,3.042419075071749],
[99.5,-100,2.358700750608933],
[99.5,-99.5,2.356194490192345],
[99.5,-99,2.353675603831968],
[99.5,-10,1.6709624916828216],
[99.5,-5,1.6210053490780079],
[99.5,-4.5,1.615991660015726],
[99.5,-3.1,1.6019420307660597],
[99.5,-2.5,1.5959166696912488],
[99.5,-2,1.5908941228934879],
[99.5,-1.99,1.590793660768047],
[99.5,-1.5,1.585870561789856],
[99.5,-1.1,1.5818511528210555],
[99.5,-1,1.580846239687931],
[99.5,-0.9,1.5798413062559027],
[99.5,-0.8,1.5788363545541597],
[99.5,-0.75,1.578333872486328],
[99.5,-0.666,1.577489694172899],
[99.5,-0.5,1.575821410125709],
[99.5,-0.499,1.575811360127727],
[99.5,-0.3,1.5738113930354696],
[99.5,-0.2,1.5728063743390894],
[99.5,-0.1,1.5718013515821412],
[99.5,-0.001,1.5708063770461527],
[99.5,-0.00001,1.570796427297409],
[99.5,0,1.5707963267948966],
[99.5,0.00001,1.570796226292384],
[99.5,0.001,1.5707862765436407],
[99.5,0.1,1.569791302007652],
[99.5,0.2,1.568786279250704],
[99.5,0.3,1.5677812605543238],
[99.5,0.499,1.5657812934620663],
[99.5,0.5,1.5657712434640843],
[99.5,0.666,1.564102959416894],
[99.5,0.75,1.563258781103465],
[99.5,0.8,1.5627562990356334],
[99.5,0.9,1.5617513473338906],
[99.5,1,1.5607464139018623],
[99.5,1.1,1.5597415007687376],
[99.5,1.5,1.5557220917999373],
[99.5,1.99,1.550798992821746],
[99.5,2,1.5506985306963055],
[99.5,2.5,1.5456759838985445],
[99.5,3.1,1.5396506228237334],
[99.5,4.5,1.5256009935740673],
[99.5,5,1.5205873045117855],
[99.5,10,1.4706301619069715],
[99.5,99,0.7879170497578252],
[99.5,99.5,0.7853981633974483],
[99.5,100,0.7828919029808601],
[99.5,1000,0.09917357851804426],
[99.5,999999999,9.950000009949967e-8],
[100,-999999999,3.1415925535897933],
[100,-1000,3.0419240010986313],
[100,-100,2.356194490192345],
[100,-99.5,2.3536882297757566],
[100,-99,2.3511694068615325],
[100,-10,1.6704649792860586],
[100,-5,1.6207547225168393],
[100,-4.5,1.6157659886472242],
[100,-3.1,1.601786402183466],
[100,-2.5,1.5957911204138169],
[100,-2,1.590793660768047],
[100,-1.99,1.5906937005525459],
[100,-1.5,1.5857952019467472],
[100,-1.1,1.5817958831604373],
[100,-1,1.5807959934815619],
[100,-0.9,1.5797960838067058],
[100,-0.8,1.5787961561347832],
[100,-0.75,1.5782961861746425],
[100,-0.666,1.577456228328085],
[100,-0.5,1.575796285128855],
[100,-0.499,1.575786285378349],
[100,-0.3,1.5737963177949452],
[100,-0.2,1.5727963241282363],
[100,-0.1,1.5717963264615635],
[100,-0.001,1.5708063267948962],
[100,-0.00001,1.5707964267948966],
[100,0,1.5707963267948966],
[100,0.00001,1.5707962267948967],
[100,0.001,1.570786326794897],
[100,0.1,1.5697963271282298],
[100,0.2,1.5687963294615568],
[100,0.3,1.5677963357948481],
[100,0.499,1.5658063682114443],
[100,0.5,1.5657963684609384],
[100,0.666,1.564136425261708],
[100,0.75,1.5632964674151508],
[100,0.8,1.56279649745501],
[100,0.9,1.5617965697830876],
[100,1,1.5607966601082315],
[100,1.1,1.5597967704293558],
[100,1.5,1.555797451643046],
[100,1.99,1.5508989530372472],
[100,2,1.550798992821746],
[100,2.5,1.5458015331759765],
[100,3.1,1.539806251406327],
[100,4.5,1.5258266649425691],
[100,5,1.5208379310729538],
[100,10,1.4711276743037347],
[100,99,0.7904232467282607],
[100,99.5,0.7879044238140365],
[100,100,0.7853981633974483],
[100,1000,0.09966865249116202],
[100,999999999,1.0000000009999967e-7],
[1000,-999999999,3.141591653589792],
[1000,-1000,2.356194490192345],
[1000,-100,1.6704649792860586],
[1000,-99.5,1.6699699053129409],
[1000,-99,1.6694747825604719],
[1000,-10,1.5807959934815619],
[1000,-5,1.575796285128855],
[1000,-4.5,1.5752962964202657],
[1000,-3.1,1.5738963168646205],
[1000,-2.5,1.5732963215865827],
[1000,-2,1.5727963241282363],
[1000,-1.99,1.5727863241680364],
[1000,-1.5,1.572296325669898],
[1000,-1.1,1.5718963263512302],
[1000,-1,1.5717963264615635],
[1000,-0.9,1.5716963265518968],
[1000,-0.8,1.57159632662423],
[1000,-0.75,1.5715463266542717],
[1000,-0.666,1.5714623266964272],
[1000,-0.5,1.57129632675323],
[1000,-0.499,1.5712953267534795],
[1000,-0.3,1.5710963267858966],
[1000,-0.2,1.57099632679223],
[1000,-0.1,1.5708963267945633],
[1000,-0.001,1.5707973267948967],
[1000,-0.00001,1.5707963367948967],
[1000,0,1.5707963267948966],
[1000,0.00001,1.5707963167948966],
[1000,0.001,1.5707953267948966],
[1000,0.1,1.5706963267952299],
[1000,0.2,1.5705963267975633],
[1000,0.3,1.5704963268038967],
[1000,0.499,1.5702973268363138],
[1000,0.5,1.5702963268365633],
[1000,0.666,1.570130326893366],
[1000,0.75,1.5700463269355216],
[1000,0.8,1.5699963269655632],
[1000,0.9,1.5698963270378965],
[1000,1,1.5697963271282298],
[1000,1.1,1.569696327238563],
[1000,1.5,1.569296327919895],
[1000,1.99,1.5688063294217567],
[1000,2,1.5687963294615568],
[1000,2.5,1.5682963320032104],
[1000,3.1,1.5676963367251726],
[1000,4.5,1.5662963571695276],
[1000,5,1.5657963684609384],
[1000,10,1.5607966601082315],
[1000,99,1.4721178710293215],
[1000,99.5,1.4716227482768525],
[1000,100,1.4711276743037347],
[1000,1000,0.7853981633974483],
[1000,999999999,0.0000010000000009996668],
[999999999,-999999999,2.356194490192345],
[999999999,-1000,1.5707973267948976],
[999999999,-100,1.5707964267948966],
[999999999,-99.5,1.5707964262948968],
[999999999,-99,1.5707964257948968],
[999999999,-10,1.5707963367948967],
[999999999,-5,1.5707963317948965],
[999999999,-4.5,1.5707963312948967],
[999999999,-3.1,1.5707963298948966],
[999999999,-2.5,1.5707963292948965],
[999999999,-2,1.5707963287948967],
[999999999,-1.99,1.5707963287848967],
[999999999,-1.5,1.5707963282948967],
[999999999,-1.1,1.5707963278948966],
[999999999,-1,1.5707963277948966],
[999999999,-0.9,1.5707963276948966],
[999999999,-0.8,1.5707963275948966],
[999999999,-0.75,1.5707963275448966],
[999999999,-0.666,1.5707963274608967],
[999999999,-0.5,1.5707963272948966],
[999999999,-0.499,1.5707963272938965],
[999999999,-0.3,1.5707963270948966],
[999999999,-0.2,1.5707963269948966],
[999999999,-0.1,1.5707963268948966],
[999999999,-0.001,1.5707963267958966],
[999999999,-0.00001,1.5707963267949066],
[999999999,0,1.5707963267948966],
[999999999,0.00001,1.5707963267948866],
[999999999,0.001,1.5707963267938967],
[999999999,0.1,1.5707963266948965],
[999999999,0.2,1.5707963265948965],
[999999999,0.3,1.5707963264948965],
[999999999,0.499,1.5707963262958966],
[999999999,0.5,1.5707963262948965],
[999999999,0.666,1.5707963261288966],
[999999999,0.75,1.5707963260448967],
[999999999,0.8,1.5707963259948967],
[999999999,0.9,1.5707963258948967],
[999999999,1,1.5707963257948967],
[999999999,1.1,1.5707963256948967],
[999999999,1.5,1.5707963252948967],
[999999999,1.99,1.5707963248048966],
[999999999,2,1.5707963247948966],
[999999999,2.5,1.5707963242948966],
[999999999,3.1,1.5707963236948965],
[999999999,4.5,1.5707963222948966],
[999999999,5,1.5707963217948966],
[999999999,10,1.5707963167948966],
[999999999,99,1.5707962277948966],
[999999999,99.5,1.5707962272948965],
[999999999,100,1.5707962267948965],
[999999999,1000,1.5707953267948955],
[999999999,999999999,0.7853981633974483]
];
values.forEach(function(v) {
var query = "RETURN ATAN2(@v1, @v2)";
assertAlmostEqual(v[2], getQueryResults(query, { v1: v[0], v2: v[1] })[0]);
query = "RETURN NOOPT(ATAN2(@v1, @v2))";
assertAlmostEqual(v[2], getQueryResults(query, { v1: v[0], v2: v[1] })[0]);
query = "RETURN NOOPT(V8(ATAN2(@v1, @v2)))";
assertAlmostEqual(v[2], getQueryResults(query, { v1: v[0], v2: v[1] })[0]);
});
},
////////////////////////////////////////////////////////////////////////////////
/// @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)");
var i = 0;
assertEqual(actual.length, expected.length);
for (i = 0; i < expected.length; ++i) {
assertEqual(expected[i].toPrecision(5), actual[i].toPrecision(5));
}
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(actual.length, expected.length);
for (i = 0; i < expected.length; ++i) {
assertEqual(expected[i].toPrecision(5), actual[i].toPrecision(5));
}
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(actual.length, expected.length);
for (i = 0; i < expected.length; ++i) {
assertEqual(expected[i].toPrecision(5), actual[i].toPrecision(5));
}
},
////////////////////////////////////////////////////////////////////////////////
/// @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) {
// assertEqual(0, actual[0]);
// }
// else {
assertAlmostEqual(value[1], actual[0]);
// }
actual = getQueryResults("RETURN NOOPT(SQRT(" + JSON.stringify(value[0]) + "))");
// if (value[1] === null) {
// assertEqual(0, actual[0]);
// }
// else {
assertAlmostEqual(value[1], actual[0]);
// }
actual = getQueryResults("RETURN NOOPT(V8(SQRT(" + JSON.stringify(value[0]) + ")))");
// if (value[1] === null) {
// assertEqual(0, actual[0]);
// }
// else {
assertAlmostEqual(value[1], actual[0]);
// }
});
},
////////////////////////////////////////////////////////////////////////////////
/// @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);
assertAlmostEqual(value[2], actual[0]);
actual = getQueryResults("RETURN NOOPT(POW(" + JSON.stringify(value[0]) + ", " + JSON.stringify(value[1]) + "))");
assertAlmostEqual(value[2], actual[0], value);
query = "RETURN NOOPT(V8(POW(" + JSON.stringify(value[0]) + ", " + JSON.stringify(value[1]) + ")))";
actual = getQueryResults(query);
assertAlmostEqual(value[2], actual[0]);
});
},
////////////////////////////////////////////////////////////////////////////////
/// @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();