test_leiden_oefenopgave_v12.py 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. from tests.rulestestcase import RulesTestCase as TestCase
  2. class TestLeidenOefenopgaveV12(TestCase):
  3. def test_1_a(self):
  4. self.assertRewrite([
  5. '-5(x^2 - 3x + 6)',
  6. '-(5x ^ 2 + 5(-3x) + 5 * 6)',
  7. '-(5x ^ 2 - 5 * 3x + 5 * 6)',
  8. '-(5x ^ 2 - 15x + 5 * 6)',
  9. '-(5x ^ 2 - 15x + 30)',
  10. '-5x ^ 2 - -15x - 30',
  11. '-5x ^ 2 + 15x - 30',
  12. ])
  13. def test_1_d(self):
  14. self.assertRewrite([
  15. '(2x + x)x',
  16. '(2 + 1)xx',
  17. '3xx',
  18. '3x ^ (1 + 1)',
  19. '3x ^ 2',
  20. ])
  21. def test_1_e(self):
  22. self.assertRewrite([
  23. '-2(6x - 4) ^ 2x',
  24. '-2(6x - 4)(6x - 4)x',
  25. '-(2 * 6x + 2(-4))(6x - 4)x',
  26. '-(12x + 2(-4))(6x - 4)x',
  27. '-(12x - 8)(6x - 4)x',
  28. '-(12x - 8)(6xx + (-4)x)',
  29. '-(12x - 8)(6x ^ (1 + 1) + (-4)x)',
  30. '-(12x - 8)(6x ^ 2 + (-4)x)',
  31. '-(12x - 8)(6x ^ 2 - 4x)',
  32. '-(12x * 6x ^ 2 + 12x(-4x) + (-8)6x ^ 2 + (-8)(-4x))',
  33. '-(72xx ^ 2 + 12x(-4x) + (-8)6x ^ 2 + (-8)(-4x))',
  34. '-(72x ^ (1 + 2) + 12x(-4x) + (-8)6x ^ 2 + (-8)(-4x))',
  35. '-(72x ^ 3 + 12x(-4x) + (-8)6x ^ 2 + (-8)(-4x))',
  36. '-(72x ^ 3 - 12x * 4x + (-8)6x ^ 2 + (-8)(-4x))',
  37. '-(72x ^ 3 - 48xx + (-8)6x ^ 2 + (-8)(-4x))',
  38. '-(72x ^ 3 - 48x ^ (1 + 1) + (-8)6x ^ 2 + (-8)(-4x))',
  39. '-(72x ^ 3 - 48x ^ 2 + (-8)6x ^ 2 + (-8)(-4x))',
  40. '-(72x ^ 3 - 48x ^ 2 + (-48)x ^ 2 + (-8)(-4x))',
  41. '-(72x ^ 3 - 48x ^ 2 - 48x ^ 2 + (-8)(-4x))',
  42. '-(72x ^ 3 - 48x ^ 2 - 48x ^ 2 - 8(-4x))',
  43. '-(72x ^ 3 - 48x ^ 2 - 48x ^ 2 - -8 * 4x)',
  44. '-(72x ^ 3 - 48x ^ 2 - 48x ^ 2 - -32x)',
  45. '-(72x ^ 3 - 48x ^ 2 - 48x ^ 2 + 32x)',
  46. '-(72x ^ 3 + (1 + 1)(-48x ^ 2) + 32x)',
  47. '-(72x ^ 3 + 2(-48x ^ 2) + 32x)',
  48. '-(72x ^ 3 - 2 * 48x ^ 2 + 32x)',
  49. '-(72x ^ 3 - 96x ^ 2 + 32x)',
  50. '-72x ^ 3 - -96x ^ 2 - 32x',
  51. '-72x ^ 3 + 96x ^ 2 - 32x',
  52. ])
  53. def test_2_a(self):
  54. self.assertRewrite([
  55. '(a ^ 2 * b ^ -1) ^ 3(ab ^ 2)',
  56. '(a ^ 2 * 1 / b ^ 1) ^ 3 * ab ^ 2',
  57. '(a ^ 2 * 1 / b) ^ 3 * ab ^ 2',
  58. '((a ^ 2 * 1) / b) ^ 3 * ab ^ 2',
  59. '(a ^ 2 / b) ^ 3 * ab ^ 2',
  60. '(a ^ 2) ^ 3 / b ^ 3 * ab ^ 2',
  61. 'a ^ (2 * 3) / b ^ 3 * ab ^ 2',
  62. 'a ^ 6 / b ^ 3 * ab ^ 2',
  63. '(a ^ 6 * a) / b ^ 3 * b ^ 2',
  64. 'a ^ (6 + 1) / b ^ 3 * b ^ 2',
  65. 'a ^ 7 / b ^ 3 * b ^ 2',
  66. '(a ^ 7 * b ^ 2) / b ^ 3',
  67. 'b ^ 2 / b ^ 3 * a ^ 7 / 1',
  68. 'b ^ (2 - 3)a ^ 7 / 1',
  69. 'b ^ (-1)a ^ 7 / 1',
  70. '1 / b ^ 1 * a ^ 7 / 1',
  71. '1 / b * a ^ 7 / 1',
  72. '1 / b * a ^ 7',
  73. '(1a ^ 7) / b',
  74. 'a ^ 7 / b',
  75. ])
  76. def test_2_b(self):
  77. self.assertRewrite([
  78. 'a^3b^2a^3',
  79. 'a ^ (3 + 3)b ^ 2',
  80. 'a ^ 6 * b ^ 2',
  81. ])
  82. #def test_2_c(self):
  83. # self.assertRewrite([
  84. # 'a^5+a^3',
  85. # 'a ^ 5 + a ^ 3',
  86. # ])
  87. def test_2_d(self):
  88. self.assertRewrite([
  89. 'a^2+a^2',
  90. '(1 + 1)a ^ 2',
  91. '2a ^ 2',
  92. ])
  93. def test_2_e(self):
  94. self.assertRewrite([
  95. '4b^-2',
  96. '4 * 1 / b ^ 2',
  97. '(4 * 1) / b ^ 2',
  98. '4 / b ^ 2',
  99. ])
  100. def test_2_f(self):
  101. self.assertRewrite([
  102. '(4b) ^ -2',
  103. '4 ^ (-2)b ^ (-2)',
  104. '1 / 4 ^ 2 * b ^ (-2)',
  105. '1 / 16 * b ^ (-2)',
  106. '1 / 16 * 1 / b ^ 2',
  107. '(1 * 1) / (16b ^ 2)',
  108. '1 / (16b ^ 2)',
  109. ])