rpl.rb/spec/language_trig_spec.rb

73 lines
1.9 KiB
Ruby
Raw Normal View History

2022-01-18 17:07:25 +01:00
# coding: utf-8
# frozen_string_literal: true
2022-02-17 15:09:29 +01:00
require 'minitest/autorun'
2022-01-18 17:07:25 +01:00
2022-02-15 17:06:19 +01:00
require 'rpl'
2022-01-18 17:07:25 +01:00
2022-02-17 15:09:29 +01:00
class TesttLanguageOperations < MiniTest::Test
2022-01-18 17:07:25 +01:00
def test_pi
2022-02-10 14:50:59 +01:00
interpreter = Rpl.new
interpreter.run 'pi'
2022-02-10 14:33:09 +01:00
assert_equal [{ value: BigMath.PI( interpreter.precision ), type: :numeric, base: 10 }],
interpreter.stack
2022-01-18 17:07:25 +01:00
end
def test_sin
2022-02-10 14:50:59 +01:00
interpreter = Rpl.new
interpreter.run '3 sin'
2022-02-10 14:33:09 +01:00
assert_equal [{ value: BigMath.sin( BigDecimal( 3 ), interpreter.precision ), type: :numeric, base: 10 }],
interpreter.stack
2022-01-18 17:07:25 +01:00
end
def test_asin
2022-02-10 14:50:59 +01:00
interpreter = Rpl.new
interpreter.run '1 asin pi 2 / =='
assert_equal [{ value: true, type: :boolean }],
interpreter.stack
2022-01-18 17:07:25 +01:00
end
def test_cos
2022-02-10 14:50:59 +01:00
interpreter = Rpl.new
interpreter.run '3 cos'
2022-02-10 14:33:09 +01:00
assert_equal [{ value: BigMath.cos( BigDecimal( 3 ), interpreter.precision ), type: :numeric, base: 10 }],
interpreter.stack
2022-01-18 17:07:25 +01:00
end
def test_acos
2022-02-10 14:50:59 +01:00
interpreter = Rpl.new
interpreter.run '0 acos pi 2 / =='
assert_equal [{ value: true, type: :boolean }],
interpreter.stack
2022-01-18 17:07:25 +01:00
end
def test_tan
2022-02-10 14:50:59 +01:00
interpreter = Rpl.new
interpreter.run '0 tan 0 =='
assert_equal [{ value: true, type: :boolean }],
interpreter.stack
2022-01-18 17:07:25 +01:00
end
def test_atan
2022-02-10 14:50:59 +01:00
interpreter = Rpl.new
interpreter.run '1 atan'
2022-02-10 14:33:09 +01:00
assert_equal [{ value: BigMath.atan( BigDecimal( 1 ), interpreter.precision ), type: :numeric, base: 10 }],
interpreter.stack
2022-01-18 17:07:25 +01:00
end
2022-02-17 15:09:29 +01:00
def test_d2r
2022-02-10 14:50:59 +01:00
interpreter = Rpl.new
interpreter.run '90 d→r'
2022-02-10 14:33:09 +01:00
assert_equal [{ value: BigMath.PI( interpreter.precision ) / 2,
2022-02-02 16:42:19 +01:00
type: :numeric, base: 10 }],
interpreter.stack
2022-01-18 17:07:25 +01:00
end
2022-02-17 15:09:29 +01:00
def test_r2d
2022-02-10 14:50:59 +01:00
interpreter = Rpl.new
interpreter.run 'pi r→d'
2022-02-17 15:09:29 +01:00
assert_equal [{ value: BigDecimal( 180 ), type: :numeric, base: 10 }],
interpreter.stack
2022-01-18 17:07:25 +01:00
end
end