details: http://hg.nginx.org/njs/rev/87b49eec0c34 branches: changeset: 257:87b49eec0c34 user: Valentin Bartenev <vb...@nginx.com> date: Wed Nov 16 12:49:52 2016 +0300 description: Unit tests for all Math methods.
diffstat: njs/test/njs_unit_test.c | 360 +++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 360 insertions(+), 0 deletions(-) diffs (398 lines): diff -r 9b9f46b55de2 -r 87b49eec0c34 njs/test/njs_unit_test.c --- a/njs/test/njs_unit_test.c Tue Nov 15 18:28:35 2016 +0300 +++ b/njs/test/njs_unit_test.c Wed Nov 16 12:49:52 2016 +0300 @@ -5513,6 +5513,9 @@ static njs_unit_test_t njs_test[] = { nxt_string("Math.PI"), nxt_string("3.14159") }, + { nxt_string("Math.abs()"), + nxt_string("NaN") }, + { nxt_string("Math.abs(5)"), nxt_string("5") }, @@ -5525,6 +5528,243 @@ static njs_unit_test_t njs_test[] = { nxt_string("Math.abs('abc')"), nxt_string("NaN") }, + { nxt_string("Math.acos()"), + nxt_string("NaN") }, + + { nxt_string("Math.acos(NaN)"), + nxt_string("NaN") }, + + { nxt_string("Math.acos('abc')"), + nxt_string("NaN") }, + + { nxt_string("Math.acos(1.1)"), + nxt_string("NaN") }, + + { nxt_string("Math.acos(-1.1)"), + nxt_string("NaN") }, + + { nxt_string("Math.acos('1')"), + nxt_string("0") }, + + { nxt_string("Math.acos(0) - Math.PI/2"), + nxt_string("0") }, + + { nxt_string("Math.asin()"), + nxt_string("NaN") }, + + { nxt_string("Math.asin(NaN)"), + nxt_string("NaN") }, + + { nxt_string("Math.asin('abc')"), + nxt_string("NaN") }, + + { nxt_string("Math.asin(1.1)"), + nxt_string("NaN") }, + + { nxt_string("Math.asin(-1.1)"), + nxt_string("NaN") }, + + { nxt_string("Math.asin(0)"), + nxt_string("0") }, + + { nxt_string("Math.asin('-0')"), + nxt_string("-0") }, + + { nxt_string("Math.asin(1) - Math.PI/2"), + nxt_string("0") }, + + { nxt_string("Math.atan()"), + nxt_string("NaN") }, + + { nxt_string("Math.atan(NaN)"), + nxt_string("NaN") }, + + { nxt_string("Math.atan('abc')"), + nxt_string("NaN") }, + + { nxt_string("Math.atan('Infinity') - Math.PI/2"), + nxt_string("0") }, + + { nxt_string("Math.atan(-Infinity) + Math.PI/2"), + nxt_string("0") }, + + { nxt_string("Math.atan(0)"), + nxt_string("0") }, + + { nxt_string("Math.atan('-0')"), + nxt_string("-0") }, + + { nxt_string("Math.atan(1) - Math.PI/4"), + nxt_string("0") }, + + { nxt_string("Math.atan2()"), + nxt_string("NaN") }, + + { nxt_string("Math.atan2(1)"), + nxt_string("NaN") }, + + { nxt_string("Math.atan2('abc', 1)"), + nxt_string("NaN") }, + + { nxt_string("Math.atan2(1, 0) - Math.PI/2"), + nxt_string("0") }, + + { nxt_string("Math.atan2('1', -0) - Math.PI/2"), + nxt_string("0") }, + + { nxt_string("Math.atan2(0, '1')"), + nxt_string("0") }, + + { nxt_string("Math.atan2(0, 0)"), + nxt_string("0") }, + + { nxt_string("Math.atan2(0, -0) - Math.PI"), + nxt_string("0") }, + + { nxt_string("Math.atan2('0', -1) - Math.PI"), + nxt_string("0") }, + + { nxt_string("Math.atan2(-0, '0.1')"), + nxt_string("-0") }, + + { nxt_string("Math.atan2(-0, 0)"), + nxt_string("-0") }, + + { nxt_string("Math.atan2(-0, -0) + Math.PI"), + nxt_string("0") }, + + { nxt_string("Math.atan2('-0', '-1') + Math.PI"), + nxt_string("0") }, + + { nxt_string("Math.atan2(-0.1, 0) + Math.PI/2"), + nxt_string("0") }, + + { nxt_string("Math.atan2(-1, -0) + Math.PI/2"), + nxt_string("0") }, + + { nxt_string("Math.atan2(1, 'Infinity')"), + nxt_string("0") }, + + { nxt_string("Math.atan2(0.1, -Infinity) - Math.PI"), + nxt_string("0") }, + + { nxt_string("Math.atan2(-1, Infinity)"), + nxt_string("-0") }, + + { nxt_string("Math.atan2('-0.1', -Infinity) + Math.PI"), + nxt_string("0") }, + + { nxt_string("Math.atan2(Infinity, -5) - Math.PI/2"), + nxt_string("0") }, + + { nxt_string("Math.atan2(-Infinity, 5) + Math.PI/2"), + nxt_string("0") }, + + { nxt_string("Math.atan2('Infinity', 'Infinity') - Math.PI/4"), + nxt_string("0") }, + + { nxt_string("Math.atan2(Infinity, -Infinity) - 3*Math.PI/4"), + nxt_string("0") }, + + { nxt_string("Math.atan2(-Infinity, 'Infinity') + Math.PI/4"), + nxt_string("0") }, + + { nxt_string("Math.atan2('-Infinity', -Infinity) + 3*Math.PI/4"), + nxt_string("0") }, + + { nxt_string("Math.atan2(1, 1) - Math.atan2(-5, -5) - Math.PI"), + nxt_string("0") }, + + { nxt_string("Math.ceil()"), + nxt_string("NaN") }, + + { nxt_string("Math.ceil('abc')"), + nxt_string("NaN") }, + + { nxt_string("Math.ceil(0)"), + nxt_string("0") }, + + { nxt_string("Math.ceil('-0')"), + nxt_string("-0") }, + + { nxt_string("Math.ceil('Infinity')"), + nxt_string("Infinity") }, + + { nxt_string("Math.ceil(-Infinity)"), + nxt_string("-Infinity") }, + + { nxt_string("Math.ceil(-0.9)"), + nxt_string("-0") }, + + { nxt_string("Math.ceil(3.1)"), + nxt_string("4") }, + + { nxt_string("Math.cos()"), + nxt_string("NaN") }, + + { nxt_string("Math.cos('abc')"), + nxt_string("NaN") }, + + { nxt_string("Math.cos('0')"), + nxt_string("1") }, + + { nxt_string("Math.cos(-0)"), + nxt_string("1") }, + + { nxt_string("Math.cos(Infinity)"), + nxt_string("NaN") }, + + { nxt_string("Math.cos(-Infinity)"), + nxt_string("NaN") }, + + { nxt_string("Math.cos(Math.PI*2)"), + nxt_string("1") }, + + { nxt_string("Math.exp()"), + nxt_string("NaN") }, + + { nxt_string("Math.exp('abc')"), + nxt_string("NaN") }, + + { nxt_string("Math.exp('0')"), + nxt_string("1") }, + + { nxt_string("Math.exp(-0)"), + nxt_string("1") }, + + { nxt_string("Math.exp(Infinity)"), + nxt_string("Infinity") }, + + { nxt_string("Math.exp(-Infinity)"), + nxt_string("0") }, + + { nxt_string("Math.exp(1) - Math.E"), + nxt_string("0") }, + + { nxt_string("Math.floor()"), + nxt_string("NaN") }, + + { nxt_string("Math.floor('abc')"), + nxt_string("NaN") }, + + { nxt_string("Math.floor(0)"), + nxt_string("0") }, + + { nxt_string("Math.floor('-0')"), + nxt_string("-0") }, + + { nxt_string("Math.floor('Infinity')"), + nxt_string("Infinity") }, + + { nxt_string("Math.floor(-Infinity)"), + nxt_string("-Infinity") }, + + { nxt_string("Math.floor(0.9)"), + nxt_string("0") }, + + { nxt_string("Math.floor(-3.1)"), + nxt_string("-4") }, + { nxt_string("Math.hypot()"), nxt_string("0") }, @@ -5546,6 +5786,30 @@ static njs_unit_test_t njs_test[] = { nxt_string("Math.hypot(3, -4, 12.0, '84', 132)"), nxt_string("157") }, + { nxt_string("Math.log()"), + nxt_string("NaN") }, + + { nxt_string("Math.log('abc')"), + nxt_string("NaN") }, + + { nxt_string("Math.log(-1)"), + nxt_string("NaN") }, + + { nxt_string("Math.log(0)"), + nxt_string("-Infinity") }, + + { nxt_string("Math.log('-0')"), + nxt_string("-Infinity") }, + + { nxt_string("Math.log(1)"), + nxt_string("0") }, + + { nxt_string("Math.log(Infinity)"), + nxt_string("Infinity") }, + + { nxt_string("Math.log(Math.E)"), + nxt_string("1") }, + { nxt_string("Math.max()"), nxt_string("-Infinity") }, @@ -5579,6 +5843,39 @@ static njs_unit_test_t njs_test[] = { nxt_string("Math.pow()"), nxt_string("NaN") }, + { nxt_string("var a = Math.random(); a >= 0 && a < 1"), + nxt_string("true") }, + + { nxt_string("Math.round()"), + nxt_string("NaN") }, + + { nxt_string("Math.round('abc')"), + nxt_string("NaN") }, + + { nxt_string("Math.round(0)"), + nxt_string("0") }, + + { nxt_string("Math.round('-0')"), + nxt_string("-0") }, + + { nxt_string("Math.round('Infinity')"), + nxt_string("Infinity") }, + + { nxt_string("Math.round(-Infinity)"), + nxt_string("-Infinity") }, + + { nxt_string("Math.round(0.4)"), + nxt_string("0") }, + + { nxt_string("Math.round('0.5')"), + nxt_string("1") }, + + { nxt_string("Math.round('-0.4')"), + nxt_string("-0") }, + + { nxt_string("Math.round(-0.5)"), + nxt_string("-1") }, + { nxt_string("Math.sign(5)"), nxt_string("1") }, @@ -5597,6 +5894,69 @@ static njs_unit_test_t njs_test[] = { nxt_string("Math.sign()"), nxt_string("NaN") }, + { nxt_string("Math.sin()"), + nxt_string("NaN") }, + + { nxt_string("Math.sin('abc')"), + nxt_string("NaN") }, + + { nxt_string("Math.sin('0')"), + nxt_string("0") }, + + { nxt_string("Math.sin(-0)"), + nxt_string("-0") }, + + { nxt_string("Math.sin(Infinity)"), + nxt_string("NaN") }, + + { nxt_string("Math.sin(-Infinity)"), + nxt_string("NaN") }, + + { nxt_string("Math.sin(-Math.PI/2)"), + nxt_string("-1") }, + + { nxt_string("Math.sqrt()"), + nxt_string("NaN") }, + + { nxt_string("Math.sqrt('abc')"), + nxt_string("NaN") }, + + { nxt_string("Math.sqrt('0')"), + nxt_string("0") }, + + { nxt_string("Math.sqrt(-0)"), + nxt_string("-0") }, + + { nxt_string("Math.sqrt(Infinity)"), + nxt_string("Infinity") }, + + { nxt_string("Math.sqrt(-0.1)"), + nxt_string("NaN") }, + + { nxt_string("Math.sqrt('9.0')"), + nxt_string("3") }, + + { nxt_string("Math.tan()"), + nxt_string("NaN") }, + + { nxt_string("Math.tan('abc')"), + nxt_string("NaN") }, + + { nxt_string("Math.tan('0')"), + nxt_string("0") }, + + { nxt_string("Math.tan(-0)"), + nxt_string("-0") }, + + { nxt_string("Math.tan(Infinity)"), + nxt_string("NaN") }, + + { nxt_string("Math.tan(-Infinity)"), + nxt_string("NaN") }, + + { nxt_string("Math.tan(Math.PI/3) + Math.tan(-Math.PI/3)"), + nxt_string("0") }, + { nxt_string("Math.trunc(3.9)"), nxt_string("3") }, _______________________________________________ nginx-devel mailing list nginx-devel@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-devel