set-cover-0.1.2: test/DocTest/GraphColoring/Solve.hs
-- Do not edit! Automatically created with doctest-extract from example/GraphColoring/Solve.hs
{-# LINE 16 "example/GraphColoring/Solve.hs" #-}
module DocTest.GraphColoring.Solve where
import GraphColoring.Solve
import Test.DocTest.Base
import qualified Test.DocTest.Driver as DocTest
{-# LINE 17 "example/GraphColoring/Solve.hs" #-}
import qualified GraphColoring.CutEnumSet as CutEnumSet
import qualified Math.SetCover.Exact as ESC
import qualified Data.Set as Set
import qualified Data.List.Key as Key
import Data.Either.HT (maybeRight)
import Data.Maybe (catMaybes, mapMaybe)
import qualified Test.QuickCheck as QC
import Test.QuickCheck ((===))
solve :: ([Char], [Edge Int]) -> [[(Int, Char)]]
solve =
map (Key.sort fst . catMaybes) . ESC.search .
ESC.compressState Set.toList . initialize assigns
test :: DocTest.T ()
test = do
DocTest.printPrefix "GraphColoring.Solve:155: "
{-# LINE 155 "example/GraphColoring/Solve.hs" #-}
DocTest.example(
{-# LINE 155 "example/GraphColoring/Solve.hs" #-}
solve example0
)
[ExpectedLine [LineChunk "[[(0,'a'),(1,'b'),(2,'a'),(3,'b'),(4,'a'),(5,'b')]]"]]
DocTest.printPrefix "GraphColoring.Solve:162: "
{-# LINE 162 "example/GraphColoring/Solve.hs" #-}
DocTest.example(
{-# LINE 162 "example/GraphColoring/Solve.hs" #-}
minimum $ solve example1
)
[ExpectedLine [LineChunk "[(0,'a'),(1,'b'),(2,'a'),(3,'b'),(4,'c')]"]]
DocTest.printPrefix "GraphColoring.Solve:169: "
{-# LINE 169 "example/GraphColoring/Solve.hs" #-}
DocTest.example(
{-# LINE 169 "example/GraphColoring/Solve.hs" #-}
solve example2
)
[ExpectedLine [LineChunk "[[(0,'a'),(1,'b'),(2,'c')]]"]]
DocTest.printPrefix "GraphColoring.Solve:176: "
{-# LINE 176 "example/GraphColoring/Solve.hs" #-}
DocTest.example(
{-# LINE 176 "example/GraphColoring/Solve.hs" #-}
solve example3
)
[ExpectedLine [LineChunk "[[(0,'a'),(1,'b'),(2,'c'),(3,'b')]]"]]
DocTest.printPrefix "GraphColoring.Solve:183: "
{-# LINE 183 "example/GraphColoring/Solve.hs" #-}
DocTest.example(
{-# LINE 183 "example/GraphColoring/Solve.hs" #-}
solve example4
)
[ExpectedLine [LineChunk "[]"]]
DocTest.printPrefix "GraphColoring.Solve:191: "
{-# LINE 191 "example/GraphColoring/Solve.hs" #-}
DocTest.example(
{-# LINE 191 "example/GraphColoring/Solve.hs" #-}
length $ ESC.search $ ESC.compressState Set.toList $ ESC.initState $ assigns ['a'..'e'] (complete 5)
)
[ExpectedLine [LineChunk "120"]]
DocTest.printPrefix "GraphColoring.Solve:194: "
{-# LINE 194 "example/GraphColoring/Solve.hs" #-}
DocTest.property(
{-# LINE 194 "example/GraphColoring/Solve.hs" #-}
QC.forAll (QC.choose (2,5)) $ \n ->
QC.forAll (QC.choose (2,7)) $ \k ->
(length $ ESC.search $ ESC.compressState Set.toList $
ESC.initState $ assigns (take k ['a'..]) (complete n))
===
product (take n [k,(k-1)..])
)
DocTest.printPrefix "GraphColoring.Solve:204: "
{-# LINE 204 "example/GraphColoring/Solve.hs" #-}
DocTest.property(
{-# LINE 204 "example/GraphColoring/Solve.hs" #-}
QC.forAll (QC.choose (2,5)) $ \n ->
QC.forAll (QC.choose (2,7)) $ \k ->
(length $ CutEnumSet.search $ CutEnumSet.initState $
ESC.intSetFromSetAssigns $ assignsEdgeColor (take k ['a'..]) (complete n))
===
if n<=k then 1 else 0
)
DocTest.printPrefix "GraphColoring.Solve:218: "
{-# LINE 218 "example/GraphColoring/Solve.hs" #-}
DocTest.example(
{-# LINE 218 "example/GraphColoring/Solve.hs" #-}
map (Key.sort fst . mapMaybe maybeRight) $
CutEnumSet.search $ CutEnumSet.initState $
ESC.intSetFromSetAssigns $ uncurry assignsEdgeColor example5
)
[ExpectedLine [LineChunk "[[(1,'a'),(2,'b'),(3,'c'),(4,'d'),(5,'e'),(6,'f'),(7,'g'),(8,'h'),(9,'i'),(10,'j')]]"]]