@@ -47,20 +47,58 @@ def test_inequality():
4747 assert_true (joule != Joule )
4848 assert_equal (repr (joule ), joule_repr )
4949
50+ def test_copy ():
51+ temp = meter .copy ()
52+ assert_true (temp is not meter )
53+ assert_true (isinstance (temp , Dimensionality ))
54+ assert_true (temp == meter )
55+ temp [q .m ] += 1
56+ assert_false (temp == meter )
57+
5058def test_addition ():
5159 assert_equal (repr (meter + meter ), meter_repr )
5260 assert_true (meter + meter is not meter )
53- assert_equal (repr (meter ), meter_repr )
5461 assert_raises (ValueError , operator .__add__ , meter , joule )
5562 assert_raises (ValueError , operator .__add__ , Joule , joule )
63+ test_dimensionality_repr ()
64+
65+ def test_inplace_addition ():
66+ temp = meter .copy ()
67+ temp += meter
68+ assert_equal (temp , meter )
69+ assert_raises (ValueError , operator .__iadd__ , meter , joule )
70+ assert_raises (ValueError , operator .__iadd__ , Joule , joule )
71+ test_dimensionality_repr ()
5672
5773def test_subtraction ():
5874 assert_equal (repr (meter - meter ), meter_repr )
5975 assert_true (meter - meter is not meter )
60- assert_equal (repr (meter ), meter_repr )
6176 assert_raises (ValueError , operator .__sub__ , meter , joule )
6277 assert_raises (ValueError , operator .__sub__ , Joule , joule )
63-
78+ test_dimensionality_repr ()
79+
80+ def test_inplace_subtraction ():
81+ temp = meter .copy ()
82+ temp -= meter
83+ assert_equal (temp , meter )
84+ assert_raises (ValueError , operator .__isub__ , meter , joule )
85+ assert_raises (ValueError , operator .__isub__ , Joule , joule )
86+ test_dimensionality_repr ()
87+
88+ def test_multiplication ():
89+ assert_equal (meter * meter , Dimensionality ([(q .m , 2 )]))
90+ assert_equal (joule * meter , Dimensionality ([(q .kg , 1 ), (q .m , 3 ), (q .s , - 2 )]))
91+ test_dimensionality_repr ()
92+
93+ def test_division ():
94+ assert_equal (meter / meter , Dimensionality ())
95+ assert_equal (joule / meter , Dimensionality ([(q .kg , 1 ), (q .m , 1 ), (q .s , - 2 )]))
96+ test_dimensionality_repr ()
97+
98+ def test_power ():
99+ assert_equal (meter ** 2 , Dimensionality ([(q .m , 2 )]))
100+ assert_equal (joule ** 2 , Dimensionality ([(q .kg , 2 ), (q .m , 4 ), (q .s , - 4 )]))
101+ test_dimensionality_repr ()
64102
65103def test_simplification ():
66104 assert_equal (Joule .simplified .string , 'kg*m**2/s**2' )
@@ -72,6 +110,7 @@ def test_gt():
72110 assert_false (meter > Joule )
73111 assert_false (joule > joule )
74112 assert_false (joule > Joule )
113+ test_dimensionality_repr ()
75114
76115def test_ge ():
77116 assert_true (joule >= meter )
@@ -80,6 +119,25 @@ def test_ge():
80119 assert_false (meter >= Joule )
81120 assert_true (joule >= joule )
82121 assert_true (joule >= Joule )
122+ test_dimensionality_repr ()
123+
124+ def test_lt ():
125+ assert_true (meter < joule )
126+ assert_true (meter < Joule )
127+ assert_false (joule < meter )
128+ assert_false (Joule < meter )
129+ assert_false (joule < joule )
130+ assert_false (Joule < joule )
131+ test_dimensionality_repr ()
132+
133+ def test_le ():
134+ assert_true (meter <= joule )
135+ assert_true (meter <= Joule )
136+ assert_false (joule <= meter )
137+ assert_false (Joule <= meter )
138+ assert_true (joule <= joule )
139+ assert_true (joule <= Joule )
140+ test_dimensionality_repr ()
83141
84142
85143
0 commit comments