test_rules_derivatives.py 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. from src.rules.derivatives import get_derivation_variable, \
  2. match_constant_derivative, one_derivative, zero_derivative
  3. from src.possibilities import Possibility as P
  4. from tests.rulestestcase import RulesTestCase, tree
  5. class TestRulesDerivatives(RulesTestCase):
  6. def test_get_derivation_variable(self):
  7. xy, x, l1 = tree('der(xy, x), der(x), der(1)')
  8. self.assertEqual(get_derivation_variable(xy), 'x')
  9. self.assertEqual(get_derivation_variable(x), 'x')
  10. self.assertIsNone(get_derivation_variable(l1))
  11. self.assertRaises(ValueError, tree, 'der(xy)')
  12. def test_match_constant_derivative(self):
  13. root = tree('der(x)')
  14. self.assertEqualPos(match_constant_derivative(root),
  15. [P(root, one_derivative, ())])
  16. root = tree('der(x, x)')
  17. self.assertEqualPos(match_constant_derivative(root),
  18. [P(root, one_derivative, ())])
  19. root = tree('der(x, y)')
  20. self.assertEqualPos(match_constant_derivative(root),
  21. [P(root, zero_derivative, ())])
  22. root = tree('der(2)')
  23. self.assertEqualPos(match_constant_derivative(root),
  24. [P(root, zero_derivative, ())])
  25. def test_one_derivative(self):
  26. root = tree('der(x)')
  27. self.assertEqual(one_derivative(root, ()), 1)
  28. def test_zero_derivative(self):
  29. root = tree('der(1)')
  30. self.assertEqual(zero_derivative(root, ()), 0)