]> granicus.if.org Git - python/commitdiff
test_byteswap() fails on alphas, because treating the byte swapped bit
authorWalter Dörwald <walter@livinglogic.de>
Thu, 22 May 2003 13:15:31 +0000 (13:15 +0000)
committerWalter Dörwald <walter@livinglogic.de>
Thu, 22 May 2003 13:15:31 +0000 (13:15 +0000)
patterns as floats/doubles results in floating point exceptions.

Fix this by implementing a separate test_byteswap() for the floating
point tests. This new test compares the tostring() values of both arrays
instead of the arrays themselves.

Discovered by Neal Norwitz.

Lib/test/test_array.py

index 98589a5c5bbab712a56629bab7360a8d788aa091..6dff37c1cb5584492cb55d3594f31b7f6485b4d1 100755 (executable)
@@ -847,6 +847,23 @@ class FPTest(NumberTest):
 class FloatTest(FPTest):
     typecode = 'f'
     minitemsize = 4
+
+    def test_byteswap(self):
+        a = array.array(self.typecode, self.example)
+        self.assertRaises(TypeError, a.byteswap, 42)
+        if a.itemsize in (1, 2, 4, 8):
+            b = array.array(self.typecode, self.example)
+            b.byteswap()
+            if a.itemsize==1:
+                self.assertEqual(a, b)
+            else:
+                # On alphas treating the byte swapped bit patters as
+                # floats/doubles results in floating point exceptions
+                # => compare the 8bit string values instead
+                self.assertNotEqual(a.tostring(), b.tostring())
+            b.byteswap()
+            self.assertEqual(a, b)
+
 tests.append(FloatTest)
 
 class DoubleTest(FPTest):