import CombinatorialOptimisation.SAT
import CombinatorialOptimisation.TSP
import FileFormat.SATLIB
import FileFormat.TSPLIB
import System.Random
import qualified Data.Map as M
{-
main :: IO()
main = do s<-loadCNFFile "./CBS_k3_n100_m403_b10_0.cnf"
print s
saveAsCNF "test.cnf" s
-}
{-
-- checking basic Symmetric TSP code and mutator algorithms
main :: IO()
main = do gen<-newStdGen
let meep = makeSymmetricTSPMap (2,5) 5 gen
-- print meep
let meep' = randomiseRoute gen meep
print meep'
print $ routeElementToIndex meep'
print $ indexToRouteElement meep'
print ""
let meep'' = exchangeCities 1 1 meep'
print meep''
print $ routeElementToIndex meep''
print $ indexToRouteElement meep''
putStrLn $ showEdgeWeights meep''
-}
{-
-- checking stability of arrays, rather than map
main :: IO()
main = do gen<-newStdGen
let (meep,meep') = makeASymmetricTSPMap (2,5) 50 gen
putStrLn $ showEdgeWeights meep
putStrLn ""
putStrLn $ showEdgeWeights meep'
putStrLn $ show $ showEdgeWeights meep == showEdgeWeights meep'
-}
-- checking stability of arrays, rather than map
main :: IO()
main = do let gen = mkStdGen 5
let gen' = mkStdGen 10
let meep = makeEuclideanTSPMap ExplicitMatrix (2,8) (2,8) 100 gen
let meep' = makeEuclideanTSPMap TriangularMatrix (2,8) (2,8) 100 gen
let meep'' = makeEuclideanTSPMap Recomputation (2,8) (2,8) 100 gen
putStrLn $ showEdgeWeights meep
putStrLn ""
putStrLn $ showEdgeWeights meep'
putStrLn $ show $ (showEdgeWeights meep == showEdgeWeights meep') && (showEdgeWeights meep == showEdgeWeights meep'')
{-
-- checking loading TSPs
main :: IO()
main = do loadTSPFile "../exampleProblems/ali535.tsp" -}