コード例 #1
0
 def test_pullback_terminal(self):
     C = complex.Complex(3)
     a = form.TerminalForm(C, 1, "a")
     V = visitor.VisitorPullback()
     real = (a.pullback()).d()
     test = V._visit_preorder((a.d()).pullback())
     assert str(real) == str(test)
コード例 #2
0
 def test_visitor_hodge_distribution2(self):
     C = complex.Complex(3)
     a = form.TerminalForm(C, 1, "a")
     b = form.TerminalForm(C, 1, "b")
     V = visitor.VisitorHodgeDistribution()
     real = a.hodge() + b.hodge() + b.wedge(a)
     test = V._visit_preorder((a + b).hodge() + b.wedge(a))
     assert str(real) == str(test)
コード例 #3
0
 def test_visitor_wedgeD_distribution(self):
     C = complex.Complex(3)
     a = form.TerminalForm(C, 1, "a")
     b = form.TerminalForm(C, 1, "b")
     V = visitor.VisitorHodgeDistribution()
     real = 3 * ((2 * a).d().wedge(5 * b) - (2 * a).wedge((5 * b).d()))
     test = V._visit_preorder(3 * ((2 * a).wedge(5 * b)).d())
     V.draw_graph(test, "Essai3")
     assert str(real) == str(test)
コード例 #4
0
 def test_postorder(self):
     C = complex.Complex(3)
     a = form.TerminalForm(C, 1, "a")
     b = form.TerminalForm(C, 1, "b")
     V = visitor.VisitorGraph()
     form1 = (a + b).wedge(a) + (a + b).hodge()
     V.visit_postorder(form1)
     test = V.post
     assert test == ['a', 'b', '+', 'a', '^', 'a', 'b', '+', '*', '+']
コード例 #5
0
 def test_drawgraph(self):
     C = complex.Complex(3)
     a = form.TerminalForm(C, 1, "a")
     b = form.TerminalForm(C, 1, "b")
     V = visitor.VisitorGraph()
     form1 = -2 * ((4 * (a + b)).wedge(
         -2 * a)) + 5 * (a - 3 * b + (2 * a + 5 * b).d().hodge()).hodge()
     V.draw_graph(form1, "originalform")
     test = str(V.dot.source)
     assert test == '// Tree of our form\ngraph {\n\t0 [label="+"]\n\t1 [label="-2^ "]\n\t\t0 -- 1\n\t2 [label="4+ "]\n\t\t1 -- 2\n\t3 [label=a]\n\t\t2 -- 3\n\t4 [label=b]\n\t\t2 -- 4\n\t5 [label="-2a "]\n\t\t1 -- 5\n\t6 [label="5* "]\n\t\t0 -- 6\n\t7 [label="+"]\n\t\t6 -- 7\n\t8 [label="+"]\n\t\t7 -- 8\n\t9 [label=a]\n\t\t8 -- 9\n\t10 [label="-3b "]\n\t\t8 -- 10\n\t11 [label="*"]\n\t\t7 -- 11\n\t12 [label=d]\n\t\t11 -- 12\n\t13 [label="+"]\n\t\t12 -- 13\n\t14 [label="2a "]\n\t\t13 -- 14\n\t15 [label="5b "]\n\t\t13 -- 15\n}'
コード例 #6
0
 def test_pullback_draw(self):
     C = complex.Complex(3)
     a = form.TerminalForm(C, 1, "a")
     b = form.TerminalForm(C, 1, "b")
     V = visitor.VisitorPullback()
     form1 = (-2 * ((4 * (a + b)).wedge(-2 * a)) + 5 *
              (a - 3 * b + (2 * a + 5 * b).d().hodge()).hodge()).pullback()
     V.draw_graph(form1, "Pulled")
     test = (V.visit_preorder(form1))
     assert str(
         test) != '-2(4(phi(a)+phi(b))^phi(-2a))+phi5.(5*(a+-3b+*d(2a+5b)))'
コード例 #7
0
 def test_basisde_draw(self):
     C = complex.Complex(3)
     a = form.TerminalForm(C, 1, "a")
     b = form.TerminalForm(C, 1, "b")
     V = visitor.VisitorPullback()
     form1 = (-2 * ((4 * (a + b)).wedge(-2 * a)) + 5 *
              (a - 3 * b + (2 * a + 5 * b).d().hodge()).hodge()).pullback()
     form1 = V.visit_preorder(form1)
     Vi = visitor.VisitorSimplification()
     form1 = Vi.visit_preorder(form1)
     Vii = visitor.VisitorExpansion()
     Vii.draw_graph(form1, "decomposed")
     test = (Vii.visit_preorder(form1))
     test = str(test)
     assert test != "-2(4(a'0^dx_0+a'1^dx_1+a'2^dx_2+b'0^dx_0+b'1^dx_1+b'2^dx_2)^-2(a'0^dx_0+a'1^dx_1+a'2^dx_2))+phi5.(5*(a0^dx_0+a1^dx_1+a2^dx_2+-3(b0^dx_0+b1^dx_1+b2^dx_2)+*d(2(a0^dx_0+a1^dx_1+a2^dx_2)+5(b0^dx_0+b1^dx_1+b2^dx_2))))"
