basic.sf 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. #!/usr/bin/ruby
  2. include('../lib/bacovia.sf')
  3. var a = Fraction(3, 4)
  4. var b = Fraction(5, 6)
  5. assert_eq(a+b, Fraction(38, 24))
  6. assert_eq(a*b, Fraction(15, 24))
  7. assert_eq(a/b, Fraction(18, 20))
  8. assert_eq(a-b, Fraction(-2, 24))
  9. assert_eq(a**b, Power(a, b))
  10. #assert_eq(a * Log(b), Fraction(Product(Log(Fraction(5, 6)), 3), 4))
  11. #assert_eq(a * Exp(b), Fraction(Product(Exp(Fraction(5, 6)), 3), 4))
  12. assert_eq(a * Log(b), Product(Fraction(3, 4), Log(Fraction(5, 6))))
  13. assert_eq(a * Exp(b), Product(Fraction(3, 4), Exp(Fraction(5, 6))))
  14. assert_eq(Exp(Exp(Log(5))).simple, Exp(5))
  15. assert_eq(a / Log(b), Fraction(Fraction(3, 4), Log(Fraction(5, 6))))
  16. #assert_eq(a / Log(b), Fraction(3, Product(4, Log(Fraction(5, 6)))))
  17. assert_eq(a / Exp(b), Fraction(Fraction(3, 4), Exp(Fraction(5, 6))))
  18. #assert_eq(a / Exp(b), Fraction(3, Product(4, Exp(Fraction(5, 6)))))
  19. assert_eq(-Log(b), Log(Fraction(6, 5)))
  20. assert_eq(Exp(b).inv, Exp(Fraction(-5, 6)))
  21. assert_eq(Log(a)+Log(b), Log(a*b))
  22. assert_eq(Exp(a)*Exp(b), Exp(a+b))
  23. assert_eq(Exp(Exp(Exp(Log(Log(Log(a)))))).simple, 3/4)
  24. say "** Test passed!"