From cf99b0afb6e6572508582438a6609c6923a6f275 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Walter=20D=C3=B6rwald?= Date: Thu, 22 May 2003 13:15:31 +0000 Subject: [PATCH] test_byteswap() fails on alphas, because treating the byte swapped bit 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 | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/Lib/test/test_array.py b/Lib/test/test_array.py index 98589a5c5bb..6dff37c1cb5 100755 --- a/Lib/test/test_array.py +++ b/Lib/test/test_array.py @@ -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):