コード例 #8
0
 def test_hodgeexpansion_draw(self):
     C = complex.Complex(3)
     a = form.TerminalForm(C, 1, "a")
     b = form.TerminalForm(C, 1, "b")
     V = visitor.VisitorPullback()
     form1 = (-2 * ((4 * (a + b)).wedge(-2 * a)) + 5 *
              (a - 3 * b + (2 * a + 5 * b).d().hodge()).hodge()).pullback()
     form1 = V.visit_preorder(form1)
     Vi = visitor.VisitorSimplification()
     form1 = Vi.visit_preorder(form1)
     Vii = visitor.VisitorExpansion()
     form1 = Vii.visit_preorder(form1)
     Viii = visitor.VisitorHodgeDistribution()
     Viii.draw_graph(form1, "HodgeDistribution")
     test = (Viii.visit_preorder(form1))
     test = str(test)
     assert test != "a"
コード例 #9
0
    for row in range(n):
        x0 = xc - (size / 2) + (size * col / n)
        y0 = yc - (size / 2) + (size * row / n)
        z0 = complex(x0, y0)
        gray = MAX - mandel(z0, MAX)
        color = Color(gray, gray, gray)
        pic.set(col, n - 1 - row, color)
print(w1.elapsedTime())

w2 = Stopwatch()
pic = Picture(n, n)
for col in range(n):
    for row in range(n):
        x0 = xc - (size / 2) + (size * col / n)
        y0 = yc - (size / 2) + (size * row / n)
        z0 = com.Complex(x0, y0)
        gray = MAX - mandel(z0, MAX)
        color = Color(gray, gray, gray)
        pic.set(col, n - 1 - row, color)
print(w2.elapsedTime())

#stddraw.setCanvasSize(n, n)
#stddraw.picture(pic)
#stddraw.show()

#-----------------------------------------------------------------------
#bai@ubuntu:~/pythonProject/princeton/3.2$ python3 14_mandelbrotTime.py
#pygame 1.9.6
#Hello from the pygame community. https://www.pygame.org/contribute.html
#5.372214317321777
#37.89339089393616
コード例 #10
0
 def test_add(self):
     C = complex.Complex(3)
     a = form.TerminalForm(C, 1, "a")
     b = form.TerminalForm(C, 1, "b")
     assert str(a + b) == "a+b"
コード例 #11
0
 def test_not_equals(self):
     c1 = complex.Complex(15, 10)
     c2 = complex.Complex(22, 22)
     self.assertNotEqual(c1, c2)
コード例 #12
0
 def test_diff(self):
     C = complex.Complex(3)
     a = form.TerminalForm(C, 1, "a")
     assert str(a.d()) == "da"
コード例 #13
0
 def test_scalarmult(self):
     C = complex.Complex(3)
     a = form.TerminalForm(C, 1, "a")
     assert str(2 * a) == "2a"
コード例 #14
0
 def test_hodge(self):
     C = complex.Complex(3)
     a = form.TerminalForm(C, 1, "a")
     assert str(a.hodge()) == "*a"
コード例 #15
0
 def test_add_rule_samerank(self):
     C = complex.Complex(3)
     a = form.TerminalForm(C, 1, "a")
     b = form.TerminalForm(C, 2, "b")
     assert str(a + b) == "to be added, the forms must have the same rank"
コード例 #16
0
 def test_add(self):
     c1 = complex.Complex(15, 10)
     c2 = complex.Complex(15, 10)
     c3 = c1.add(c2)
     self.assertEqual(c3.getRealPart(), 30)
     self.assertEqual(c3.getImaginaryPart(), 20)
コード例 #17
0
 def test_equals(self):
     c1 = complex.Complex(15, 10)
     c2 = complex.Complex(15, 10)
     self.assertEqual(c1, c2)
コード例 #18
0
 def test_wedge(self):
     C = complex.Complex(3)
     a = form.TerminalForm(C, 1, "a")
     b = form.TerminalForm(C, 1, "b")
     assert str(a.wedge(b)) == "a^b"
コード例 #19
0
 def test_create(self):
     c = complex.Complex(15, 10)
     self.assertEqual(c.getRealPart(), 15)
     self.assertEqual(c.getImaginaryPart(), 10)
コード例 #20
0
 def test_subtract(self):
     number1 = complex.Complex(5, 4)
     number2 = complex.Complex(12, 2)
     result = complex.Complex(-7, 2)
     self.assertEqual((result.r, result.i), number1 - number2)