module Main where
import qualified ResistorCube
import qualified Tree
import qualified Test.QuickCheck as QC
approx :: Double -> Double -> Bool
approx x y = abs (x-y) < 1e-8
test :: (QC.Testable prop) => String -> prop -> IO ()
test msg prop =
putStr (msg ++ ": ") >> QC.quickCheck prop
main :: IO ()
main = do
test "resistor cube" (approx ResistorCube.resistance (5/6))
test "resistor tree"
(\x -> approx (Tree.treeResistance x) (Tree.graphResistance x))
test "orientation of resistors"
(uncurry approx . Tree.flippedResistances)