-- |

module Modelling.CdOd.NameCdError.Config where

import Modelling.CdOd.NameCdError (
  NameCdErrorConfig (..),
  NumberOfReasons (..),
  Reason (..),
  )
import Modelling.CdOd.Types (
  AllowedProperties (..),
  ArticlePreference (..),
  ClassConfig (..),
  CdConstraints (..),
  CdDrawSettings (..),
  ObjectProperties (..),
  OmittedDefaultMultiplicities (..),
  Property (..),
  )

import Data.Ratio                       ((%))

{-|
points: 0.15
average generation time per instance: 0:20min
CPU usage: 200%
-}
task2023_09 :: NameCdErrorConfig
task2023_09 :: NameCdErrorConfig
task2023_09 = NameCdErrorConfig {
  allowedProperties :: AllowedProperties
allowedProperties = AllowedProperties {
    compositionCycles :: Bool
compositionCycles = Bool
True,
    doubleRelationships :: Bool
doubleRelationships = Bool
False,
    inheritanceCycles :: Bool
inheritanceCycles = Bool
False,
    invalidInheritanceLimits :: Bool
invalidInheritanceLimits = Bool
False,
    reverseInheritances :: Bool
reverseInheritances = Bool
False,
    reverseRelationships :: Bool
reverseRelationships = Bool
True,
    selfInheritances :: Bool
selfInheritances = Bool
False,
    selfRelationships :: Bool
selfRelationships = Bool
False,
    wrongAssociationLimits :: Bool
wrongAssociationLimits = Bool
False,
    wrongCompositionLimits :: Bool
wrongCompositionLimits = Bool
False
    },
  articleToUse :: ArticlePreference
articleToUse = ArticlePreference
UseDefiniteArticleWherePossible,
  cdConstraints :: CdConstraints
cdConstraints = CdConstraints {
    anyCompositionCyclesInvolveInheritances :: Maybe Bool
anyCompositionCyclesInvolveInheritances = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
    },
  classConfig :: ClassConfig
classConfig = ClassConfig {
    classLimits :: (Int, Int)
classLimits = (Int
5, Int
5),
    aggregationLimits :: (Int, Maybe Int)
aggregationLimits = (Int
2, Int -> Maybe Int
forall a. a -> Maybe a
Just Int
2),
    associationLimits :: (Int, Maybe Int)
associationLimits = (Int
1, Int -> Maybe Int
forall a. a -> Maybe a
Just Int
1),
    compositionLimits :: (Int, Maybe Int)
compositionLimits = (Int
2, Int -> Maybe Int
forall a. a -> Maybe a
Just Int
2),
    inheritanceLimits :: (Int, Maybe Int)
inheritanceLimits = (Int
2, Int -> Maybe Int
forall a. a -> Maybe a
Just Int
2),
    relationshipLimits :: (Int, Maybe Int)
relationshipLimits = (Int
7, Int -> Maybe Int
forall a. a -> Maybe a
Just Int
7)
    },
  drawSettings :: CdDrawSettings
drawSettings = CdDrawSettings {
    omittedDefaults :: OmittedDefaultMultiplicities
omittedDefaults = OmittedDefaultMultiplicities {
      aggregationWholeOmittedDefaultMultiplicity :: Maybe (Int, Maybe Int)
aggregationWholeOmittedDefaultMultiplicity = (Int, Maybe Int) -> Maybe (Int, Maybe Int)
forall a. a -> Maybe a
Just (Int
0, Maybe Int
forall a. Maybe a
Nothing),
      associationOmittedDefaultMultiplicity :: Maybe (Int, Maybe Int)
associationOmittedDefaultMultiplicity = (Int, Maybe Int) -> Maybe (Int, Maybe Int)
forall a. a -> Maybe a
Just (Int
0, Maybe Int
forall a. Maybe a
Nothing),
      compositionWholeOmittedDefaultMultiplicity :: Maybe (Int, Maybe Int)
compositionWholeOmittedDefaultMultiplicity = (Int, Maybe Int) -> Maybe (Int, Maybe Int)
forall a. a -> Maybe a
Just (Int
1, Int -> Maybe Int
forall a. a -> Maybe a
Just Int
1)
      },
    printNames :: Bool
printNames = Bool
True,
    printNavigations :: Bool
printNavigations = Bool
True
    },
  maxInstances :: Maybe Integer
maxInstances = Integer -> Maybe Integer
forall a. a -> Maybe a
Just Integer
4000,
  objectProperties :: ObjectProperties
objectProperties = ObjectProperties {
    anonymousObjectProportion :: Rational
anonymousObjectProportion = Integer
0 Integer -> Integer -> Rational
forall a. Integral a => a -> a -> Ratio a
% Integer
1,
    completelyInhabited :: Maybe Bool
completelyInhabited = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True,
    hasLimitedIsolatedObjects :: Bool
hasLimitedIsolatedObjects = Bool
True,
    hasSelfLoops :: Maybe Bool
hasSelfLoops = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False,
    usesEveryRelationshipName :: Maybe Bool
usesEveryRelationshipName = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
    },
  possibleReasons :: [Reason]
possibleReasons = [
    Property -> Reason
PreDefined Property
CompositionCycles,
    Property -> Reason
PreDefined Property
DoubleRelationships,
    Property -> Reason
PreDefined Property
InheritanceCycles,
    Property -> Reason
PreDefined Property
InvalidInheritanceLimits,
    Property -> Reason
PreDefined Property
MultipleInheritances,
    Property -> Reason
PreDefined Property
ReverseInheritances,
    Property -> Reason
PreDefined Property
ReverseRelationships,
    Property -> Reason
PreDefined Property
SelfInheritances,
    Property -> Reason
PreDefined Property
SelfRelationships,
    Property -> Reason
PreDefined Property
WrongAssociationLimits,
    Property -> Reason
PreDefined Property
WrongCompositionLimits
    ],
  printSolution :: Bool
printSolution = Bool
True,
  reasonsPerInstance :: NumberOfReasons
reasonsPerInstance = NumberOfReasons {
    customReasons :: Int
customReasons = Int
0,
    preDefinedInvalid :: Int
preDefinedInvalid = Int
6,
    preDefinedValid :: Int
preDefinedValid = Int
4
    },
  timeout :: Maybe Int
timeout = Maybe Int
forall a. Maybe a
Nothing,
  useNames :: Bool
useNames = Bool
True,
  extraText :: Maybe (Map Language String)
extraText = Maybe (Map Language String)
forall a. Maybe a
Nothing
  }

