packages feed

lua-arbitrary-1.0.0: src/Lua/Arbitrary.hs

{-# OPTIONS_GHC -fno-warn-orphans #-}
{-| Instances for QuickCheck's Arbitrary. -}
module Lua.Arbitrary () where

import Lua
import Test.QuickCheck

instance Arbitrary Lua.Integer where
  arbitrary = arbitrarySizedIntegral

instance Arbitrary Lua.Number where
  arbitrary = Lua.Number <$> arbitrary

instance Arbitrary Lua.TypeCode where
  arbitrary = elements
    [ LUA_TNONE
    , LUA_TNIL
    , LUA_TBOOLEAN
    , LUA_TLIGHTUSERDATA
    , LUA_TNUMBER
    , LUA_TSTRING
    , LUA_TTABLE
    , LUA_TFUNCTION
    , LUA_TUSERDATA
    , LUA_TTHREAD
    ]

instance Arbitrary Lua.StatusCode where
  arbitrary = elements
    [ LUA_OK
    , LUA_YIELD
    , LUA_ERRRUN
    , LUA_ERRSYNTAX
    , LUA_ERRMEM
    , LUA_ERRGCMM
    , LUA_ERRERR
    , LUA_ERRFILE
    ]

instance Arbitrary Lua.OPCode where
  arbitrary = elements
    [ LUA_OPEQ
    , LUA_OPLT
    , LUA_OPLE
    ]