Skip to content

Commit 1d72ed2

Browse files
committed
Add tests with optimization disabled
1 parent a754be4 commit 1d72ed2

File tree

1 file changed

+16
-12
lines changed

1 file changed

+16
-12
lines changed

Lib/test/test_memoryview.py

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -580,23 +580,30 @@ def test_compare_equal(self):
580580
# individual values. This is not true for float values since they can
581581
# be NaN, and NaN is not equal to itself.
582582

583+
def check_equal(view, is_equal):
584+
self.assertEqual(view == view, is_equal)
585+
self.assertEqual(view != view, not is_equal)
586+
587+
# Comparison with a different memoryview doesn't use
588+
# the optimization and should give the same result.
589+
view2 = memoryview(view)
590+
self.assertEqual(view2 == view, is_equal)
591+
self.assertEqual(view2 != view2, not is_equal)
592+
583593
# Test integer formats
584594
for int_format in 'bBhHiIlLqQ':
585595
with self.subTest(format=int_format):
586596
a = array.array(int_format, [1, 2, 3])
587597
m = memoryview(a)
588-
self.assertTrue(m == m)
589-
self.assertFalse(m != m)
598+
check_equal(m, True)
590599

591600
if int_format in 'bB':
592601
m2 = m.cast('@' + m.format)
593-
self.assertTrue(m2 == m2)
594-
self.assertFalse(m2 != m2)
602+
check_equal(m2, True)
595603

596604
# Test '?' format
597605
m = memoryview(b'\0\1\2').cast('?')
598-
self.assertTrue(m == m)
599-
self.assertFalse(m != m)
606+
check_equal(m, True)
600607

601608
# Test 'P' format
602609
if struct.calcsize('L') == struct.calcsize('P'):
@@ -607,22 +614,19 @@ def test_compare_equal(self):
607614
raise ValueError('unable to get void* format in struct')
608615
a = array.array(int_format, [1, 2, 3])
609616
m = memoryview(a.tobytes()).cast('P')
610-
self.assertTrue(m == m)
611-
self.assertFalse(m != m)
617+
check_equal(m, True)
612618

613619
# Test float formats
614620
for float_format in 'fd':
615621
with self.subTest(format=float_format):
616622
a = array.array(float_format, [1.0, 2.0, float('nan')])
617623
m = memoryview(a)
618624
# nan is not equal to nan
619-
self.assertFalse(m == m)
620-
self.assertTrue(m != m)
625+
check_equal(m, False)
621626

622627
a = array.array(float_format, [1.0, 2.0, 3.0])
623628
m = memoryview(a)
624-
self.assertTrue(m == m)
625-
self.assertFalse(m != m)
629+
check_equal(m, True)
626630

627631

628632
class BytesMemorySliceTest(unittest.TestCase,

0 commit comments

Comments
 (0)