{-|
points: 0.15
average generation time per instance: 0:20min
CPU usage: 200%
-}
task2023_10 :: NameCdErrorConfig
task2023_10 :: NameCdErrorConfig
task2023_10 = NameCdErrorConfig {
  allowedProperties :: AllowedProperties
allowedProperties = AllowedProperties {
    compositionCycles :: Bool
compositionCycles = Bool
False,
    doubleRelationships :: Bool
doubleRelationships = Bool
True,
    inheritanceCycles :: Bool
inheritanceCycles = Bool
False,
    invalidInheritanceLimits :: Bool
invalidInheritanceLimits = Bool
False,
    reverseInheritances :: Bool
reverseInheritances = Bool
False,
    reverseRelationships :: Bool
reverseRelationships = Bool
True,
    selfInheritances :: Bool
selfInheritances = Bool
False,
    selfRelationships :: Bool
selfRelationships = Bool
False,
    wrongAssociationLimits :: Bool
wrongAssociationLimits = Bool
True,
    wrongCompositionLimits :: Bool
wrongCompositionLimits = Bool
False
    },
  articleToUse :: ArticlePreference
articleToUse = ArticlePreference
UseDefiniteArticleWherePossible,
  cdConstraints :: CdConstraints
cdConstraints = CdConstraints {
    anyCompositionCyclesInvolveInheritances :: Maybe Bool
anyCompositionCyclesInvolveInheritances = Maybe Bool
forall a. Maybe a
Nothing
    },
  classConfig :: ClassConfig
classConfig = ClassConfig {
    classLimits :: (Int, Int)
classLimits = (Int
5, Int
5),
    aggregationLimits :: (Int, Maybe Int)
aggregationLimits = (Int
2, Int -> Maybe Int
forall a. a -> Maybe a
Just Int
2),
    associationLimits :: (Int, Maybe Int)
associationLimits = (Int
2, Int -> Maybe Int
forall a. a -> Maybe a
Just Int
2),
    compositionLimits :: (Int, Maybe Int)
compositionLimits = (Int
2, Int -> Maybe Int
forall a. a -> Maybe a
Just Int
2),
    inheritanceLimits :: (Int, Maybe Int)
inheritanceLimits = (Int
2, Int -> Maybe Int
forall a. a -> Maybe a
Just Int
2),
    relationshipLimits :: (Int, Maybe Int)
relationshipLimits = (Int
8, Int -> Maybe Int
forall a. a -> Maybe a
Just Int
8)
    },
  drawSettings :: CdDrawSettings
drawSettings = CdDrawSettings {
    omittedDefaults :: OmittedDefaultMultiplicities
omittedDefaults = OmittedDefaultMultiplicities {
      aggregationWholeOmittedDefaultMultiplicity :: Maybe (Int, Maybe Int)
aggregationWholeOmittedDefaultMultiplicity = (Int, Maybe Int) -> Maybe (Int, Maybe Int)
forall a. a -> Maybe a
Just (Int
0, Maybe Int
forall a. Maybe a
Nothing),
      associationOmittedDefaultMultiplicity :: Maybe (Int, Maybe Int)
associationOmittedDefaultMultiplicity = (Int, Maybe Int) -> Maybe (Int, Maybe Int)
forall a. a -> Maybe a
Just (Int
0, Maybe Int
forall a. Maybe a
Nothing),
      compositionWholeOmittedDefaultMultiplicity :: Maybe (Int, Maybe Int)
compositionWholeOmittedDefaultMultiplicity = (Int, Maybe Int) -> Maybe (Int, Maybe Int)
forall a. a -> Maybe a
Just (Int
1, Int -> Maybe Int
forall a. a -> Maybe a
Just Int
1)
      },
    printNames :: Bool
printNames = Bool
True,
    printNavigations :: Bool
printNavigations = Bool
False
    },
  maxInstances :: Maybe Integer
maxInstances = Integer -> Maybe Integer
forall a. a -> Maybe a
Just Integer
4000,
  objectProperties :: ObjectProperties
objectProperties = ObjectProperties {
    anonymousObjectProportion :: Rational
anonymousObjectProportion = Integer
0 Integer -> Integer -> Rational
forall a. Integral a => a -> a -> Ratio a
% Integer
1,
    completelyInhabited :: Maybe Bool
completelyInhabited = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True,
    hasLimitedIsolatedObjects :: Bool
hasLimitedIsolatedObjects = Bool
True,
    hasSelfLoops :: Maybe Bool
hasSelfLoops = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False,
    usesEveryRelationshipName :: Maybe Bool
usesEveryRelationshipName = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
    },
  possibleReasons :: [Reason]
possibleReasons = [
    Property -> Reason
PreDefined Property
CompositionCycles,
    Property -> Reason
PreDefined Property
DoubleRelationships,
    Property -> Reason
PreDefined Property
InheritanceCycles,
    Property -> Reason
PreDefined Property
InvalidInheritanceLimits,
    Property -> Reason
PreDefined Property
MultipleInheritances,
    Property -> Reason
PreDefined Property
ReverseInheritances,
    Property -> Reason
PreDefined Property
ReverseRelationships,
    Property -> Reason
PreDefined Property
SelfInheritances,
    Property -> Reason
PreDefined Property
SelfRelationships,
    Property -> Reason
PreDefined Property
WrongAssociationLimits,
    Property -> Reason
PreDefined Property
WrongCompositionLimits
    ],
  printSolution :: Bool
printSolution = Bool
True,
  reasonsPerInstance :: NumberOfReasons
reasonsPerInstance = NumberOfReasons {
    customReasons :: Int
customReasons = Int
0,
    preDefinedInvalid :: Int
preDefinedInvalid = Int
6,
    preDefinedValid :: Int
preDefinedValid = Int
4
    },
  timeout :: Maybe Int
timeout = Maybe Int
forall a. Maybe a
Nothing,
  useNames :: Bool
useNames = Bool
True,
  extraText :: Maybe (Map Language String)
extraText = Maybe (Map Language String)
forall a. Maybe a
Nothing
  }

