PMConfig isn't just for ProposalMatcher anymore; it's about to gain settings for
authorMatt McCutchen <matt@mattmccutchen.net>
Fri, 1 Aug 2008 21:41:39 +0000 (17:41 -0400)
committerMatt McCutchen <matt@mattmccutchen.net>
Fri, 1 Aug 2008 21:41:39 +0000 (17:41 -0400)
PMInstanceGenerator and Evaluation.  Thus, factor it out.

program/Evaluation.hs
program/PMConfig.hs [new file with mode: 0644]
program/PMDefaults.hs
program/ProposalMatcher.hs
program/Test.hs
program/TestUtils.hs

index 2b1fdaf..c93e799 100644 (file)
@@ -1,5 +1,6 @@
 module Evaluation where
 import PMInstance
+import PMConfig
 import ProposalMatcher
 
 import Data.Array.IArray
diff --git a/program/PMConfig.hs b/program/PMConfig.hs
new file mode 100644 (file)
index 0000000..20a380f
--- /dev/null
@@ -0,0 +1,21 @@
+module PMConfig where
+
+import PMInstance
+import IMinCostFlow
+
+data PMConfig = PMConfig {
+       minCostFlow :: MinCostFlowImpl,
+       reviewsEachProposal :: Int,
+       prefIsExpert :: Wt -> Bool,
+       prefIsKnowledgeable :: Wt -> Bool,
+       prefIsBoring :: Wt -> Bool,
+       prefIsVeryBoring :: Wt -> Bool,
+       prefIsConflict :: Wt -> Bool,
+       loadTolerance :: Int,
+       marginalLoadCost :: Wt -> Wt,
+       marginalBoringCost :: Wt -> Wt,
+       marginalVeryBoringCost :: Wt -> Wt,
+       assignmentCost :: Wt -> Wt,
+       knowledgeableBonus :: Wt,
+       expertBonus :: Wt
+}
index 4e848c8..15908c6 100644 (file)
@@ -1,6 +1,6 @@
 module PMDefaults where
 import PMInstance
-import ProposalMatcher
+import PMConfig
 
 import qualified NaiveMinCostFlow
 import qualified CS2MinCostFlow
index 2f5f63f..96c2c32 100644 (file)
@@ -5,24 +5,7 @@ import Data.Graph.Inductive.Tree
 import Data.List
 
 import PMInstance
-import IMinCostFlow
-
-data PMConfig = PMConfig {
-       minCostFlow :: MinCostFlowImpl,
-       reviewsEachProposal :: Int,
-       prefIsExpert :: Wt -> Bool,
-       prefIsKnowledgeable :: Wt -> Bool,
-       prefIsBoring :: Wt -> Bool,
-       prefIsVeryBoring :: Wt -> Bool,
-       prefIsConflict :: Wt -> Bool,
-       loadTolerance :: Int,
-       marginalLoadCost :: Wt -> Wt,
-       marginalBoringCost :: Wt -> Wt,
-       marginalVeryBoringCost :: Wt -> Wt,
-       assignmentCost :: Wt -> Wt,
-       knowledgeableBonus :: Wt,
-       expertBonus :: Wt
-}
+import PMConfig
 
 prefBoringness cfg p = if prefIsVeryBoring cfg p then 2
        else if prefIsBoring cfg p then 1 else 0
index 2e42be1..d0bd6e2 100644 (file)
@@ -3,13 +3,16 @@ module Test (
        module Test,
        module TestUtils,
        
+       -- Manipulate configurations.
+       module PMConfig,
+       module PMDefaults,
+       
        -- Generate instances.
        module PMInstance,
        module PMInstanceGenerator,
        
        -- Solve instances.
        module ProposalMatcher,
-       module PMDefaults,
        
        -- Run randomized things.
        module System.Random,
@@ -19,10 +22,11 @@ module Test (
        module Evaluation
 ) where
 import TestUtils
+import PMConfig
+import PMDefaults
 import PMInstance
 import PMInstanceGenerator
 import ProposalMatcher
-import PMDefaults
 import System.Random
 import RandomizedMonad
 import Evaluation
index 623391d..acee1c7 100644 (file)
@@ -11,6 +11,7 @@ import System.Posix.IO
 import System.Posix.Time
 import System.Process
 import PMInstance
+import PMConfig
 import ProposalMatcher
 import PMDefaults
 import PMInstanceGenerator