{-# OPTIONS_GHC -fno-warn-orphans #-}
module Lua.Arbitrary () where
import Lua
import Test.QuickCheck
instance Arbitrary Lua.Integer where
arbitrary :: Gen Integer
arbitrary = Gen Integer
forall a. Integral a => Gen a
arbitrarySizedIntegral
instance Arbitrary Lua.Number where
arbitrary :: Gen Number
arbitrary = Double -> Number
Lua.Number (Double -> Number) -> Gen Double -> Gen Number
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Gen Double
forall a. Arbitrary a => Gen a
arbitrary
instance Arbitrary Lua.TypeCode where
arbitrary :: Gen TypeCode
arbitrary = [TypeCode] -> Gen TypeCode
forall a. [a] -> Gen a
elements
[ TypeCode
LUA_TNONE
, TypeCode
LUA_TNIL
, TypeCode
LUA_TBOOLEAN
, TypeCode
LUA_TLIGHTUSERDATA
, TypeCode
LUA_TNUMBER
, TypeCode
LUA_TSTRING
, TypeCode
LUA_TTABLE
, TypeCode
LUA_TFUNCTION
, TypeCode
LUA_TUSERDATA
, TypeCode
LUA_TTHREAD
]
instance Arbitrary Lua.StatusCode where
arbitrary :: Gen StatusCode
arbitrary = [StatusCode] -> Gen StatusCode
forall a. [a] -> Gen a
elements
[ StatusCode
LUA_OK
, StatusCode
LUA_YIELD
, StatusCode
LUA_ERRRUN
, StatusCode
LUA_ERRSYNTAX
, StatusCode
LUA_ERRMEM
, StatusCode
LUA_ERRGCMM
, StatusCode
LUA_ERRERR
, StatusCode
LUA_ERRFILE
]
instance Arbitrary Lua.OPCode where
arbitrary :: Gen OPCode
arbitrary = [OPCode] -> Gen OPCode
forall a. [a] -> Gen a
elements
[ OPCode
LUA_OPEQ
, OPCode
LUA_OPLT
, OPCode
LUA_OPLE
]