stan 0.1.3.0 → 0.2.0.0
raw patch · 20 files changed
+201/−44 lines, 20 filesdep +scientificdep ~basedep ~ghcdep ~ghc-boot-th
Dependencies added: scientific
Dependency ranges changed: base, ghc, ghc-boot-th
Files
- CHANGELOG.md +14/−0
- src/Stan/Ghc/Compat.hs +2/−0
- src/Stan/Ghc/Compat906.hs +1/−1
- src/Stan/Hie/Compat.hs +2/−0
- src/Stan/Hie/Compat904.hs +1/−2
- src/Stan/Hie/Debug.hs +2/−0
- src/Stan/Hie/Debug908.hs +1/−1
- src/Stan/Inspection/Partial.hs +75/−2
- src/Stan/Pattern/Type.hs +20/−0
- stack-ghc-9.4.8.yaml +7/−7
- stack-ghc-9.6.3.yaml +6/−6
- stack-ghc-9.6.4.yaml +6/−6
- stack-ghc-9.6.5.yaml +12/−0
- stack-ghc-9.6.6.yaml +12/−0
- stack.yaml +8/−6
- stan.cabal +8/−5
- target/Target/Partial.hs +13/−0
- test/Test/Stan/Analysis.hs +1/−1
- test/Test/Stan/Analysis/Partial.hs +9/−6
- test/Test/Stan/Number.hs +1/−1
CHANGELOG.md view
@@ -3,6 +3,20 @@ `stan` uses [PVP Versioning][1]. The change log is available [on GitHub][2]. +## 0.2.0.0++* Add the following inspections:++ * Partial instance for 'Scientific' method 'GHC.Real.fromRational' (`stan0022`)+ * Partial 'Scientific' function 'GHC.Real.realToFrac' (`stan0023`)+ * Partial instance for 'Scientific' method 'GHC.Real.recip' (`stan0024`)+ * Partial instance for 'Scientific' method 'GHC.Real.(/)' (`stan0025`)++ Since these change the behaviour of `stan` by default this is a+ major release.++* Support GHC 9.12 (thanks to @ncaq)+ ## 0.1.3.0 * Add prospective support for GHC 9.10
src/Stan/Ghc/Compat.hs view
@@ -16,4 +16,6 @@ import Stan.Ghc.Compat906 as Compat #elif __GLASGOW_HASKELL__ == 910 import Stan.Ghc.Compat906 as Compat+#elif __GLASGOW_HASKELL__ == 912+import Stan.Ghc.Compat906 as Compat #endif
src/Stan/Ghc/Compat906.hs view
@@ -4,7 +4,7 @@ {-# OPTIONS_GHC -Wno-orphans #-} module Stan.Ghc.Compat906-#if __GLASGOW_HASKELL__ == 906 || __GLASGOW_HASKELL__ == 908 || __GLASGOW_HASKELL__ == 910+#if __GLASGOW_HASKELL__ == 906 || __GLASGOW_HASKELL__ == 908 || __GLASGOW_HASKELL__ == 910 || __GLASGOW_HASKELL__ == 912 ( -- * Modules Module , ModuleName
src/Stan/Hie/Compat.hs view
@@ -16,4 +16,6 @@ import Stan.Hie.Compat904 as Compat #elif __GLASGOW_HASKELL__ == 910 import Stan.Hie.Compat904 as Compat+#elif __GLASGOW_HASKELL__ == 912+import Stan.Hie.Compat904 as Compat #endif
src/Stan/Hie/Compat904.hs view
@@ -1,7 +1,7 @@ {-# LANGUAGE CPP #-} module Stan.Hie.Compat904-#if __GLASGOW_HASKELL__ == 904 || __GLASGOW_HASKELL__ == 906 || __GLASGOW_HASKELL__ == 908 || __GLASGOW_HASKELL__== 910+#if __GLASGOW_HASKELL__ == 904 || __GLASGOW_HASKELL__ == 906 || __GLASGOW_HASKELL__ == 908 || __GLASGOW_HASKELL__== 910 || __GLASGOW_HASKELL__== 912 ( -- * Main HIE types ContextInfo (..) , HieArgs (..)@@ -108,4 +108,3 @@ #else () where #endif-
src/Stan/Hie/Debug.hs view
@@ -16,4 +16,6 @@ import Stan.Hie.Debug908 as Compat #elif __GLASGOW_HASKELL__ == 910 import Stan.Hie.Debug908 as Compat+#elif __GLASGOW_HASKELL__ == 912+import Stan.Hie.Debug908 as Compat #endif
src/Stan/Hie/Debug908.hs view
@@ -21,7 +21,7 @@ -} module Stan.Hie.Debug908-#if __GLASGOW_HASKELL__ == 908 || __GLASGOW_HASKELL__ == 910+#if __GLASGOW_HASKELL__ == 908 || __GLASGOW_HASKELL__ == 910 || __GLASGOW_HASKELL__ == 912 ( debugHieFile ) where
src/Stan/Inspection/Partial.hs view
@@ -56,7 +56,14 @@ , stan0020 -- *** Partial instance for 'Natural' method 'GHC.Num.fromInteger' , stan0021-+ -- *** Partial instance for 'Scientific' method 'GHC.Real.fromRational'+ , stan0022+ -- *** Partial 'Scientific' function 'GHC.Real.realToFrac'+ , stan0023+ -- *** Partial instance for 'Scientific' method 'GHC.Real.recip'+ , stan0024+ -- *** Partial instance for 'Scientific' method 'GHC.Real.(/)'+ , stan0025 -- * List of all partial 'Inspection's , partialInspectionsMap ) where@@ -73,7 +80,7 @@ import Stan.Pattern.Ast (PatternAst (PatternAstName), namesToPatternAst) import Stan.Pattern.Edsl (PatternBool (..)) import Stan.Pattern.Type (PatternType (..), integerPattern, listFunPattern, listPattern,- naturalPattern, nonEmptyPattern, (|->))+ naturalPattern, nonEmptyPattern, rationalPattern, scientificPattern, (|->)) import Stan.Severity (Severity (..)) import qualified Stan.Category as Category@@ -103,6 +110,10 @@ , stan0019 , stan0020 , stan0021+ , stan0022+ , stan0023+ , stan0024+ , stan0025 ] -- | Smart constructor to create generic partial 'Inspection' with a given 'Pattern'.@@ -314,3 +325,65 @@ #endif (integerPattern |-> naturalPattern) ""++-- | 'Inspection' — partial 'GHC.Real.fromRational' @STAN-0022@.+stan0022 :: Inspection+stan0022 = mkPartialInspectionPattern+ (Id "STAN-0022")+#if __GLASGOW_HASKELL__ < 910+ ("fromRational" `_nameFrom` "GHC.Real")+#else+ ("fromRational" `_nameFrom` "GHC.Internal.Real")+#endif+ (rationalPattern |-> scientificPattern)+ "Scientific"+ & solutionL .~+ [ "Use a function like 'Data.Scientific.fromRationalRepetend' that handles repeating decimals"+ , "Convert to a fractional type like 'Double'"+ ]++-- | 'Inspection' — partial 'GHC.Real.realToFrac' @STAN-0023@.+stan0023 :: Inspection+stan0023 = mkPartialInspectionPattern+ (Id "STAN-0023")+#if __GLASGOW_HASKELL__ < 910+ ("realToFrac" `_nameFrom` "GHC.Real")+#else+ ("realToFrac" `_nameFrom` "GHC.Internal.Real")+#endif+ ((?) |-> scientificPattern)+ "Scientific"+ & solutionL .~+ [ "Use 'Data.Scientific.fromFloatDigits'"+ , "use a function that handles repeating decimals, e.g. 'Data.Scientific.fromRationalRepetend . toRational'"+ ]++-- | 'Inspection' - partial 'GHC.Real.recip' @STAN-0024@+stan0024 :: Inspection+stan0024 = mkPartialInspectionPattern+ (Id "STAN-0024")+#if __GLASGOW_HASKELL__ < 910+ ("recip" `_nameFrom` "GHC.Real")+#else+ ("recip" `_nameFrom` "GHC.Internal.Real")+#endif+ (scientificPattern |-> scientificPattern)+ "Scientific"+ & solutionL .~+ [ "Convert to a fractional type like 'Double'"+ ]++-- | 'Inspection' - partial 'GHC.Real.(/)' @STAN-0025@+stan0025 :: Inspection+stan0025 = mkPartialInspectionPattern+ (Id "STAN-0025")+#if __GLASGOW_HASKELL__ < 910+ ("/" `_nameFrom` "GHC.Real")+#else+ ("/" `_nameFrom` "GHC.Internal.Real")+#endif+ (scientificPattern |-> scientificPattern |-> scientificPattern)+ "Scientific"+ & solutionL .~+ [ "Convert to a fractional type like 'Double'"+ ]
src/Stan/Pattern/Type.hs view
@@ -24,6 +24,8 @@ , listFunPattern , integerPattern , naturalPattern+ , rationalPattern+ , scientificPattern -- ** Textual types , charPattern@@ -157,6 +159,24 @@ } |:: [] #endif++rationalPattern :: PatternType+rationalPattern =+ "Rational" `_nameFrom` moduleName |:: []+ where+ moduleName =+#if __GLASGOW_HASKELL__ >= 910+ "GHC.Internal.Real"+#else+ "GHC.Real"+#endif++scientificPattern :: PatternType+scientificPattern = NameMeta+ { nameMetaName = "Scientific"+ , nameMetaModuleName = "Data.Scientific"+ , nameMetaPackage = "scientific"+ } |:: [] charPattern :: PatternType charPattern = primTypeMeta "Char" |:: []
stack-ghc-9.4.8.yaml view
@@ -1,11 +1,11 @@-resolver: lts-21.25 # GHC 9.4.8+snapshot: lts-21.25 # GHC 9.4.8 extra-deps:-- clay-0.14.0@sha256:a50ba73137a39c55e89f24a7792107ec40ba07320b2c5ff7932049845c50ffc9,2204+- clay-0.15.0@sha256:33a5b5d30186b03a32b66e9391e7ee9a213084643b583444038ba8f96223da78,2269 - dir-traverse-0.2.3.0@sha256:adcc128f201ff95131b15ffe41365dc99c50dc3fa3a910f021521dc734013bfa,2137 - extensions-0.1.0.0@sha256:b8105dc43a57b0b3b54879e8dbb905676dfee3e8b59301fefbf2409a0fe95710,4447-- tomland-1.3.3.2@sha256:887dc39a8c9819deb8fcb6fde72e87dad4c94108b1736a5bf7215ccf3117bd0f,9474-- trial-0.0.0.0@sha256:ebd93f3485dd7f0ce8426fa46b500f26edbea285c2890150123e1b0f6a92c7db,4410-- trial-optparse-applicative-0.0.0.0@sha256:ee878dbf412849d4fb52d7bca93bec45a6392a93e03a46bd320109b9a0ff2a38,2540-- trial-tomland-0.0.0.0@sha256:c10c5c3f94e3dcfcad4a66cf70682ace77d5381596aff91fa2030636d07de977,2541-- validation-selective-0.2.0.0@sha256:e1ab5482dede8bf676d729a09109c7c5f798363b9d458e4197a27afb8b48fdd3,3907+- tomland-1.3.3.3@sha256:877635f30fc7eeebc7b79283baeec1b7904365973cc3fd98c86f9d147eeef575,9147+- trial-0.0.0.0@sha256:eaefa22bf10b04a9149ef0231cfd5e42ff47534221d4cf4ad3d7653090c54d23,4410+- trial-optparse-applicative-0.0.0.0@sha256:3ca376f1361a3b623a52b8db8e178cdca5f2e6e3954d217b874a9af823ab6c06,2540+- trial-tomland-0.0.0.0@sha256:5dc32bd4003dc84565170e316576eb7a0c1cea3e8b8b3815d5f509b4a40577fd,2541+- validation-selective-0.2.0.0@sha256:cc847f1a110e3b1bd437a5356f115881b61cafcb11781b570b180efd88bf0907,3917
stack-ghc-9.6.3.yaml view
@@ -1,12 +1,12 @@-resolver: lts-22.6 # GHC 9.6.3+snapshot: lts-22.6 # GHC 9.6.3 extra-deps: - ansi-wl-pprint-0.6.9@sha256:fb737bc96e2aef34ad595d54ced7a73f648c521ebcb00fe0679aff45ccd49212,2448 - dir-traverse-0.2.3.0@sha256:adcc128f201ff95131b15ffe41365dc99c50dc3fa3a910f021521dc734013bfa,2137 - extensions-0.1.0.1@sha256:131270f3dd3adfa96e48259a200b7303c4f8211f54bff168fb8020dfef2aaec7,5269 - optparse-applicative-0.17.1.0@sha256:cb5f5f0dc9749846fc0e3df0041a8efee6368cc1cff07336acd4c3b02a951ed6,5147-- tomland-1.3.3.2@sha256:887dc39a8c9819deb8fcb6fde72e87dad4c94108b1736a5bf7215ccf3117bd0f,9474-- trial-0.0.0.0@sha256:ebd93f3485dd7f0ce8426fa46b500f26edbea285c2890150123e1b0f6a92c7db,4410-- trial-optparse-applicative-0.0.0.0@sha256:ee878dbf412849d4fb52d7bca93bec45a6392a93e03a46bd320109b9a0ff2a38,2540-- trial-tomland-0.0.0.0@sha256:c10c5c3f94e3dcfcad4a66cf70682ace77d5381596aff91fa2030636d07de977,2541-- validation-selective-0.2.0.0@sha256:e1ab5482dede8bf676d729a09109c7c5f798363b9d458e4197a27afb8b48fdd3,3907+- tomland-1.3.3.3@sha256:877635f30fc7eeebc7b79283baeec1b7904365973cc3fd98c86f9d147eeef575,9147+- trial-0.0.0.0@sha256:eaefa22bf10b04a9149ef0231cfd5e42ff47534221d4cf4ad3d7653090c54d23,4410+- trial-optparse-applicative-0.0.0.0@sha256:3ca376f1361a3b623a52b8db8e178cdca5f2e6e3954d217b874a9af823ab6c06,2540+- trial-tomland-0.0.0.0@sha256:5dc32bd4003dc84565170e316576eb7a0c1cea3e8b8b3815d5f509b4a40577fd,2541+- validation-selective-0.2.0.0@sha256:cc847f1a110e3b1bd437a5356f115881b61cafcb11781b570b180efd88bf0907,3917
stack-ghc-9.6.4.yaml view
@@ -1,12 +1,12 @@-resolver: lts-22.20 # GHC 9.6.4+snapshot: lts-22.20 # GHC 9.6.4 extra-deps: - ansi-wl-pprint-0.6.9@sha256:fb737bc96e2aef34ad595d54ced7a73f648c521ebcb00fe0679aff45ccd49212,2448 - dir-traverse-0.2.3.0@sha256:adcc128f201ff95131b15ffe41365dc99c50dc3fa3a910f021521dc734013bfa,2137 - extensions-0.1.0.1@sha256:131270f3dd3adfa96e48259a200b7303c4f8211f54bff168fb8020dfef2aaec7,5269 - optparse-applicative-0.17.1.0@sha256:cb5f5f0dc9749846fc0e3df0041a8efee6368cc1cff07336acd4c3b02a951ed6,5147-- tomland-1.3.3.2@sha256:887dc39a8c9819deb8fcb6fde72e87dad4c94108b1736a5bf7215ccf3117bd0f,9474-- trial-0.0.0.0@sha256:ebd93f3485dd7f0ce8426fa46b500f26edbea285c2890150123e1b0f6a92c7db,4410-- trial-optparse-applicative-0.0.0.0@sha256:ee878dbf412849d4fb52d7bca93bec45a6392a93e03a46bd320109b9a0ff2a38,2540-- trial-tomland-0.0.0.0@sha256:c10c5c3f94e3dcfcad4a66cf70682ace77d5381596aff91fa2030636d07de977,2541-- validation-selective-0.2.0.0@sha256:e1ab5482dede8bf676d729a09109c7c5f798363b9d458e4197a27afb8b48fdd3,3907+- tomland-1.3.3.3@sha256:877635f30fc7eeebc7b79283baeec1b7904365973cc3fd98c86f9d147eeef575,9147+- trial-0.0.0.0@sha256:eaefa22bf10b04a9149ef0231cfd5e42ff47534221d4cf4ad3d7653090c54d23,4410+- trial-optparse-applicative-0.0.0.0@sha256:3ca376f1361a3b623a52b8db8e178cdca5f2e6e3954d217b874a9af823ab6c06,2540+- trial-tomland-0.0.0.0@sha256:5dc32bd4003dc84565170e316576eb7a0c1cea3e8b8b3815d5f509b4a40577fd,2541+- validation-selective-0.2.0.0@sha256:cc847f1a110e3b1bd437a5356f115881b61cafcb11781b570b180efd88bf0907,3917
+ stack-ghc-9.6.5.yaml view
@@ -0,0 +1,12 @@+snapshot: lts-22.27 # GHC 9.6.5++extra-deps:+- ansi-wl-pprint-0.6.9@sha256:fb737bc96e2aef34ad595d54ced7a73f648c521ebcb00fe0679aff45ccd49212,2448+- dir-traverse-0.2.3.0@sha256:adcc128f201ff95131b15ffe41365dc99c50dc3fa3a910f021521dc734013bfa,2137+- extensions-0.1.0.1@sha256:131270f3dd3adfa96e48259a200b7303c4f8211f54bff168fb8020dfef2aaec7,5269+- optparse-applicative-0.17.1.0@sha256:cb5f5f0dc9749846fc0e3df0041a8efee6368cc1cff07336acd4c3b02a951ed6,5147+- tomland-1.3.3.3@sha256:877635f30fc7eeebc7b79283baeec1b7904365973cc3fd98c86f9d147eeef575,9147+- trial-0.0.0.0@sha256:eaefa22bf10b04a9149ef0231cfd5e42ff47534221d4cf4ad3d7653090c54d23,4410+- trial-optparse-applicative-0.0.0.0@sha256:3ca376f1361a3b623a52b8db8e178cdca5f2e6e3954d217b874a9af823ab6c06,2540+- trial-tomland-0.0.0.0@sha256:5dc32bd4003dc84565170e316576eb7a0c1cea3e8b8b3815d5f509b4a40577fd,2541+- validation-selective-0.2.0.0@sha256:cc847f1a110e3b1bd437a5356f115881b61cafcb11781b570b180efd88bf0907,3917
+ stack-ghc-9.6.6.yaml view
@@ -0,0 +1,12 @@+snapshot: lts-22.43 # GHC 9.6.6++extra-deps:+- ansi-wl-pprint-0.6.9@sha256:fb737bc96e2aef34ad595d54ced7a73f648c521ebcb00fe0679aff45ccd49212,2448+- dir-traverse-0.2.3.0@sha256:adcc128f201ff95131b15ffe41365dc99c50dc3fa3a910f021521dc734013bfa,2137+- extensions-0.1.0.1@sha256:131270f3dd3adfa96e48259a200b7303c4f8211f54bff168fb8020dfef2aaec7,5269+- optparse-applicative-0.17.1.0@sha256:cb5f5f0dc9749846fc0e3df0041a8efee6368cc1cff07336acd4c3b02a951ed6,5147+- tomland-1.3.3.3@sha256:877635f30fc7eeebc7b79283baeec1b7904365973cc3fd98c86f9d147eeef575,9147+- trial-0.0.0.0@sha256:eaefa22bf10b04a9149ef0231cfd5e42ff47534221d4cf4ad3d7653090c54d23,4410+- trial-optparse-applicative-0.0.0.0@sha256:3ca376f1361a3b623a52b8db8e178cdca5f2e6e3954d217b874a9af823ab6c06,2540+- trial-tomland-0.0.0.0@sha256:5dc32bd4003dc84565170e316576eb7a0c1cea3e8b8b3815d5f509b4a40577fd,2541+- validation-selective-0.2.0.0@sha256:cc847f1a110e3b1bd437a5356f115881b61cafcb11781b570b180efd88bf0907,3917
stack.yaml view
@@ -1,12 +1,14 @@-resolver: lts-22.21 # GHC 9.6.5+snapshot: lts-23.0 # GHC 9.8.4 extra-deps: - ansi-wl-pprint-0.6.9@sha256:fb737bc96e2aef34ad595d54ced7a73f648c521ebcb00fe0679aff45ccd49212,2448+- ansi-terminal-1.0.2@sha256:1f90bb88e670ce63fbf2c9216d50857f2419582f1c6791e542c3eab97ecfd364,2897+- ansi-terminal-types-0.11.5@sha256:f78440dfd95c4509e88855ac7cc2d9566ddf956a92c1290404cac93ad1a1b00a,1482 - dir-traverse-0.2.3.0@sha256:adcc128f201ff95131b15ffe41365dc99c50dc3fa3a910f021521dc734013bfa,2137 - extensions-0.1.0.1@sha256:131270f3dd3adfa96e48259a200b7303c4f8211f54bff168fb8020dfef2aaec7,5269+- hedgehog-1.4@sha256:9860ab34ab3951d9515c71b777d8c9c47610aae7339933e17d26ad9a4afa5618,4754+- hspec-hedgehog-0.1.1.0 - optparse-applicative-0.17.1.0@sha256:cb5f5f0dc9749846fc0e3df0041a8efee6368cc1cff07336acd4c3b02a951ed6,5147-- tomland-1.3.3.2@sha256:887dc39a8c9819deb8fcb6fde72e87dad4c94108b1736a5bf7215ccf3117bd0f,9474-- trial-0.0.0.0@sha256:ebd93f3485dd7f0ce8426fa46b500f26edbea285c2890150123e1b0f6a92c7db,4410-- trial-optparse-applicative-0.0.0.0@sha256:ee878dbf412849d4fb52d7bca93bec45a6392a93e03a46bd320109b9a0ff2a38,2540-- trial-tomland-0.0.0.0@sha256:c10c5c3f94e3dcfcad4a66cf70682ace77d5381596aff91fa2030636d07de977,2541-- validation-selective-0.2.0.0@sha256:e1ab5482dede8bf676d729a09109c7c5f798363b9d458e4197a27afb8b48fdd3,3907+- trial-0.0.0.0@sha256:eaefa22bf10b04a9149ef0231cfd5e42ff47534221d4cf4ad3d7653090c54d23,4410+- trial-optparse-applicative-0.0.0.0@sha256:3ca376f1361a3b623a52b8db8e178cdca5f2e6e3954d217b874a9af823ab6c06,2540+- trial-tomland-0.0.0.0@sha256:5dc32bd4003dc84565170e316576eb7a0c1cea3e8b8b3815d5f509b4a40577fd,2541
stan.cabal view
@@ -1,6 +1,6 @@ cabal-version: 2.4 name: stan-version: 0.1.3.0+version: 0.2.0.0 synopsis: Haskell STatic ANalyser description: Stan is a Haskell __ST__atic __AN__alysis CLI tool.@@ -21,6 +21,8 @@ stack-ghc-9.4.8.yaml stack-ghc-9.6.3.yaml stack-ghc-9.6.4.yaml+ stack-ghc-9.6.5.yaml+ stack-ghc-9.6.6.yaml stack.yaml tested-with: GHC == 8.8.4 GHC == 8.10.7@@ -30,7 +32,7 @@ location: https://github.com/kowainik/stan.git common common-options- build-depends: base >= 4.13 && < 4.21 && (< 4.16.3.0 || >= 4.17)+ build-depends: base >= 4.13 && < 4.22 && (< 4.16.3.0 || >= 4.17) -- ^^ .hie files don't contain enough type -- information on ghc-9.2.[4-8] (base >= -- 4.16.3.0 && < 4.17)@@ -149,8 +151,8 @@ , directory ^>= 1.3 , extensions ^>= 0.0.0.1 || ^>= 0.1.0.0 , filepath >= 1.4 && < 1.6- , ghc >= 8.8 && < 9.11- , ghc-boot-th >= 8.8 && < 9.11+ , ghc >= 8.8 && < 9.13+ , ghc-boot-th >= 8.8 && < 9.13 , gitrev ^>= 1.3.1 , microaeson ^>= 0.1.0.0 , optparse-applicative >= 0.15 && < 0.19@@ -173,6 +175,7 @@ hs-source-dirs: target build-depends: bytestring , filepath+ , scientific , text , unordered-containers exposed-modules: Target.AntiPattern@@ -208,7 +211,7 @@ , containers , filepath , ghc- , hedgehog >= 1.0 && < 1.5+ , hedgehog >= 1.0 && < 1.6 , hspec >= 2.7 && < 2.12 , hspec-hedgehog >= 0.0.1.2 , optparse-applicative
target/Target/Partial.hs view
@@ -8,6 +8,7 @@ import Data.Maybe (fromJust) import GHC.Exts (fromList) import Numeric.Natural (Natural)+import Data.Scientific (Scientific) import qualified Data.List.NonEmpty as NE @@ -74,6 +75,18 @@ stanFromInteger :: Integer -> Natural stanFromInteger = fromInteger++stanFromRational :: Rational -> Scientific+stanFromRational = fromRational++stanRealToFrac :: Real a => a -> Scientific+stanRealToFrac = realToFrac++stanRecip :: Scientific -> Scientific+stanRecip = recip++stanDivide :: Scientific -> Scientific -> Scientific+stanDivide a b = a / b -- Other tests
test/Test/Stan/Analysis.hs view
@@ -57,7 +57,7 @@ :: ([Id Observation] -> Analysis) -- ^ Run analysis with ignored observations -> Spec analysisIgnoredObservationsSpec analyse = describe "Ignores observations" $ do- let obsId = Id "OBS-STAN-0001-pnvTKA-16:12"+ let obsId = Id "OBS-STAN-0001-pnvTKA-17:12" it "ObservationId is present when not ignored " $ do let observationsIds = fmap observationId $ analysisObservations $ analyse []
test/Test/Stan/Analysis/Partial.hs view
@@ -18,18 +18,18 @@ analysisPartialSpec :: Analysis -> Spec analysisPartialSpec analysis = describe "Partial functions" $ do- forM_ (zip (sortById partialInspectionsMap) [16, 19 ..]) checkObservation+ forM_ (zip (sortById partialInspectionsMap) [17, 20 ..]) checkObservation let noObservation = noObservationAssert ["Partial"] analysis it "STAN-0010: doesn't trigger on 'succ :: Natural -> Natural'" $- noObservation Partial.stan0010 81+ noObservation Partial.stan0010 94 it "STAN-0011: doesn't trigger on 'pred :: Integer -> Integer'" $- noObservation Partial.stan0011 84+ noObservation Partial.stan0011 97 it "STAN-0011: triggers on polymorphic 'pred :: Enum a => a -> a'" $- checkObservationFor Partial.stan0011 87 16 20+ checkObservationFor Partial.stan0011 100 16 20 it "STAN-0020: triggers on 'Data.List.NonEmpty.fromList'" $- checkObservationFor Partial.stan0020 90 18 29+ checkObservationFor Partial.stan0020 103 18 29 where checkObservation :: (Inspection, Int) -> SpecWith (Arg Expectation)@@ -41,7 +41,10 @@ funLen, start, end :: Int funLen = T.length $ nameMetaName nameMeta- start = if nameMetaName nameMeta == "!!" then funLen + 14 else funLen + 8+ start = funLen + case nameMetaName nameMeta of+ "!!" -> 14+ "/" -> 19+ _ -> 8 end = start + funLen checkObservationFor :: Inspection -> Int -> Int -> Int -> Expectation
test/Test/Stan/Number.hs view
@@ -12,7 +12,7 @@ linesOfCodeSpec :: HieFile -> Spec linesOfCodeSpec hieFile = describe "LoC tests" $ it "should count lines of code in the example file" $- countLinesOfCode hieFile `shouldBe` 90+ countLinesOfCode hieFile `shouldBe` 103 modulesNumSpec :: Int -> Spec modulesNumSpec num = describe "Modules number tests" $