From 12a65f1fc365cd741ab9405313fe3c6bfd953411 Mon Sep 17 00:00:00 2001 From: Gabriel Gonzalez Date: Mon, 11 Mar 2019 20:39:45 -0700 Subject: [PATCH] Update normalization tests (#415) Fixes https://github.com/dhall-lang/dhall-lang/issues/413 This updates the normalization tests so that the `*B.dhall` files match the output of the Haskell implementation. In some cases this just changes the format of the file, but in other cases this detects a case where the `*B.dhall` file was not in normal form. --- .../success/multiline/escapeB.dhall | 8 +- .../success/multiline/hangingIndentB.dhall | 5 +- .../success/multiline/interiorIndentB.dhall | 5 +- .../success/multiline/interpolationB.dhall | 5 +- .../success/multiline/preserveCommentB.dhall | 5 +- .../success/multiline/twoLinesB.dhall | 4 +- .../success/prelude/Natural/fold/2B.dhall | 5 +- .../success/prelude/Optional/toList/0B.dhall | 2 +- .../success/remoteSystemsB.dhall | 282 +++++++++--------- .../success/simple/doubleShowB.dhall | 15 +- .../success/simple/listBuildB.dhall | 4 +- .../success/simple/optionalBuildB.dhall | 8 +- .../success/simple/optionalBuildFoldB.dhall | 2 +- .../success/simplifications/andB.dhall | 15 +- .../success/simplifications/eqB.dhall | 9 +- .../success/simplifications/ifThenElseB.dhall | 4 +- .../success/simplifications/neB.dhall | 9 +- .../success/simplifications/orB.dhall | 15 +- 18 files changed, 225 insertions(+), 177 deletions(-) diff --git a/tests/normalization/success/multiline/escapeB.dhall b/tests/normalization/success/multiline/escapeB.dhall index e03325338..c3091a083 100644 --- a/tests/normalization/success/multiline/escapeB.dhall +++ b/tests/normalization/success/multiline/escapeB.dhall @@ -1 +1,7 @@ -"\${\n''\n\$\n\"\n\\\n" +'' +''${ +''' +$ +" +\ +'' diff --git a/tests/normalization/success/multiline/hangingIndentB.dhall b/tests/normalization/success/multiline/hangingIndentB.dhall index 2739e56a5..d362920af 100644 --- a/tests/normalization/success/multiline/hangingIndentB.dhall +++ b/tests/normalization/success/multiline/hangingIndentB.dhall @@ -1 +1,4 @@ -"foo\nbar\n" +'' +foo +bar +'' diff --git a/tests/normalization/success/multiline/interiorIndentB.dhall b/tests/normalization/success/multiline/interiorIndentB.dhall index fc229a2cc..3e801aff7 100644 --- a/tests/normalization/success/multiline/interiorIndentB.dhall +++ b/tests/normalization/success/multiline/interiorIndentB.dhall @@ -1 +1,4 @@ -" foo\n bar\n" +'' + foo + bar +'' diff --git a/tests/normalization/success/multiline/interpolationB.dhall b/tests/normalization/success/multiline/interpolationB.dhall index 68ff71958..0ddde6367 100644 --- a/tests/normalization/success/multiline/interpolationB.dhall +++ b/tests/normalization/success/multiline/interpolationB.dhall @@ -1 +1,4 @@ -"${Natural/show 1} foo\n bar\n" +'' +1 foo + bar +'' diff --git a/tests/normalization/success/multiline/preserveCommentB.dhall b/tests/normalization/success/multiline/preserveCommentB.dhall index 206e9922e..6d0468093 100644 --- a/tests/normalization/success/multiline/preserveCommentB.dhall +++ b/tests/normalization/success/multiline/preserveCommentB.dhall @@ -1 +1,4 @@ -"-- Hello\n{- world -}\n" +'' +-- Hello +{- world -} +'' diff --git a/tests/normalization/success/multiline/twoLinesB.dhall b/tests/normalization/success/multiline/twoLinesB.dhall index 7f8d6467d..543bc4a17 100644 --- a/tests/normalization/success/multiline/twoLinesB.dhall +++ b/tests/normalization/success/multiline/twoLinesB.dhall @@ -1 +1,3 @@ -"foo\nbar" +'' +foo +bar'' diff --git a/tests/normalization/success/prelude/Natural/fold/2B.dhall b/tests/normalization/success/prelude/Natural/fold/2B.dhall index 8f908797a..81f9a4fbb 100644 --- a/tests/normalization/success/prelude/Natural/fold/2B.dhall +++ b/tests/normalization/success/prelude/Natural/fold/2B.dhall @@ -1 +1,4 @@ -λ(natural : Type) → λ(succ : natural → natural) → λ(zero : natural) → succ (succ (succ zero)) + λ(natural : Type) +→ λ(succ : natural → natural) +→ λ(zero : natural) +→ succ (succ (succ zero)) diff --git a/tests/normalization/success/prelude/Optional/toList/0B.dhall b/tests/normalization/success/prelude/Optional/toList/0B.dhall index e285d60d7..dd264421e 100644 --- a/tests/normalization/success/prelude/Optional/toList/0B.dhall +++ b/tests/normalization/success/prelude/Optional/toList/0B.dhall @@ -1 +1 @@ -[ 1 ] : List Natural +[ 1 ] diff --git a/tests/normalization/success/remoteSystemsB.dhall b/tests/normalization/success/remoteSystemsB.dhall index 029670748..de1216b71 100644 --- a/tests/normalization/success/remoteSystemsB.dhall +++ b/tests/normalization/success/remoteSystemsB.dhall @@ -1,4 +1,4 @@ - λ ( _ + λ ( xs : List { cores : Natural @@ -36,9 +36,9 @@ , user : Optional Text } - _ + xs Text - ( λ ( _ + ( λ ( x : { cores : Natural , host : @@ -57,156 +57,162 @@ Optional Text } ) - → λ(_ : Text) + → λ(y : Text) → '' ${Optional/fold Text - _@1.user + x.user Text - (λ(user : Text) → "${user}@${_@1.host}") - _@1.host} ${merge - { Empty = λ(_ : {}) → "", NonEmpty = λ(_ : Text) → _ } - ( List/fold - Text - _@1.platforms - < Empty : {} | NonEmpty : Text > - ( λ(_ : Text) - → λ(_ : < Empty : {} | NonEmpty : Text >) - → merge - { Empty = - λ(_ : {}) → < NonEmpty = _@2 | Empty : {} > - , NonEmpty = - λ(_ : Text) - → < NonEmpty = _@2 ++ "," ++ _ | Empty : {} > - } - _ - : < Empty : {} | NonEmpty : Text > - ) - < Empty = {=} | NonEmpty : Text > + (λ(user : Text) → "${user}@${x.host}") + x.host} ${merge + { Empty = + λ(_ : {}) → "" + , NonEmpty = + λ(result : Text) → result + } + ( List/fold + Text + x.platforms + < Empty : {} | NonEmpty : Text > + ( λ(element : Text) + → λ(status : < Empty : {} | NonEmpty : Text >) + → merge + { Empty = + λ(_ : {}) → < NonEmpty = element | Empty : {} > + , NonEmpty = + λ(result : Text) + → < NonEmpty = + element ++ "," ++ result + | Empty : + {} + > + } + status + : < Empty : {} | NonEmpty : Text > ) - : Text} ${_@1.key} ${Integer/show - ( Natural/toInteger _@1.cores - )} ${Integer/show - ( Natural/toInteger - _@1.speedFactor - )} ${merge - { Empty = - λ(_ : {}) → "" - , NonEmpty = - λ(_ : Text) → _ - } - ( List/fold + < Empty = {=} | NonEmpty : Text > + ) + : Text} ${x.key} ${Integer/show + ( Natural/toInteger x.cores + )} ${Integer/show + ( Natural/toInteger x.speedFactor + )} ${merge + { Empty = + λ(_ : {}) → "" + , NonEmpty = + λ(result : Text) → result + } + ( List/fold + Text + x.supportedFeatures + < Empty : + {} + | NonEmpty : Text - _@1.supportedFeatures - < Empty : - {} - | NonEmpty : - Text - > - ( λ(_ : Text) - → λ ( _ - : < Empty : - {} - | NonEmpty : - Text - > - ) - → merge + > + ( λ(element : Text) + → λ ( status + : < Empty : + {} + | NonEmpty : + Text + > + ) + → merge + { Empty = + λ(_ : {}) + → < NonEmpty = + element + | Empty : + {} + > + , NonEmpty = + λ(result : Text) + → < NonEmpty = + element + ++ "," + ++ result + | Empty : + {} + > + } + status + : < Empty : + {} + | NonEmpty : + Text + > + ) + < Empty = + {=} + | NonEmpty : + Text + > + ) + : Text} ${merge { Empty = - λ(_ : {}) - → < NonEmpty = - _@2 - | Empty : - {} - > + λ(_ : {}) → "" , NonEmpty = - λ(_ : Text) - → < NonEmpty = - _@2 - ++ "," - ++ _ - | Empty : - {} - > + λ ( result + : Text + ) + → result } - _ - : < Empty : + ( List/fold + Text + x.mandatoryFeatures + < Empty : {} | NonEmpty : Text > - ) - < Empty = - {=} - | NonEmpty : - Text - > - ) - : Text} ${merge - { Empty = - λ(_ : {}) - → "" - , NonEmpty = - λ ( _ - : Text - ) - → _ - } - ( List/fold - Text - _@1.mandatoryFeatures - < Empty : - {} - | NonEmpty : - Text - > - ( λ ( _ - : Text - ) - → λ ( _ - : < Empty : - {} - | NonEmpty : - Text - > - ) - → merge - { Empty = - λ ( _ - : {} - ) - → < NonEmpty = - _@2 - | Empty : - {} - > - , NonEmpty = - λ ( _ - : Text - ) - → < NonEmpty = - _@2 - ++ "," - ++ _ - | Empty : - {} - > - } - _ - : < Empty : + ( λ ( element + : Text + ) + → λ ( status + : < Empty : + {} + | NonEmpty : + Text + > + ) + → merge + { Empty = + λ ( _ + : {} + ) + → < NonEmpty = + element + | Empty : {} - | NonEmpty : - Text > - ) - < Empty = - {=} - | NonEmpty : - Text - > - ) - : Text} + , NonEmpty = + λ ( result + : Text + ) + → < NonEmpty = + element + ++ "," + ++ result + | Empty : + {} + > + } + status + : < Empty : + {} + | NonEmpty : + Text + > + ) + < Empty = + {=} + | NonEmpty : + Text + > + ) + : Text} '' - ++ _ + ++ y ) "" diff --git a/tests/normalization/success/simple/doubleShowB.dhall b/tests/normalization/success/simple/doubleShowB.dhall index 826fe123e..7e0ea9132 100644 --- a/tests/normalization/success/simple/doubleShowB.dhall +++ b/tests/normalization/success/simple/doubleShowB.dhall @@ -1,6 +1,11 @@ -{ example0 = "-0.42" -, example1 = "13.37" -, example2 = "NaN" -, example3 = "Infinity" -, example4 = "-Infinity" +{ example0 = + "-0.42" +, example1 = + "13.37" +, example2 = + "NaN" +, example3 = + "Infinity" +, example4 = + "-Infinity" } diff --git a/tests/normalization/success/simple/listBuildB.dhall b/tests/normalization/success/simple/listBuildB.dhall index 2583426c6..2a5234d05 100644 --- a/tests/normalization/success/simple/listBuildB.dhall +++ b/tests/normalization/success/simple/listBuildB.dhall @@ -1,7 +1,7 @@ { example0 = - [ True, False ] : List Bool + [ True, False ] , example1 = - [ True, False ] : List Bool + [ True, False ] , example2 = λ(id : ∀(a : Type) → a → a) → id (List Bool) [ True, False ] } diff --git a/tests/normalization/success/simple/optionalBuildB.dhall b/tests/normalization/success/simple/optionalBuildB.dhall index 628b96be5..d7679c498 100644 --- a/tests/normalization/success/simple/optionalBuildB.dhall +++ b/tests/normalization/success/simple/optionalBuildB.dhall @@ -1,9 +1,9 @@ { example0 = - [ 1 ] : Optional Natural + Some 1 , example1 = - [ +1 ] : Optional Integer + Some +1 , example2 = - λ(id : ∀(a : Type) → a → a) → id (Optional Bool) ([ True ] : Optional Bool) + λ(id : ∀(a : Type) → a → a) → id (Optional Bool) (Some True) , example3 = - λ(a : Type) → λ(x : a) → [ x ] : Optional a + λ(a : Type) → λ(x : a) → Some x } diff --git a/tests/normalization/success/simple/optionalBuildFoldB.dhall b/tests/normalization/success/simple/optionalBuildFoldB.dhall index 91725a86f..b7ae511cd 100644 --- a/tests/normalization/success/simple/optionalBuildFoldB.dhall +++ b/tests/normalization/success/simple/optionalBuildFoldB.dhall @@ -1 +1 @@ -[ "foo" ] : Optional Text +Some "foo" diff --git a/tests/normalization/success/simplifications/andB.dhall b/tests/normalization/success/simplifications/andB.dhall index a495702f2..0cb7f85d7 100644 --- a/tests/normalization/success/simplifications/andB.dhall +++ b/tests/normalization/success/simplifications/andB.dhall @@ -1,6 +1,11 @@ -{ example0 = λ(x : Bool) → x -, example1 = λ(x : Bool) → x -, example2 = λ(x : Bool) → False -, example3 = λ(x : Bool) → False -, example4 = λ(x : Bool) → x +{ example0 = + λ(x : Bool) → x +, example1 = + λ(x : Bool) → x +, example2 = + λ(x : Bool) → False +, example3 = + λ(x : Bool) → False +, example4 = + λ(x : Bool) → x } diff --git a/tests/normalization/success/simplifications/eqB.dhall b/tests/normalization/success/simplifications/eqB.dhall index 789041e57..f072787ca 100644 --- a/tests/normalization/success/simplifications/eqB.dhall +++ b/tests/normalization/success/simplifications/eqB.dhall @@ -1,4 +1,7 @@ -{ example0 = λ(x : Bool) → x -, example1 = λ(x : Bool) → x -, example2 = λ(x : Bool) → True +{ example0 = + λ(x : Bool) → x +, example1 = + λ(x : Bool) → x +, example2 = + λ(x : Bool) → True } diff --git a/tests/normalization/success/simplifications/ifThenElseB.dhall b/tests/normalization/success/simplifications/ifThenElseB.dhall index 1e7e129b9..419ffc11e 100644 --- a/tests/normalization/success/simplifications/ifThenElseB.dhall +++ b/tests/normalization/success/simplifications/ifThenElseB.dhall @@ -1,3 +1 @@ -{ example0 = λ(x : Bool) → x -, example1 = λ(x : Bool) → λ(y : Text) → y -} +{ example0 = λ(x : Bool) → x, example1 = λ(x : Bool) → λ(y : Text) → y } diff --git a/tests/normalization/success/simplifications/neB.dhall b/tests/normalization/success/simplifications/neB.dhall index 464dfa9de..9ea6da9c7 100644 --- a/tests/normalization/success/simplifications/neB.dhall +++ b/tests/normalization/success/simplifications/neB.dhall @@ -1,4 +1,7 @@ -{ example0 = λ(x : Bool) → x -, example1 = λ(x : Bool) → x -, example2 = λ(x : Bool) → False +{ example0 = + λ(x : Bool) → x +, example1 = + λ(x : Bool) → x +, example2 = + λ(x : Bool) → False } diff --git a/tests/normalization/success/simplifications/orB.dhall b/tests/normalization/success/simplifications/orB.dhall index 2a57c7939..ebfd9db36 100644 --- a/tests/normalization/success/simplifications/orB.dhall +++ b/tests/normalization/success/simplifications/orB.dhall @@ -1,6 +1,11 @@ -{ example0 = λ(x : Bool) → True -, example1 = λ(x : Bool) → True -, example2 = λ(x : Bool) → x -, example3 = λ(x : Bool) → x -, example4 = λ(x : Bool) → x +{ example0 = + λ(x : Bool) → True +, example1 = + λ(x : Bool) → True +, example2 = + λ(x : Bool) → x +, example3 = + λ(x : Bool) → x +, example4 = + λ(x : Bool) → x }