{-|
points: 0.15
average generation time per instance: 0:57 min
CPU usage: 171%
-}
task2024_10 :: NameCdErrorConfig
task2024_10 :: NameCdErrorConfig
task2024_10 = NameCdErrorConfig {
  allowedProperties :: AllowedProperties
allowedProperties = AllowedProperties {
    compositionCycles :: Bool
compositionCycles = Bool
True,
    doubleRelationships :: Bool
doubleRelationships = Bool
False,
    inheritanceCycles :: Bool
inheritanceCycles = Bool
False,
    invalidInheritanceLimits :: Bool
invalidInheritanceLimits = Bool
False,
    reverseInheritances :: Bool
reverseInheritances = Bool
False,
    reverseRelationships :: Bool
reverseRelationships = Bool
True,
    selfInheritances :: Bool
selfInheritances = Bool
False,
    selfRelationships :: Bool
selfRelationships = Bool
False,
    wrongAssociationLimits :: Bool
wrongAssociationLimits = Bool
False,
    wrongCompositionLimits :: Bool
wrongCompositionLimits = Bool
False
    },
  articleToUse :: ArticlePreference
articleToUse = ArticlePreference
UseDefiniteArticleWherePossible,
  cdConstraints :: CdConstraints
cdConstraints = CdConstraints {
    anyCompositionCyclesInvolveInheritances :: Maybe Bool
anyCompositionCyclesInvolveInheritances = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
    },
  classConfig :: ClassConfig
classConfig = ClassConfig {
    classLimits :: (Int, Int)
classLimits = (Int
5, Int
5),
    aggregationLimits :: (Int, Maybe Int)
aggregationLimits = (Int
2, Int -> Maybe Int
forall a. a -> Maybe a
Just Int
2),
    associationLimits :: (Int, Maybe Int)
associationLimits = (Int
2, Int -> Maybe Int
forall a. a -> Maybe a
Just Int
2),
    compositionLimits :: (Int, Maybe Int)
compositionLimits = (Int
2, Int -> Maybe Int
forall a. a -> Maybe a
Just Int
3),
    inheritanceLimits :: (Int, Maybe Int)
inheritanceLimits = (Int
1, Int -> Maybe Int
forall a. a -> Maybe a
Just Int
1),
    relationshipLimits :: (Int, Maybe Int)
relationshipLimits = (Int
7, Int -> Maybe Int
forall a. a -> Maybe a
Just Int
8)
    },
  drawSettings :: CdDrawSettings
drawSettings = CdDrawSettings {
    omittedDefaults :: OmittedDefaultMultiplicities
omittedDefaults = OmittedDefaultMultiplicities {
      aggregationWholeOmittedDefaultMultiplicity :: Maybe (Int, Maybe Int)
aggregationWholeOmittedDefaultMultiplicity = (Int, Maybe Int) -> Maybe (Int, Maybe Int)
forall a. a -> Maybe a
Just (Int
0, Maybe Int
forall a. Maybe a
Nothing),
      associationOmittedDefaultMultiplicity :: Maybe (Int, Maybe Int)
associationOmittedDefaultMultiplicity = (Int, Maybe Int) -> Maybe (Int, Maybe Int)
forall a. a -> Maybe a
Just (Int
0, Maybe Int
forall a. Maybe a
Nothing),
      compositionWholeOmittedDefaultMultiplicity :: Maybe (Int, Maybe Int)
compositionWholeOmittedDefaultMultiplicity = Maybe (Int, Maybe Int)
forall a. Maybe a
Nothing
      },
    printNames :: Bool
printNames = Bool
True,
    printNavigations :: Bool
printNavigations = Bool
False
    },
  maxInstances :: Maybe Integer
maxInstances = Integer -> Maybe Integer
forall a. a -> Maybe a
Just Integer
4000,
  objectProperties :: ObjectProperties
objectProperties = ObjectProperties {
    anonymousObjectProportion :: Rational
anonymousObjectProportion = Integer
1 Integer -> Integer -> Rational
forall a. Integral a => a -> a -> Ratio a
% Integer
4,
    completelyInhabited :: Maybe Bool
completelyInhabited = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True,
    hasLimitedIsolatedObjects :: Bool
hasLimitedIsolatedObjects = Bool
False,
    hasSelfLoops :: Maybe Bool
hasSelfLoops = Maybe Bool
forall a. Maybe a
Nothing,
    usesEveryRelationshipName :: Maybe Bool
usesEveryRelationshipName = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
    },
  possibleReasons :: [Reason]
possibleReasons = [
    Property -> Reason
PreDefined Property
CompositionCycles,
    Property -> Reason
PreDefined Property
DoubleRelationships,
    Property -> Reason
PreDefined Property
InheritanceCycles,
    Property -> Reason
PreDefined Property
InvalidInheritanceLimits,
    Property -> Reason
PreDefined Property
MultipleInheritances,
    Property -> Reason
PreDefined Property
ReverseInheritances,
    Property -> Reason
PreDefined Property
ReverseRelationships,
    Property -> Reason
PreDefined Property
SelfInheritances,
    Property -> Reason
PreDefined Property
SelfRelationships,
    Property -> Reason
PreDefined Property
WrongAssociationLimits,
    Property -> Reason
PreDefined Property
WrongCompositionLimits
    ],
  printSolution :: Bool
printSolution = Bool
True,
  reasonsPerInstance :: NumberOfReasons
reasonsPerInstance = NumberOfReasons {
    customReasons :: Int
customReasons = Int
0,
    preDefinedInvalid :: Int
preDefinedInvalid = Int
6,
    preDefinedValid :: Int
preDefinedValid = Int
4
    },
  timeout :: Maybe Int
timeout = Maybe Int
forall a. Maybe a
Nothing,
  useNames :: Bool
useNames = Bool
True,
  extraText :: Maybe (Map Language String)
extraText = Maybe (Map Language String)
forall a. Maybe a
Nothing
  }

