From e52e0a8eaf88b7169b68e690787974860cca0f9a Mon Sep 17 00:00:00 2001 From: Rodrigo Setti Date: Wed, 16 Aug 2017 00:57:53 -0700 Subject: [PATCH] Fix bug in prioritization --- app/Main.hs | 5 +-- examples/example2.plan | 57 ++++++++++++++++++++++++++++++++ examples/example2.png | Bin 0 -> 105296 bytes src/MasterPlan/Backend/Graph.hs | 2 +- src/MasterPlan/Data.hs | 22 +++++++----- 5 files changed, 74 insertions(+), 12 deletions(-) create mode 100644 examples/example2.plan create mode 100644 examples/example2.png diff --git a/app/Main.hs b/app/Main.hs index 459a39b..26d3d6d 100644 --- a/app/Main.hs +++ b/app/Main.hs @@ -20,7 +20,8 @@ import MasterPlan.Backend.Graph import MasterPlan.Data import qualified MasterPlan.Parser as P import Options.Applicative -import System.IO (hPutStr, stderr, stdin) +import System.Exit (die) +import System.IO (stdin) -- |Type output from the command line parser data Opts = Opts { inputPath :: Maybe FilePath @@ -111,7 +112,7 @@ masterPlan ∷ Opts → IO () masterPlan opts = do contents <- maybe (TIO.hGetContents stdin) TIO.readFile $ inputPath opts case P.runParser (fromMaybe "stdin" $ inputPath opts) contents of - Left e -> hPutStr stderr e + Left e -> die e Right sys@(ProjectSystem b) -> do let sys' = prioritizeSys $ ProjectSystem $ M.mapMaybe (filterBinding sys $ projFilter opts) b diff --git a/examples/example2.plan b/examples/example2.plan new file mode 100644 index 0000000..de79bad --- /dev/null +++ b/examples/example2.plan @@ -0,0 +1,57 @@ +other "use other tools" = notText + proprietary + limited; + +notText { + title "not textual format" + description "hard to parse or edit" + cost 10 +}; + +proprietary { + description "data is locked! risky!" + trust 20% + cost 1 +}; + +limited { + description "missing features..." + cost 5 + trust 90% +}; + + +decision { description "which PM tool to use?" } = mp + other + notUseAnything; + +mp "use master plan" = (write -> render -> maintain) + * (satisfied + addYourFeature); + +write { + title "write .plan file" + cost 1 +}; + +render { + title "render diagram" + description "automatically prioritized. Like this one!" + cost 1 +}; + +maintain { + description "refine, update, and re-render" + cost 2 +}; + +satisfied { + description "master-plan meet my needs" + trust 70% +}; + +addYourFeature { + title "add your feature" + description "it's open source and Haskell (fun)" + cost 5 +}; + +notUseAnything { + title "not use anything" + trust 10% +}; diff --git a/examples/example2.png b/examples/example2.png new file mode 100644 index 0000000000000000000000000000000000000000..6fc5df21eb58d62b3db0f06df88217f99d3db8c0 GIT binary patch literal 105296 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 RenderOptions-> ProjectSystem → IO () render fp (RenderOptions colorByP w h rootK props) sys = - let noRootEroor = text $ "no project named \"" ++ getProjectKey rootK ++ "\" found." + let noRootEroor = texterific $ "no project named \"" ++ getProjectKey rootK ++ "\" found." dia = fromMaybe noRootEroor $ renderTree colorByP props <$> evalState (toRenderModel sys rootK) [] in renderRasterific fp (dims2D (fromInteger w) (fromInteger h)) $ bgFrame 1 white $ centerXY dia diff --git a/src/MasterPlan/Data.hs b/src/MasterPlan/Data.hs index 620b415..2d50d7d 100644 --- a/src/MasterPlan/Data.hs +++ b/src/MasterPlan/Data.hs @@ -44,14 +44,14 @@ import Data.String (IsString) -- * Types newtype Trust = Trust { getTrust :: Float } - deriving (Show, Eq, Data, Ord, Num, Real, RealFrac, Fractional) + deriving (Show, Eq, Data, Typeable, Ord, Num, Real, RealFrac, Fractional) newtype Cost = Cost { getCost :: Float } - deriving (Show, Eq, Data, Ord, Num, Real, RealFrac, Fractional) + deriving (Show, Eq, Data, Typeable, Ord, Num, Real, RealFrac, Fractional) newtype Progress = Progress { getProgress :: Float } - deriving (Show, Eq, Data, Ord, Num, Real, RealFrac, Fractional) + deriving (Show, Eq, Data, Typeable, Ord, Num, Real, RealFrac, Fractional) newtype ProjectKey = ProjectKey { getProjectKey :: String } - deriving (Show, Eq, Data, Ord, IsString) + deriving (Show, Eq, Data, Typeable, Ord, IsString) -- |Structure of a project expression data ProjectExpr = Sum (NE.NonEmpty ProjectExpr) @@ -198,12 +198,16 @@ prioritizeSys sys = everywhere (mkT $ prioritizeProj sys) sys -- |Sort project in order that minimizes cost prioritizeProj ∷ ProjectSystem → ProjectExpr → ProjectExpr prioritizeProj sys (Sum ps) = - let f p = getCost (cost sys p) / getTrust (trust sys p) - in Sum $ NE.sortWith (nanToInf . f) $ prioritizeProj sys <$> ps + let f p = getCost (cost sys' p) / getTrust (trust sys' p) + sys' = prioritizeSys sys + in Sum $ NE.sortWith (nanToInf . f) $ prioritizeProj sys' <$> ps prioritizeProj sys (Product ps) = - let f p = getCost (cost sys p) / (1 - getTrust (trust sys p)) - in Product $ NE.sortWith (nanToInf . f) $ prioritizeProj sys <$> ps -prioritizeProj _ p = p + let f p = getCost (cost sys' p) / (1 - getTrust (trust sys' p)) + sys' = prioritizeSys sys + in Product $ NE.sortWith (nanToInf . f) $ prioritizeProj sys' <$> ps +prioritizeProj sys (Sequence ps) = + Sequence $ prioritizeProj sys <$> ps +prioritizeProj _ p = p -- |Helper function to transform any Nan (not a number) to positive infinity nanToInf :: RealFloat a => a -> a