Skip to content

Commit

Permalink
Switch to pytest.mark for skipping numpy handler when not available
Browse files Browse the repository at this point in the history
  • Loading branch information
mcfletch committed Jan 3, 2020
1 parent 6ec398d commit c26398b
Showing 1 changed file with 41 additions and 33 deletions.
74 changes: 41 additions & 33 deletions accelerate/tests/test_arraydatatypeaccel.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,18 @@
from OpenGL.arrays import vbo
from OpenGL import GL
from OpenGL._bytes import integer_types
import pytest
try:
import numpy
except ImportError:
numpy = None
try:
import OpenGL_accelerate
except ImportError:
pytest.skip('Accelerate not installed, skipping', allow_module_level=True)

class _BaseTest( object ):
array = None
def setUp( self ):
self.handler = adt.ArrayDatatype
assert self.handler.isAccelerated
Expand Down Expand Up @@ -38,39 +44,41 @@ def test_arrayToGLType( self ):
p = self.handler.arrayToGLType( self.array )
assert p == GL.GL_FLOAT

if numpy:
# Skip if modifies the functions, which are *shared* between the
# classes...
#@pytest.mark.skipif( not numpy, reason="Numpy not available")
class TestNumpy( _BaseTest, unittest.TestCase ):
def setUp( self ):
self.array = numpy.array( [[1,2,3],[4,5,6]],'f')
super(TestNumpy,self).setUp()
def test_dataPointer( self ):
p = self.handler.dataPointer( self.array )
assert isinstance( p, integer_types)
assert p == self.array.ctypes.data
def test_zeros( self ):
p = self.handler.zeros( (2,3,4), 'f' )
assert p.shape == (2,3,4)
assert p.dtype == numpy.float32
def test_asArrayConvert( self ):
p = self.handler.asArray( self.array, GL.GL_DOUBLE )
assert p is not self.array
assert p.dtype == numpy.float64
p = self.handler.asArray( self.array, 'd' )
assert p is not self.array
assert p.dtype == numpy.float64
def test_zeros_typed( self ):
z = self.handler.zeros( (2,3,4), GL.GL_FLOAT)
assert z.shape == (2,3,4)
assert z.dtype == numpy.float32
def test_downconvert( self ):
p = self.handler.asArray( numpy.array( [1,2,3],'d'), GL.GL_FLOAT )
assert p.dtype == numpy.float32
def test_zeros_small( self ):
z = self.handler.zeros( 0, GL.GL_BYTE )
assert z.dtype == numpy.byte, z
# Skip if modifies the functions, which are *shared* between the
# classes...
@pytest.mark.skipif( not numpy, reason="Numpy not available")
class TestNumpy( _BaseTest, unittest.TestCase ):
def setUp( self ):
super(TestNumpy,self).setUp()
self.array = numpy.array( [[1,2,3],[4,5,6]],'f')
handler = adt.ArrayDatatype.getHandler( self.array )
handler.registerReturn( )

def test_dataPointer( self ):
p = self.handler.dataPointer( self.array )
assert isinstance( p, integer_types)
assert p == self.array.ctypes.data
def test_zeros( self ):
p = self.handler.zeros( (2,3,4), 'f' )
assert p.shape == (2,3,4)
assert p.dtype == numpy.float32
def test_asArrayConvert( self ):
p = self.handler.asArray( self.array, GL.GL_DOUBLE )
assert p is not self.array
assert p.dtype == numpy.float64
p = self.handler.asArray( self.array, 'd' )
assert p is not self.array
assert p.dtype == numpy.float64
def test_zeros_typed( self ):
z = self.handler.zeros( (2,3,4), GL.GL_FLOAT)
assert z.shape == (2,3,4)
assert z.dtype == numpy.float32
def test_downconvert( self ):
p = self.handler.asArray( numpy.array( [1,2,3],'d'), GL.GL_FLOAT )
assert p.dtype == numpy.float32
def test_zeros_small( self ):
z = self.handler.zeros( (0,), GL.GL_BYTE )
assert z.dtype == numpy.byte, z

class TestVBO( _BaseTest, unittest.TestCase ):
def setUp( self ):
Expand Down

0 comments on commit c26398b

Please sign in to comment.