{-|
points: 0.15
average generation time per instance: 0:38min
CPU usage: 180%
-}
task2024_11 :: NameCdErrorConfig
task2024_11 :: NameCdErrorConfig
task2024_11 = NameCdErrorConfig {
  allowedProperties :: AllowedProperties
allowedProperties = AllowedProperties {
    compositionCycles :: Bool
compositionCycles = Bool
False,
    doubleRelationships :: Bool
doubleRelationships = Bool
True,
    inheritanceCycles :: Bool
inheritanceCycles = Bool
False,
    invalidInheritanceLimits :: Bool
invalidInheritanceLimits = Bool
True,
    reverseInheritances :: Bool
reverseInheritances = Bool
False,
    reverseRelationships :: Bool
reverseRelationships = Bool
False,
    selfInheritances :: Bool
selfInheritances = Bool
False,
    selfRelationships :: Bool
selfRelationships = Bool
False,
    wrongAssociationLimits :: Bool
wrongAssociationLimits = Bool
False,
    wrongCompositionLimits :: Bool
wrongCompositionLimits = Bool
False
    },
  articleToUse :: ArticlePreference
articleToUse = ArticlePreference
UseDefiniteArticleWherePossible,
  cdConstraints :: CdConstraints
cdConstraints = CdConstraints {
    anyCompositionCyclesInvolveInheritances :: Maybe Bool
anyCompositionCyclesInvolveInheritances = Maybe Bool
forall a. Maybe a
Nothing
    },
  classConfig :: ClassConfig
classConfig = ClassConfig {
    classLimits :: (Int, Int)
classLimits = (Int
5, Int
5),
    aggregationLimits :: (Int, Maybe Int)
aggregationLimits = (Int
2, Int -> Maybe Int
forall a. a -> Maybe a
Just Int
2),
    associationLimits :: (Int, Maybe Int)
associationLimits = (Int
2, Int -> Maybe Int
forall a. a -> Maybe a
Just Int
2),
    compositionLimits :: (Int, Maybe Int)
compositionLimits = (Int
2, Int -> Maybe Int
forall a. a -> Maybe a
Just Int
2),
    inheritanceLimits :: (Int, Maybe Int)
inheritanceLimits = (Int
0, Int -> Maybe Int
forall a. a -> Maybe a
Just Int
1),
    relationshipLimits :: (Int, Maybe Int)
relationshipLimits = (Int
6, Int -> Maybe Int
forall a. a -> Maybe a
Just Int
7)
    },
  drawSettings :: CdDrawSettings
drawSettings = CdDrawSettings {
    omittedDefaults :: OmittedDefaultMultiplicities
omittedDefaults = OmittedDefaultMultiplicities {
      aggregationWholeOmittedDefaultMultiplicity :: Maybe (Int, Maybe Int)
aggregationWholeOmittedDefaultMultiplicity = Maybe (Int, Maybe Int)
forall a. Maybe a
Nothing,
      associationOmittedDefaultMultiplicity :: Maybe (Int, Maybe Int)
associationOmittedDefaultMultiplicity = Maybe (Int, Maybe Int)
forall a. Maybe a
Nothing,
      compositionWholeOmittedDefaultMultiplicity :: Maybe (Int, Maybe Int)
compositionWholeOmittedDefaultMultiplicity = Maybe (Int, Maybe Int)
forall a. Maybe a
Nothing
      },
    printNames :: Bool
printNames = Bool
True,
    printNavigations :: Bool
printNavigations = Bool
True
    },
  maxInstances :: Maybe Integer
maxInstances = Integer -> Maybe Integer
forall a. a -> Maybe a
Just Integer
4000,
  objectProperties :: ObjectProperties
objectProperties = ObjectProperties {
    anonymousObjectProportion :: Rational
anonymousObjectProportion = Integer
0 Integer -> Integer -> Rational
forall a. Integral a => a -> a -> Ratio a
% Integer
1,
    completelyInhabited :: Maybe Bool
completelyInhabited = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True,
    hasLimitedIsolatedObjects :: Bool
hasLimitedIsolatedObjects = Bool
False,
    hasSelfLoops :: Maybe Bool
hasSelfLoops = Maybe Bool
forall a. Maybe a
Nothing,
    usesEveryRelationshipName :: Maybe Bool
usesEveryRelationshipName = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
    },
  possibleReasons :: [Reason]
possibleReasons = [
    Property -> Reason
PreDefined Property
CompositionCycles,
    Property -> Reason
PreDefined Property
DoubleRelationships,
    Property -> Reason
PreDefined Property
InheritanceCycles,
    Property -> Reason
PreDefined Property
InvalidInheritanceLimits,
    Property -> Reason
PreDefined Property
MultipleInheritances,
    Property -> Reason
PreDefined Property
ReverseInheritances,
    Property -> Reason
PreDefined Property
ReverseRelationships,
    Property -> Reason
PreDefined Property
SelfInheritances,
    Property -> Reason
PreDefined Property
SelfRelationships,
    Property -> Reason
PreDefined Property
WrongAssociationLimits,
    Property -> Reason
PreDefined Property
WrongCompositionLimits
    ],
  printSolution :: Bool
printSolution = Bool
True,
  reasonsPerInstance :: NumberOfReasons
reasonsPerInstance = NumberOfReasons {
    customReasons :: Int
customReasons = Int
0,
    preDefinedInvalid :: Int
preDefinedInvalid = Int
6,
    preDefinedValid :: Int
preDefinedValid = Int
4
    },
  timeout :: Maybe Int
timeout = Maybe Int
forall a. Maybe a
Nothing,
  useNames :: Bool
useNames = Bool
False,
  extraText :: Maybe (Map Language String)
extraText = Maybe (Map Language String)
forall a. Maybe a
Nothing
  }

