packages feed

taffybar-7.3.0: test/unit/System/Taffybar/Information/CPUPowerSpec.hs

module System.Taffybar.Information.CPUPowerSpec (spec) where

import System.Taffybar.Information.CPUPower
import Test.Hspec

spec :: Spec
spec =
  describe "CPU package power calculation" $ do
    it "converts an energy delta over time to watts" $ do
      let previous = EnergySample 10_000_000 1_000_000_000
          current = EnergySample 55_000_000 2_000_000_000
      calculateCPUPowerWatts 100_000_000 previous current `shouldBe` Just 45

    it "accounts for a wrapping energy counter" $ do
      let previous = EnergySample 95_000_000 1_000_000_000
          current = EnergySample 5_000_000 2_000_000_000
      calculateCPUPowerWatts 100_000_000 previous current `shouldBe` Just 10

    it "rejects samples without elapsed time" $ do
      let previous = EnergySample 10_000_000 1_000_000_000
          current = EnergySample 20_000_000 1_000_000_000
      calculateCPUPowerWatts 100_000_000 previous current `shouldBe` Nothing