~corrado-maurini/dolfin/tao

« back to all changes in this revision

Viewing changes to test/unit/function/python/FunctionSpace.py

  • Committer: corrado maurini
  • Date: 2012-12-18 12:16:08 UTC
  • mfrom: (6685.78.207 trunk)
  • Revision ID: corrado.maurini@upmc.fr-20121218121608-nk82ly9jgsld9u84
updating with trunk, fix uint in TAO solver and hacking the check for tao FindTAO.cmake

Show diffs side-by-side

added added

removed removed

Lines of Context:
23
23
import unittest
24
24
from dolfin import *
25
25
 
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)
29
29
Q = W*V
34
34
 
35
35
class Interface(unittest.TestCase):
36
36
 
 
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)
 
44
 
37
45
    def test_equality(self):
38
46
        self.assertEqual(V, V)
39
47
        self.assertEqual(V, V2)
70
78
        f0 = Function(V)
71
79
        f1 = Function(Vc)
72
80
        self.assertEqual(len(f0.vector()), len(f1.vector()))
73
 
        
 
81
 
 
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)
 
87
 
 
88
        for TF in (TestFunction, TrialFunction):
 
89
            v = TF(V)
 
90
            v2 = TF(V2)
 
91
            v3 = TF(V3)
 
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)
 
102
 
 
103
            w = TF(W)
 
104
            w2 = TF(W2)
 
105
            w3 = TF(W3)
 
106
            self.assertEqual(w, w2)
 
107
            self.assertEqual(w2, w)
 
108
            self.assertNotEqual(w, w3)
 
109
            self.assertNotEqual(w2, w3)
 
110
 
 
111
            self.assertNotEqual(v, w)
 
112
            self.assertNotEqual(w, v)
 
113
 
 
114
            s1 = set((v, w))
 
115
            s2 = set((v2, w2))
 
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)
 
123
 
 
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))
 
128
 
74
129
if __name__ == "__main__":
75
130
    unittest.main()