Skip to content

Tests fail with pytest: test_findMSB and test_bitCount #227

@badshah400

Description

@badshah400

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions