Procházet zdrojové kódy

Fixed fraction division line generator.

Taddeus Kroes před 14 roky
rodič
revize
bb3c5d23dc
2 změnil soubory, kde provedl 8 přidání a 1 odebrání
  1. 1 1
      line.py
  2. 7 0
      tests/test_line.py

+ 1 - 1
line.py

@@ -143,7 +143,7 @@ def generate_line(root):
             elif child_pred < node_pred:
                 exp = '(' + exp + ')'
             elif child_pred == node_pred:
-                if i and (op != child.title() \
+                if i and (op != child.title() or op == '/' \
                           or (op == '+' and child[1].negated)):
                     exp = '(' + exp + ')'
                 elif not i and op == '^':

+ 7 - 0
tests/test_line.py

@@ -221,3 +221,10 @@ class TestLine(unittest.TestCase):
     def test_double_negation(self):
         neg = --L(1)
         self.assertEquals(generate_line(neg), '--1')
+
+    def test_divide_fractions(self):
+        a, b, c, d = L('a'), L('b'), L('c'), L('d')
+        div = N('/', a, N('/', b, c))
+        self.assertEquals(generate_line(div), 'a / (b / c)')
+        div = N('/', N('/', a, b), N('/', c, d))
+        self.assertEquals(generate_line(div), 'a / b / (c / d)')