module Test.MatchLineSpec
  ( spec
  )
where

import           Cut.Analyze
import           Test.Hspec

spec :: Spec
spec = describe "Match a line" $ do
  it "should satisfy equality"
    $          getStart "[silencedetect @ 0xad44e0] silence_start: -0.012381"
    `shouldBe` (-0.012381)

  it "Should deal with rng output"
    $ getStart "[silencedetect @ 0x10b0280] silence_start: 430.41'peed= 858x"
    `shouldBe` 430.41
  it "Should match the end line as well"
    $          getEnd
                 "[silencedetect @ 0x23a94e0] silence_end: 148.515 | silence_duration: 0.825079"
    `shouldBe` 148.515
  it "Should match the duration"
    $          getDuration
                 "[silencedetect @ 0x23a94e0] silence_end: 148.515 | silence_duration: 0.825079"
    `shouldBe` 0.825079

  it "Should deal with quotes on end as well"
    $          getDuration
                 "[silencedetect @ 0x1900280] silence_end: 1249.91 | silence_duration: 15.7841'"
    `shouldBe` 15.7841

  it "Shouldn't filter this line"
    $          takeOnlyLines
                 "[silencedetect @ 0xcf3280] silence_end: 415.498 | silence_duration: 69.6312'"
    `shouldBe` True