24
24
from dolfin import *
26
mesh = UnitCube(8, 8, 8)
26
mesh = UnitCubeMesh(8, 8, 8)
27
27
V = FunctionSpace(mesh, 'CG', 1)
28
28
W = VectorFunctionSpace(mesh, 'CG', 1)
35
35
class Interface(unittest.TestCase):
37
def test_component(self):
38
self.assertFalse(W.component())
39
self.assertFalse(V.component())
40
self.assertEqual(W.sub(0).component()[0], 0)
41
self.assertEqual(W.sub(1).component()[0], 1)
42
self.assertEqual(Q.sub(0).component()[0], 0)
43
self.assertEqual(Q.sub(1).component()[0], 1)
37
45
def test_equality(self):
38
46
self.assertEqual(V, V)
39
47
self.assertEqual(V, V2)
72
80
self.assertEqual(len(f0.vector()), len(f1.vector()))
82
def test_argument_equality(self):
83
"Placed this test here because it's mainly about detecting differing function spaces."
84
mesh2 = UnitCubeMesh(8, 8, 8)
85
V3 = FunctionSpace(mesh2, 'CG', 1)
86
W3 = VectorFunctionSpace(mesh2, 'CG', 1)
88
for TF in (TestFunction, TrialFunction):
92
self.assertEqual(v, v2)
93
self.assertEqual(v2, v)
94
self.assertNotEqual(V, V3)
95
self.assertNotEqual(V2, V3)
96
self.assertTrue(not(v == v3))
97
self.assertTrue(not(v2 == v3))
98
self.assertTrue(v != v3)
99
self.assertTrue(v2 != v3)
100
self.assertNotEqual(v, v3)
101
self.assertNotEqual(v2, v3)
106
self.assertEqual(w, w2)
107
self.assertEqual(w2, w)
108
self.assertNotEqual(w, w3)
109
self.assertNotEqual(w2, w3)
111
self.assertNotEqual(v, w)
112
self.assertNotEqual(w, v)
116
s3 = set((v, v2, w, w2))
117
self.assertEqual(len(s1), 2)
118
self.assertEqual(len(s2), 2)
119
self.assertEqual(len(s3), 2)
120
self.assertEqual(s1, s2)
121
self.assertEqual(s1, s3)
122
self.assertEqual(s2, s3)
124
# Test that the dolfin implementation of Argument.__eq__
125
# is triggered when comparing ufl expressions
126
self.assertTrue(grad(v) == grad(v2))
127
self.assertTrue(grad(v) != grad(v3))
74
129
if __name__ == "__main__":