vinyl-gl-0.3: tests/BasicTest.hs
{-# LANGUAGE DataKinds, KindSignatures, TypeOperators #-}
import Data.Vinyl
import Data.Word
import Foreign.Ptr (nullPtr, plusPtr)
import Graphics.Rendering.OpenGL (DataType(..), GLfloat,
VertexArrayDescriptor(..))
import Graphics.VinylGL
import Linear (V1(..), V3(..))
import Test.Framework (defaultMain)
import Test.Framework.Providers.HUnit (hUnitTestToTests)
import Test.HUnit (Test(..), (~=?))
type Pos = '("vpos", V3 GLfloat)
type Tag = '("tagByte", V1 Word8)
tag :: SField Tag
tag = SField
type Vertex = FieldRec [Pos, Tag]
testVad :: Test
testVad = TestLabel "Sample VAD Creation" $
vad ~=? fieldToVAD tag (SField::SField Vertex)
where vad = VertexArrayDescriptor 1 UnsignedByte 13 (nullPtr `plusPtr` 12)
main :: IO ()
main = defaultMain . hUnitTestToTests $ testVad