packages feed

stan-0.0.0.0: test/Test/Stan/Analysis/Style.hs

module Test.Stan.Analysis.Style
    ( analysisStyleSpec
    ) where

import Test.Hspec (Spec, describe, it)

import Stan.Analysis (Analysis)
import Test.Stan.Analysis.Common (noObservationAssert, observationAssert)

import qualified Stan.Inspection.Style as Style


analysisStyleSpec :: Analysis -> Spec
analysisStyleSpec analysis = describe "Style" $ do
    let checkObservation = observationAssert ["Style"] analysis
    let noObservation = noObservationAssert ["Style"] analysis

    -- fixity
    it "STAN-0301: finds operator with the missing infix" $
        checkObservation Style.stan0301 6 1 6
    it "STAN-0301: no warning when fixity is declared" $
        noObservation Style.stan0301 10

    -- big tuples
    it "STAN-0302: triggers on tuple with 4 elements in the type signature" $
        checkObservation Style.stan0302 13 16 36
    it "STAN-0302: triggers on tuple with 4 elements in the literal" $
        checkObservation Style.stan0302 14 10 22
    it "STAN-0302: no observation on triple in type" $
        noObservation Style.stan0302 16
    it "STAN-0302: no observation on triple literal" $
        noObservation Style.stan0302 17
    it "STAN-0302: triggers on tuple with 4 elements as a record field" $
        checkObservation Style.stan0302 20 20 40