123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- #!/usr/bin/ruby
- include('../lib/bacovia.sf')
- var x = Symbol('x', +43)
- var y = Symbol('y', -43)
- var z = Symbol('z', 1.5)
- var k = Symbol('k', -0.5)
- assert_eq(asin(sin(+z)) -> numeric.round(-20), +1.5)
- assert_eq(asin(sin(-z)) -> numeric.round(-20), -1.5)
- assert_eq(acos(cos(+z)) -> numeric.round(-20), +1.5)
- assert_eq(acos(cos(-z)) -> numeric.round(-20), +1.5)
- assert_eq(atanh(tanh(+x)) -> numeric.round(-20), +43)
- assert_eq(atanh(tanh(-x)) -> numeric.round(-20), -43)
- assert_eq(atanh(tanh(+y)) -> numeric.round(-20), -43)
- assert_eq(acosh(cosh(+x)) -> numeric, +43)
- assert_eq(acosh(cosh(-x)) -> numeric, +43)
- assert_eq(acosh(cosh(+y)) -> numeric, +43)
- assert_eq(asinh(sinh(+x)) -> numeric, +43)
- assert_eq(asinh(sinh(-x)) -> numeric.round(-20), -43)
- assert_eq(asinh(sinh(+y)) -> numeric.round(-20), -43)
- assert_eq(asinh(sinh(k)) -> numeric.round(-20), -0.5)
- assert_eq(atanh(tanh(k)) -> numeric.round(-20), -0.5)
- assert_eq(acsch(csch(k)) -> numeric.round(-20), -0.5)
- assert_eq(acoth(coth(k)) -> numeric.round(-20), -0.5)
- assert_eq(acosh(cosh(k)) -> numeric.round(-20), 0.5)
- assert_eq(asech(sech(k)) -> numeric.round(-20), 0.5)
- var n = Symbol('n', 42)
- assert_eq(cos(Log(n)) -> simple.pretty, '((n^-i + n^i)/2)')
- assert_eq(sin(Log(n)) -> simple.pretty, '((n^i - n^-i)/(2i))')
- assert_eq(cosh(Log(n)) -> simple.pretty, '((1 + n^2)/(2 * n))')
- assert_eq(sinh(Log(n)) -> simple.pretty, '((n^2 - 1)/(2 * n))')
- assert_eq(asinh(sinh(n)) -> numeric, 42)
- assert_eq(acosh(cosh(n)) -> numeric, 42)
- #
- ## asinh(x)
- #
- do {
- var z = (x**2 - 1)/(2*x)
- assert_eq(Exp(asinh(z)) -> numeric.round(-50), +43)
- }
- #
- ## acosh(x)
- #
- do {
- var z = (x**2 + 1)/(2*x)
- assert_eq(Exp(acosh(z)) -> numeric.round(-50), +43)
- }
- do {
- var z = (y**2 + 1)/(2*y)
- assert_eq(Exp(acosh(z)) -> numeric, exp(acosh(((-43)**2 + 1)/(2*-43))))
- }
- #
- ## atanh(x)
- #
- do {
- var z = (x**2 - 1)/(x**2 + 1)
- assert_eq(Exp(atanh(z)) -> numeric.round(-50), +43)
- }
- do {
- var z = (y**2 - 1)/(y**2 + 1)
- assert_eq(Exp(atanh(z)) -> numeric.round(-50), 43)
- }
- say "** Test passed!"
|