test_leiden_oefenopgave_v12.py 3.8 KB

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