{-# LINE 1 "src/Test/HTestU/BatteryResult.hsc" #-}
{-# LANGUAGE ForeignFunctionInterface #-}
{-# LINE 2 "src/Test/HTestU/BatteryResult.hsc" #-}
{-# LANGUAGE CPP                      #-}

module Test.HTestU.BatteryResult
( BatteryResultStruct(..)
) where

import Foreign.C.Types (CInt(..), CDouble(..))
import Foreign.Ptr (Ptr)
import Foreign.Storable


{-# LINE 13 "src/Test/HTestU/BatteryResult.hsc" #-}

-- | Structure holding an array of p-values after performing the testing
-- and their number
data BatteryResultStruct = BR {
  pValues :: Ptr CDouble,
  testNumber :: CInt
  } deriving (Eq, Show)


{-# LINE 22 "src/Test/HTestU/BatteryResult.hsc" #-}

instance Storable BatteryResultStruct where
  sizeOf _ = ((16))
{-# LINE 25 "src/Test/HTestU/BatteryResult.hsc" #-}
  alignment _ = 8
{-# LINE 26 "src/Test/HTestU/BatteryResult.hsc" #-}
  peek ptr = do
    pValues <- ((\hsc_ptr -> peekByteOff hsc_ptr 0)) ptr
{-# LINE 28 "src/Test/HTestU/BatteryResult.hsc" #-}
    testNumber <- ((\hsc_ptr -> peekByteOff hsc_ptr 8)) ptr
{-# LINE 29 "src/Test/HTestU/BatteryResult.hsc" #-}
    return $ BR pValues testNumber

  poke ptr (BR pValues testNumber) = do
    (\hsc_ptr -> pokeByteOff hsc_ptr 0) ptr pValues
{-# LINE 33 "src/Test/HTestU/BatteryResult.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 8) ptr testNumber
{-# LINE 34 "src/Test/HTestU/BatteryResult.hsc" #-}