sbv-12.2: SBVTestSuite/TestSuite/Queries/Uninterpreted.hs
-----------------------------------------------------------------------------
-- |
-- Module : TestSuite.Queries.Uninterpreted
-- Copyright : (c) Levent Erkok
-- License : BSD3
-- Maintainer: erkokl@gmail.com
-- Stability : experimental
--
-- Testing uninterpreted value extraction
-----------------------------------------------------------------------------
{-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE StandaloneDeriving #-}
{-# LANGUAGE TemplateHaskell #-}
{-# OPTIONS_GHC -Wall -Werror #-}
module TestSuite.Queries.Uninterpreted where
import Data.SBV.Control
import Utils.SBVTestFramework
data L = A | B deriving (Enum, Bounded)
mkSymbolicEnumeration ''L
-- Test suite
tests :: TestTree
tests =
testGroup "Queries.Uninterpreted"
[ goldenCapturedIO "qUninterp1" testQuery
]
testQuery :: FilePath -> IO ()
testQuery rf = do r <- runSMTWith defaultSMTCfg{verbose=True, redirectVerbose=Just rf} unint1
appendFile rf ("\n FINAL:" ++ r ++ "\nDONE!\n")
unint1 :: Symbolic String
unint1 = do (x :: SBV L) <- free_
query $ do _ <- checkSat
show <$> getValue x