{-|
points: 0.08
average generation time per instance: 0:26min
CPU usage: 208%
-}
task2024_54 :: NameCdErrorConfig
task2024_54 :: NameCdErrorConfig
task2024_54 = NameCdErrorConfig {
  allowedProperties :: AllowedProperties
allowedProperties = AllowedProperties {
    compositionCycles :: Bool
compositionCycles = Bool
False,
    doubleRelationships :: Bool
doubleRelationships = Bool
True,
    inheritanceCycles :: Bool
inheritanceCycles = Bool
False,
    invalidInheritanceLimits :: Bool
invalidInheritanceLimits = Bool
True,
    reverseInheritances :: Bool
reverseInheritances = Bool
False,
    reverseRelationships :: Bool
reverseRelationships = Bool
False,
    selfInheritances :: Bool
selfInheritances = Bool
False,
    selfRelationships :: Bool
selfRelationships = Bool
False,
    wrongAssociationLimits :: Bool
wrongAssociationLimits = Bool
False,
    wrongCompositionLimits :: Bool
wrongCompositionLimits = Bool
False
    },
  articleToUse :: ArticlePreference
articleToUse = ArticlePreference
UseDefiniteArticleWherePossible,
  cdConstraints :: CdConstraints
cdConstraints = CdConstraints {
    anyCompositionCyclesInvolveInheritances :: Maybe Bool
anyCompositionCyclesInvolveInheritances = Maybe Bool
forall a. Maybe a
Nothing
    },
  classConfig :: ClassConfig
classConfig = ClassConfig {
    classLimits :: (Int, Int)
classLimits = (Int
5, Int
5),
    aggregationLimits :: (Int, Maybe Int)
aggregationLimits = (Int
2, Int -> Maybe Int
forall a. a -> Maybe a
Just Int
2),
    associationLimits :: (Int, Maybe Int)
associationLimits = (Int
2, Int -> Maybe Int
forall a. a -> Maybe a
Just Int
2),
    compositionLimits :: (Int, Maybe Int)
compositionLimits = (Int
2, Int -> Maybe Int
forall a. a -> Maybe a
Just Int
2),
    inheritanceLimits :: (Int, Maybe Int)
inheritanceLimits = (Int
0, Int -> Maybe Int
forall a. a -> Maybe a
Just Int
1),
    relationshipLimits :: (Int, Maybe Int)
relationshipLimits = (Int
6, Int -> Maybe Int
forall a. a -> Maybe a
Just Int
7)
    },
  drawSettings :: CdDrawSettings
drawSettings = CdDrawSettings {
    omittedDefaults :: OmittedDefaultMultiplicities
omittedDefaults = OmittedDefaultMultiplicities {
      aggregationWholeOmittedDefaultMultiplicity :: Maybe (Int, Maybe Int)
aggregationWholeOmittedDefaultMultiplicity = (Int, Maybe Int) -> Maybe (Int, Maybe Int)
forall a. a -> Maybe a
Just (Int
0, Maybe Int
forall a. Maybe a
Nothing),
      associationOmittedDefaultMultiplicity :: Maybe (Int, Maybe Int)
associationOmittedDefaultMultiplicity = (Int, Maybe Int) -> Maybe (Int, Maybe Int)
forall a. a -> Maybe a
Just (Int
0, Maybe Int
forall a. Maybe a
Nothing),
      compositionWholeOmittedDefaultMultiplicity :: Maybe (Int, Maybe Int)
compositionWholeOmittedDefaultMultiplicity = Maybe (Int, Maybe Int)
forall a. Maybe a
Nothing
      },
    printNames :: Bool
printNames = Bool
True,
    printNavigations :: Bool
printNavigations = Bool
False
    },
  maxInstances :: Maybe Integer
maxInstances = Integer -> Maybe Integer
forall a. a -> Maybe a
Just Integer
4000,
  objectProperties :: ObjectProperties
objectProperties = ObjectProperties {
    anonymousObjectProportion :: Rational
anonymousObjectProportion = Integer
0 Integer -> Integer -> Rational
forall a. Integral a => a -> a -> Ratio a
% Integer
1,
    completelyInhabited :: Maybe Bool
completelyInhabited = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True,
    hasLimitedIsolatedObjects :: Bool
hasLimitedIsolatedObjects = Bool
False,
    hasSelfLoops :: Maybe Bool
hasSelfLoops = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False,
    usesEveryRelationshipName :: Maybe Bool
usesEveryRelationshipName = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
    },
  possibleReasons :: [Reason]
possibleReasons = [
    Property -> Reason
PreDefined Property
CompositionCycles,
    Property -> Reason
PreDefined Property
DoubleRelationships,
    Property -> Reason
PreDefined Property
InheritanceCycles,
    Property -> Reason
PreDefined Property
InvalidInheritanceLimits,
    Property -> Reason
PreDefined Property
MultipleInheritances,
    Property -> Reason
PreDefined Property
ReverseInheritances,
    Property -> Reason
PreDefined Property
ReverseRelationships,
    Property -> Reason
PreDefined Property
SelfInheritances,
    Property -> Reason
PreDefined Property
SelfRelationships,
    Property -> Reason
PreDefined Property
WrongAssociationLimits,
    Property -> Reason
PreDefined Property
WrongCompositionLimits
    ],
  printSolution :: Bool
printSolution = Bool
True,
  reasonsPerInstance :: NumberOfReasons
reasonsPerInstance = NumberOfReasons {
    customReasons :: Int
customReasons = Int
0,
    preDefinedInvalid :: Int
preDefinedInvalid = Int
6,
    preDefinedValid :: Int
preDefinedValid = Int
4
    },
  timeout :: Maybe Int
timeout = Maybe Int
forall a. Maybe a
Nothing,
  useNames :: Bool
useNames = Bool
True,
  extraText :: Maybe (Map Language String)
extraText = Maybe (Map Language String)
forall a. Maybe a
Nothing
  }