-- |

module Modelling.PetriNet.PetriReach.Config where

import Modelling.PetriNet.Reach.Reach   (ReachConfig(..), NetGoalConfig(..))
import Modelling.PetriNet.Reach.Type    (Capacity(..))
import Data.GraphViz.Commands           (GraphvizCommand(..))

{-|
points: 0.2
-}
task2023_27 :: ReachConfig
task2023_27 :: ReachConfig
task2023_27 = ReachConfig {
  netGoalConfig :: NetGoalConfig
netGoalConfig  = NetGoalConfig {
    numPlaces :: Int
numPlaces = Int
4,
    numTransitions :: Int
numTransitions = Int
4,
    capacity :: Capacity Place
capacity = Capacity Place
forall s. Capacity s
Unbounded,
    drawCommands :: [GraphvizCommand]
drawCommands = [GraphvizCommand
Circo],
    maxTransitionLength :: Int
maxTransitionLength = Int
8,
    minTransitionLength :: Int
minTransitionLength = Int
8,
    postconditionsRange :: (Int, Maybe Int)
postconditionsRange = (Int
2, Int -> Maybe Int
forall a. a -> Maybe a
Just Int
3),
    preconditionsRange :: (Int, Maybe Int)
preconditionsRange = (Int
2, Int -> Maybe Int
forall a. a -> Maybe a
Just Int
2)
    },
  printSolution :: Bool
printSolution = Bool
True,
  rejectLongerThan :: Maybe Int
rejectLongerThan = Maybe Int
forall a. Maybe a
Nothing,
  showLengthHint :: Bool
showLengthHint = Bool
True,
  showMinLengthHint :: Bool
showMinLengthHint = Bool
True,
  showTargetNet :: Bool
showTargetNet = Bool
True,
  showPlaceNamesInNet :: Bool
showPlaceNamesInNet = Bool
False
  }

{-|
points: 0.25
-}
task2023_28 :: ReachConfig
task2023_28 :: ReachConfig
task2023_28 = ReachConfig {
  netGoalConfig :: NetGoalConfig
netGoalConfig = NetGoalConfig {
    numPlaces :: Int
numPlaces = Int
6,
    numTransitions :: Int
numTransitions = Int
6,
    capacity :: Capacity Place
capacity = Capacity Place
forall s. Capacity s
Unbounded,
    drawCommands :: [GraphvizCommand]
drawCommands = [GraphvizCommand
Circo],
    maxTransitionLength :: Int
maxTransitionLength = Int
12,
    minTransitionLength :: Int
minTransitionLength = Int
12,
    postconditionsRange :: (Int, Maybe Int)
postconditionsRange = (Int
2, Int -> Maybe Int
forall a. a -> Maybe a
Just Int
3),
    preconditionsRange :: (Int, Maybe Int)
preconditionsRange = (Int
2, Int -> Maybe Int
forall a. a -> Maybe a
Just Int
2)
    },
  printSolution :: Bool
printSolution = Bool
True,
  rejectLongerThan :: Maybe Int
rejectLongerThan = Maybe Int
forall a. Maybe a
Nothing,
  showLengthHint :: Bool
showLengthHint = Bool
True,
  showMinLengthHint :: Bool
showMinLengthHint = Bool
True,
  showTargetNet :: Bool
showTargetNet = Bool
True,
  showPlaceNamesInNet :: Bool
showPlaceNamesInNet = Bool
False
  }

{-|
points: 0.2
-}
task2024_25 :: ReachConfig
task2024_25 :: ReachConfig
task2024_25 = ReachConfig
task2023_27

{-|
points: 0.25
-}
task2024_26 :: ReachConfig
task2024_26 :: ReachConfig
task2024_26 = ReachConfig
task2023_28

{-|
points: 0.08
-}
task2024_60 :: ReachConfig
task2024_60 :: ReachConfig
task2024_60 = ReachConfig {
  netGoalConfig :: NetGoalConfig
netGoalConfig = NetGoalConfig {
    numPlaces :: Int
numPlaces = Int
4,
    numTransitions :: Int
numTransitions = Int
4,
    capacity :: Capacity Place
capacity = Capacity Place
forall s. Capacity s
Unbounded,
    drawCommands :: [GraphvizCommand]
drawCommands = [GraphvizCommand
Circo],
    maxTransitionLength :: Int
maxTransitionLength = Int
8,
    minTransitionLength :: Int
minTransitionLength = Int
8,
    postconditionsRange :: (Int, Maybe Int)
postconditionsRange = (Int
2, Int -> Maybe Int
forall a. a -> Maybe a
Just Int
3),
    preconditionsRange :: (Int, Maybe Int)
preconditionsRange = (Int
2, Int -> Maybe Int
forall a. a -> Maybe a
Just Int
2)
    },
  printSolution :: Bool
printSolution = Bool
True,
  rejectLongerThan :: Maybe Int
rejectLongerThan = Int -> Maybe Int
forall a. a -> Maybe a
Just Int
8,
  showLengthHint :: Bool
showLengthHint = Bool
False,
  showMinLengthHint :: Bool
showMinLengthHint = Bool
True,
  showTargetNet :: Bool
showTargetNet = Bool
True,
  showPlaceNamesInNet :: Bool
showPlaceNamesInNet = Bool
False
  }