implemented gsAverage

This commit is contained in:
Jonathan Lamothe 2019-11-28 06:05:42 -05:00
parent e3d5af5f88
commit be54198960
2 changed files with 14 additions and 1 deletions

View File

@ -1008,4 +1008,4 @@ addGoalieStats g1 g2 = GoalieStats
-- | Determines a goalie's average goals allowed per game.
gsAverage :: GoalieStats -> Rational
gsAverage = undefined
gsAverage gs = fromIntegral (gs^.gsGoalsAllowed) / fromIntegral (gs^.gsGames)

View File

@ -34,6 +34,7 @@ import Control.Monad (replicateM)
import Data.Aeson (FromJSON, ToJSON, decode, encode, toJSON)
import Data.Aeson.Types (Value (Object))
import qualified Data.HashMap.Strict as HM
import Data.Ratio ((%))
import Lens.Micro (Lens', (&), (^.), (.~), (?~))
import System.Random (randomRIO)
import Test.Hspec (Spec, context, describe, it, shouldBe)
@ -80,6 +81,7 @@ spec = describe "Mtlstats.Types" $ do
goalieSummarySpec
goalieIsActiveSpec
addGoalieStatsSpec
gsAverageSpec
Menu.spec
playerSpec :: Spec
@ -810,6 +812,17 @@ addGoalieStatsSpec = describe "addGoalieStats" $ let
in it ("should be " ++ show expected) $
actual `shouldBe` expected
gsAverageSpec :: Spec
gsAverageSpec = describe "gsAverage" $ let
gs = newGoalieStats
& gsGames .~ 2
& gsGoalsAllowed .~ 3
expected = 3 % 2
in it ("should be " ++ show expected) $
gsAverage gs `shouldBe` expected
joe :: Player
joe = newPlayer 2 "Joe" "center"