PyGLM icon indicating copy to clipboard operation
PyGLM copied to clipboard

Tests fail with pytest: test_findMSB and test_bitCount

Open badshah400 opened this issue 1 year ago • 0 comments

When building RPM packages for openSUSE, we find that the following tests fail when running pytest:

[  113s] =================================== FAILURES ===================================
[  113s] _________________________________ test_findMSB _________________________________
[  113s] 
[  113s]     def test_findMSB():
[  113s]         cases = [
[  113s]             (T(value), getattr(glm, f"ivec{get_len_of_type(T)}")(expected)) for value, expected in
[  113s]             ((0x00000000, -1),
[  113s]     		 (0x00000001,  0),
[  113s]     		 (0x00000002,  1),
[  113s]     		 (0x00000003,  1),
[  113s]     		 (0x00000004,  2),
[  113s]     		 (0x00000005,  2),
[  113s]     		 (0x00000007,  2),
[  113s]     		 (0x00000008,  3),
[  113s]     		 (0x00000010,  4),
[  113s]     		 (0x00000020,  5),
[  113s]     		 (0x00000040,  6),
[  113s]     		 (0x00000080,  7),
[  113s]     		 (0x00000100,  8),
[  113s]     		 (0x00000200,  9),
[  113s]     		 (0x00000400, 10),
[  113s]     		 (0x00000800, 11),
[  113s]     		 (0x00001000, 12),
[  113s]     		 (0x00002000, 13),
[  113s]     		 (0x00004000, 14),
[  113s]     		 (0x00008000, 15),
[  113s]     		 (0x00010000, 16),
[  113s]     		 (0x00020000, 17),
[  113s]     		 (0x00040000, 18),
[  113s]     		 (0x00080000, 19),
[  113s]     		 (0x00100000, 20),
[  113s]     		 (0x00200000, 21),
[  113s]     		 (0x00400000, 22),
[  113s]     		 (0x00800000, 23),
[  113s]     		 (0x01000000, 24),
[  113s]     		 (0x02000000, 25),
[  113s]     		 (0x04000000, 26),
[  113s]     		 (0x08000000, 27),
[  113s]     		 (0x10000000, 28),
[  113s]     		 (0x20000000, 29),
[  113s]     		 (0x40000000, 30)) for T in gen_type("V__iIqQ")
[  113s]         ] + [
[  113s]             (0x00000000, -1),
[  113s]     		(0x00000001,  0),
[  113s]     		(0x00000002,  1),
[  113s]     		(0x00000003,  1),
[  113s]     		(0x00000004,  2),
[  113s]     		(0x00000005,  2),
[  113s]     		(0x00000007,  2),
[  113s]     		(0x00000008,  3),
[  113s]     		(0x00000010,  4),
[  113s]     		(0x00000020,  5),
[  113s]     		(0x00000040,  6),
[  113s]     		(0x00000080,  7),
[  113s]     		(0x00000100,  8),
[  113s]     		(0x00000200,  9),
[  113s]     		(0x00000400, 10),
[  113s]     		(0x00000800, 11),
[  113s]     		(0x00001000, 12),
[  113s]     		(0x00002000, 13),
[  113s]     		(0x00004000, 14),
[  113s]     		(0x00008000, 15),
[  113s]     		(0x00010000, 16),
[  113s]     		(0x00020000, 17),
[  113s]     		(0x00040000, 18),
[  113s]     		(0x00080000, 19),
[  113s]     		(0x00100000, 20),
[  113s]     		(0x00200000, 21),
[  113s]     		(0x00400000, 22),
[  113s]     		(0x00800000, 23),
[  113s]     		(0x01000000, 24),
[  113s]     		(0x02000000, 25),
[  113s]     		(0x04000000, 26),
[  113s]     		(0x08000000, 27),
[  113s]     		(0x10000000, 28),
[  113s]     		(0x20000000, 29),
[  113s]     		(0x40000000, 30)
[  113s]         ]
[  113s]     
[  113s]         for value, expected in cases:
[  113s]             result = glm.findMSB(value)
[  113s] >           assert result == expected, (result, expected, value)
[  113s] E           AssertionError: (ivec3( 20, 19, 13 ), ivec3( -1, -1, -1 ), ivec3( 0, 0, 0 ))
[  113s] E           assert ivec3( 20, 19, 13 ) == ivec3( -1, -1, -1 )
[  113s] E             Full diff:
[  113s] E             - ivec3( -1, -1, -1 )
[  113s] E             + ivec3( 20, 19, 13 )
[  113s] 
[  113s] test/PyGLM_test.py:3324: AssertionError
[  113s] ________________________________ test_bitCount _________________________________
[  113s] 
[  113s]     def test_bitCount():
[  113s]         cases = [
[  113s]             (T(value), getattr(glm, f"ivec{get_len_of_type(T)}")(expected)) for value, expected in
[  113s]             ((0x00000001,  1),
[  113s]     		 (0x00000003,  2),
[  113s]     		 (0x00000002,  1),
[  113s]     		 (0x000000ff,  8),
[  113s]     		 (0x00000000,  0)) for T in gen_type("V__sSuU")
[  113s]         ] + [
[  113s]             (T(value), getattr(glm, f"ivec{get_len_of_type(T)}")(expected)) for value, expected in
[  113s]             ((0x00000001,  1),
[  113s]     		 (0x00000003,  2),
[  113s]     		 (0x00000002,  1),
[  113s]     		 (0x7fffffff, 31),
[  113s]     		 (0x00000000,  0)) for T in gen_type("V__iIqQ")
[  113s]         ] + [
[  113s]             (0x00000001,  1),
[  113s]     		(0x00000003,  2),
[  113s]     		(0x00000002,  1),
[  113s]     		(0x7fffffff, 31),
[  113s]     		(0x00000000,  0)
[  113s]         ]
[  113s]     
[  113s]         for value, expected in cases:
[  113s]             result = glm.bitCount(value)
[  113s] >           assert result == expected, (result, expected, value)
[  113s] E           AssertionError: (ivec1( 10 ), ivec1( 1 ), i16vec1( 1 ))
[  113s] E           assert ivec1( 10 ) == ivec1( 1 )
[  113s] E             Full diff:
[  113s] E             - ivec1( 1 )
[  113s] E             + ivec1( 10 )
[  113s] E             ?         +
[  113s] 
[  113s] test/PyGLM_test.py:3446: AssertionError
[  113s] =========================== short test summary info ============================
[  113s] FAILED test/PyGLM_test.py::test_findMSB - AssertionError: (ivec3( 20, 19, 13 ...
[  113s] FAILED test/PyGLM_test.py::test_bitCount - AssertionError: (ivec1( 10 ), ivec...
[  113s] ======================== 2 failed, 177 passed in 1.31s =========================

I tested this using python 3.9, 3.10, and 3.11. In each case these two tests fail. Would be glad for any pointers towards fixing or working around these.

Version tested: 2.7.1

Thanks for your very useful library.

badshah400 avatar Dec 12 '23 09:12 badshah400