Skip to content

Merge branch 'master' into feature/tutorial-4b #612

Merge branch 'master' into feature/tutorial-4b

Merge branch 'master' into feature/tutorial-4b #612

GitHub Actions / Test results succeeded Oct 16, 2024 in 1s

Test results ✅

Tests passed successfully

Report Passed Failed Skipped Time
dhall-codec/target/test-reports/TEST-io.chymyst.dhall.unit.FromDhallTest.xml 23✅ 316ms
dhall-codec/target/test-reports/TEST-io.chymyst.dhall.unit.FromScalaTest.xml 4✅ 70ms
dhall-codec/target/test-reports/TEST-io.chymyst.dhall.unit.ReadmeTest.xml 4✅ 367ms
dhall-codec/target/test-reports/TEST-io.chymyst.dhall.unit.ToScalaTest.xml 1✅ 328ms
fastparse-memoize/target/test-reports/TEST-io.chymyst.fastparse.unit.MemoizeTest.xml 3✅ 18s
nano-dhall/target/test-reports/TEST-io.chymyst.nanodhall.unit.ConcurrentHashDictTest.xml 1✅ 147ms
nano-dhall/target/test-reports/TEST-io.chymyst.nanodhall.unit.SymbolicGraphTest.xml 1✅ 4ms
scall-cli/target/test-reports/TEST-io.chymyst.dhall.unit.MainSpec.xml 17✅ 4s
scall-cli/target/test-reports/TEST-io.chymyst.dhall.unit.PerfTest.xml 5✅ 90s
scall-core/target/test-reports/TEST-io.chymyst.dhall.unit.DhallImportResolutionSuite.xml 2✅ 7s
scall-core/target/test-reports/TEST-io.chymyst.dhall.unit.DhallParserAndCbor1Suite.xml 5✅ 2s
scall-core/target/test-reports/TEST-io.chymyst.dhall.unit.DhallParserAndCbor2Suite.xml 7✅ 2s
scall-core/target/test-reports/TEST-io.chymyst.dhall.unit.DhallParserAndCbor3Suite.xml 7✅ 2s
scall-core/target/test-reports/TEST-io.chymyst.dhall.unit.DhallSemanticHashSuite.xml 1✅ 3s
scall-core/target/test-reports/TEST-io.chymyst.dhall.unit.DhallSemanticsSuite.xml 2✅ 1s
scall-core/target/test-reports/TEST-io.chymyst.dhall.unit.DhallTypeCheckingSuite.xml 2✅ 278s
scall-core/target/test-reports/TEST-io.chymyst.dhall.unit.DoNotationTest.xml 5✅ 197ms
scall-core/target/test-reports/TEST-io.chymyst.dhall.unit.JsonTest.xml 1✅ 3ms
scall-core/target/test-reports/TEST-io.chymyst.dhall.unit.MiscBugsTest.xml 9✅ 219ms
scall-core/target/test-reports/TEST-io.chymyst.dhall.unit.ParserStressTest.xml 4✅ 3s
scall-core/target/test-reports/TEST-io.chymyst.dhall.unit.ParserTest.xml 31✅ 216ms
scall-core/target/test-reports/TEST-io.chymyst.dhall.unit.ParserTest2.xml 11✅ 47ms
scall-core/target/test-reports/TEST-io.chymyst.dhall.unit.PrettyPrintingTest.xml 2✅ 62ms
scall-core/target/test-reports/TEST-io.chymyst.dhall.unit.SimpleCBORperformanceTest.xml 4✅ 17s
scall-core/target/test-reports/TEST-io.chymyst.dhall.unit.SimpleCBORtest.xml 18✅ 33ms
scall-core/target/test-reports/TEST-io.chymyst.dhall.unit.SimpleExpressionTest.xml 29✅ 103ms
scall-core/target/test-reports/TEST-io.chymyst.dhall.unit.SimpleImportResolutionTest.xml 9✅ 95s
scall-core/target/test-reports/TEST-io.chymyst.dhall.unit.SimplePreludeTest.xml 7✅ 18s
scall-core/target/test-reports/TEST-io.chymyst.dhall.unit.SimpleSemanticsTest.xml 42✅ 6s
scall-core/target/test-reports/TEST-io.chymyst.dhall.unit.SimpleTypecheckTest.xml 13✅ 24ms
scall-core/target/test-reports/TEST-io.chymyst.dhall.unit.StressTest.xml 12✅ 54s
scall-core/target/test-reports/TEST-io.chymyst.dhall.unit.TomlTest.xml 4✅ 20ms
scall-core/target/test-reports/TEST-io.chymyst.dhall.unit.YamlTest.xml 6✅ 28ms
scall-macros/target/test-reports/TEST-io.chymyst.dhall.macros.unit.MacrosTest.xml 1✅ 231ms
scall-testutils/target/test-reports/TEST-io.chymyst.test.unit.OverrideEnvironmentTest.xml 5✅ 83ms
scall-testutils/target/test-reports/TEST-io.chymyst.test.unit.ResourceFilesTest.xml 3✅ 774ms
scall-testutils/target/test-reports/TEST-io.chymyst.test.unit.ThrowablesTest.xml 1✅ 110ms

✅ dhall-codec/target/test-reports/TEST-io.chymyst.dhall.unit.FromDhallTest.xml

23 tests were completed in 316ms with 23 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
io.chymyst.dhall.unit.FromDhallTest 23✅ 316ms

✅ io.chymyst.dhall.unit.FromDhallTest

✅ convert DoubleLiteral to Scala
✅ convert other literals to Scala
✅ convert kinds to DhallKinds
✅ convert type names to Scala type tags
✅ convert type constructors to Scala type tags
✅ convert built-in functions to Scala functions
✅ fail to convert imports and alternatives
✅ make sure we typecheck when doing .asScala
✅ convert arithmetic
✅ lists
✅ Optional
✅ convert record literals to Scala
✅ fail on ill-typed Dhall expressions
✅ fail on non-closed Dhall expressions
✅ fail on invalid function types
✅ convert functions to Scala functions 1
✅ convert functions to Scala functions 2
✅ convert functions to Scala functions 3
✅ todo: convert generic functions to Scala generic functions
✅ field access for records 1
✅ field access for records 2
✅ field access for records 3
✅ built-in functions with type parameters

✅ dhall-codec/target/test-reports/TEST-io.chymyst.dhall.unit.FromScalaTest.xml

4 tests were completed in 70ms with 4 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
io.chymyst.dhall.unit.FromScalaTest 4✅ 70ms

✅ io.chymyst.dhall.unit.FromScalaTest

✅ convert Scala Double type to Dhall
✅ convert Scala case class
✅ convert Scala types that are not supported
✅ convert Scala type constructors that are not supported

✅ dhall-codec/target/test-reports/TEST-io.chymyst.dhall.unit.ReadmeTest.xml

4 tests were completed in 367ms with 4 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
io.chymyst.dhall.unit.ReadmeTest 4✅ 367ms

✅ io.chymyst.dhall.unit.ReadmeTest

✅ simple examples from readme
✅ factorial example from readme
✅ ill-typed example from readme
✅ Scala factorial example from readme

✅ dhall-codec/target/test-reports/TEST-io.chymyst.dhall.unit.ToScalaTest.xml

1 tests were completed in 328ms with 1 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
io.chymyst.dhall.unit.ToScalaTest 1✅ 328ms

✅ io.chymyst.dhall.unit.ToScalaTest

✅ convert simple Dhall expressions to Scala source code

✅ fastparse-memoize/target/test-reports/TEST-io.chymyst.fastparse.unit.MemoizeTest.xml

3 tests were completed in 18s with 3 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
io.chymyst.fastparse.unit.MemoizeTest 3✅ 18s

✅ io.chymyst.fastparse.unit.MemoizeTest

✅ minimal slow grammar
✅ slow grammar 2
✅ slow grammar becomes faster after memoization

✅ nano-dhall/target/test-reports/TEST-io.chymyst.nanodhall.unit.ConcurrentHashDictTest.xml

1 tests were completed in 147ms with 1 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
io.chymyst.nanodhall.unit.ConcurrentHashDictTest 1✅ 147ms

✅ io.chymyst.nanodhall.unit.ConcurrentHashDictTest

✅ hash strings

✅ nano-dhall/target/test-reports/TEST-io.chymyst.nanodhall.unit.SymbolicGraphTest.xml

1 tests were completed in 4ms with 1 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
io.chymyst.nanodhall.unit.SymbolicGraphTest 1✅ 4ms

✅ io.chymyst.nanodhall.unit.SymbolicGraphTest

✅ refactor the working example

✅ scall-cli/target/test-reports/TEST-io.chymyst.dhall.unit.MainSpec.xml

17 tests were completed in 4s with 17 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
io.chymyst.dhall.unit.MainSpec 17✅ 4s

✅ io.chymyst.dhall.unit.MainSpec

✅ run the Main.process function
✅ Main.process with parse failure
✅ Main.process with evaluation failure
✅ obtain type
✅ obtain hash 1
✅ obtain hash 2
✅ encode / decode roundtrip
✅ export text
✅ fail to export text if Dhall expression is not text
✅ yaml output for literals
✅ fail to export yaml if Dhall expression contains unsupported types
✅ json main test cases
✅ yaml main test cases
✅ yaml corner cases from dhall-haskell/yaml
✅ toml output for records
✅ fail to export toml if Dhall expression contains unsupported types
✅ parse command-line argument

✅ scall-cli/target/test-reports/TEST-io.chymyst.dhall.unit.PerfTest.xml

5 tests were completed in 90s with 5 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
io.chymyst.dhall.unit.PerfTest 5✅ 90s

✅ io.chymyst.dhall.unit.PerfTest

✅ parse schema.dhall 2000 times
✅ create yaml from a realistic example
✅ parse renderAs.dhall
✅ parse largeExpressionA.dhall
✅ parse nested parentheses

✅ scall-core/target/test-reports/TEST-io.chymyst.dhall.unit.DhallImportResolutionSuite.xml

2 tests were completed in 7s with 2 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
io.chymyst.dhall.unit.DhallImportResolutionSuite 2✅ 7s

✅ io.chymyst.dhall.unit.DhallImportResolutionSuite

✅ import resolution success
✅ import resolution failure

✅ scall-core/target/test-reports/TEST-io.chymyst.dhall.unit.DhallParserAndCbor1Suite.xml

5 tests were completed in 2s with 5 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
io.chymyst.dhall.unit.DhallParserAndCbor1Suite 5✅ 2s

✅ io.chymyst.dhall.unit.DhallParserAndCbor1Suite

✅ convert standard examples for successful parsing into CBOR
✅ validate CBOR writing for standard examples
✅ validate CBOR reading for standard examples
✅ validate binary decoding/success
✅ validate binary decoding/failure

✅ scall-core/target/test-reports/TEST-io.chymyst.dhall.unit.DhallParserAndCbor2Suite.xml

7 tests were completed in 2s with 7 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
io.chymyst.dhall.unit.DhallParserAndCbor2Suite 7✅ 2s

✅ io.chymyst.dhall.unit.DhallParserAndCbor2Suite

✅ parse standard examples for successful parsing
✅ parse standard examples for failed parsing
✅ convert standard examples for successful parsing into CBOR
✅ validate CBOR writing for standard examples
✅ validate CBOR reading for standard examples
✅ validate binary decoding/success
✅ validate binary decoding/failure

✅ scall-core/target/test-reports/TEST-io.chymyst.dhall.unit.DhallParserAndCbor3Suite.xml

7 tests were completed in 2s with 7 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
io.chymyst.dhall.unit.DhallParserAndCbor3Suite 7✅ 2s

✅ io.chymyst.dhall.unit.DhallParserAndCbor3Suite

✅ parse standard examples for successful parsing
✅ parse standard examples for failed parsing
✅ convert standard examples for successful parsing into CBOR
✅ validate CBOR writing for standard examples
✅ validate CBOR reading for standard examples
✅ validate binary decoding/success
✅ validate binary decoding/failure

✅ scall-core/target/test-reports/TEST-io.chymyst.dhall.unit.DhallSemanticHashSuite.xml

1 tests were completed in 3s with 1 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
io.chymyst.dhall.unit.DhallSemanticHashSuite 1✅ 3s

✅ io.chymyst.dhall.unit.DhallSemanticHashSuite

✅ dhall standard acceptance tests for semantic hash

✅ scall-core/target/test-reports/TEST-io.chymyst.dhall.unit.DhallSemanticsSuite.xml

2 tests were completed in 1s with 2 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
io.chymyst.dhall.unit.DhallSemanticsSuite 2✅ 1s

✅ io.chymyst.dhall.unit.DhallSemanticsSuite

✅ alpha normalization success
✅ beta normalization success

✅ scall-core/target/test-reports/TEST-io.chymyst.dhall.unit.DhallTypeCheckingSuite.xml

2 tests were completed in 278s with 2 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
io.chymyst.dhall.unit.DhallTypeCheckingSuite 2✅ 278s

✅ io.chymyst.dhall.unit.DhallTypeCheckingSuite

✅ type inference success
✅ type inference failure

✅ scall-core/target/test-reports/TEST-io.chymyst.dhall.unit.DoNotationTest.xml

5 tests were completed in 197ms with 5 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
io.chymyst.dhall.unit.DoNotationTest 5✅ 197ms

✅ io.chymyst.dhall.unit.DoNotationTest

✅ do notation
✅ do notation having no `with` lines
✅ parse do notation correctly
✅ parse do notation and detect error 1
✅ parse do notation and detect error 2

✅ scall-core/target/test-reports/TEST-io.chymyst.dhall.unit.JsonTest.xml

1 tests were completed in 3ms with 1 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
io.chymyst.dhall.unit.JsonTest 1✅ 3ms

✅ io.chymyst.dhall.unit.JsonTest

✅ yaml output for record of lists with indent

✅ scall-core/target/test-reports/TEST-io.chymyst.dhall.unit.MiscBugsTest.xml

9 tests were completed in 219ms with 9 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
io.chymyst.dhall.unit.MiscBugsTest 9✅ 219ms

✅ io.chymyst.dhall.unit.MiscBugsTest

✅ time literals with nanos
✅ time literals with truncated nanos
✅ cbor encoding for time literals with long fraction using cbor1
✅ cbor encoding for time literals with long fraction using cbor2
✅ cbor encoding for time literals of varying precision for 00:00:00.000000000000
✅ cbor encoding for time literals of varying precision for 00:00:01.000000000000
✅ type inference must use correct de Bruijn index, no imports
✅ type inference must use correct de Bruijn index, use imports
✅ failure in Mode/equal.dhall

✅ scall-core/target/test-reports/TEST-io.chymyst.dhall.unit.ParserStressTest.xml

4 tests were completed in 3s with 4 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
io.chymyst.dhall.unit.ParserStressTest 4✅ 3s

✅ io.chymyst.dhall.unit.ParserStressTest

✅ tracing the parse of deeply nested parentheses
✅ simple grammar with no exponential slowness
✅ simple grammar with exponential slowness
✅ simple grammar with exponential slowness and manual memoization

✅ scall-core/target/test-reports/TEST-io.chymyst.dhall.unit.ParserTest.xml

31 tests were completed in 216ms with 31 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
io.chymyst.dhall.unit.ParserTest 31✅ 216ms

✅ io.chymyst.dhall.unit.ParserTest

✅ quoted_label_char
✅ requireKeyword
✅ end_of_line
✅ valid_non_ascii
✅ valid_non_ascii with large Unicode values from UTF-16 surrogates
✅ valid_non_ascii with large Unicode values from file
✅ tab
✅ block_comment
✅ whsp
✅ comment fails when not closed
✅ comment fails when incomplete
✅ whitespace_chunk
✅ whsp1
✅ keyword
✅ simple_label
✅ builtin names
✅ constant names
✅ parse Location as a field name
✅ numeric_double_literal
✅ natural_literal
✅ integer_literal
✅ identifier
✅ identifier with backquotes
✅ variable with backquotes
✅ nonreserved_label with backquotes
✅ label with backquotes
✅ identifier special cases
✅ bytes_literal
✅ primitive_expression
✅ selector_expression
✅ completion_expression

✅ scall-core/target/test-reports/TEST-io.chymyst.dhall.unit.ParserTest2.xml

11 tests were completed in 47ms with 11 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
io.chymyst.dhall.unit.ParserTest2 11✅ 47ms

✅ io.chymyst.dhall.unit.ParserTest2

✅ import_only
✅ import_hashed
✅ import_expression
✅ plus_expression
✅ primitive_expression
✅ let_binding
✅ expression_let_binding
✅ interpolation
✅ double-quoted text with interpolations
✅ single-quoted multiline text with interpolations
✅ text_literal

✅ scall-core/target/test-reports/TEST-io.chymyst.dhall.unit.PrettyPrintingTest.xml

2 tests were completed in 62ms with 2 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
io.chymyst.dhall.unit.PrettyPrintingTest 2✅ 62ms

✅ io.chymyst.dhall.unit.PrettyPrintingTest

✅ print Dhall expressions
✅ print assert expressions

✅ scall-core/target/test-reports/TEST-io.chymyst.dhall.unit.SimpleCBORperformanceTest.xml

4 tests were completed in 17s with 4 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
io.chymyst.dhall.unit.SimpleCBORperformanceTest 4✅ 17s

✅ io.chymyst.dhall.unit.SimpleCBORperformanceTest

✅ produce an expression with a large normal form
✅ beta-normalizing performance
✅ no more stack overflow in Scala MurmurHash3 or hashCode()
✅ stack overflow in Scala MurmurHash3

✅ scall-core/target/test-reports/TEST-io.chymyst.dhall.unit.SimpleCBORtest.xml

18 tests were completed in 33ms with 18 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
io.chymyst.dhall.unit.SimpleCBORtest 18✅ 33ms

✅ io.chymyst.dhall.unit.SimpleCBORtest

✅ CBOR roundtrips 1
✅ CBOR roundtrips 2
✅ CBOR roundtrips 2a
✅ CBOR roundtrips for half-precision floats
✅ CBOR roundtrips for half-precision double
✅ CBOR roundtrips 3
✅ CBOR roundtrips 4
✅ CBOR roundtrips 5
✅ CBOR roundtrips 6
✅ CBOR for dictionaries
✅ CBOR for tagged array
✅ CBOR for strings containing newlines
✅ CBOR1 for strings containing newlines
✅ CBOR3 for Double
✅ CBOR3 for simple integer encoding of variables
✅ CBOR3 for simple integer encoding of variables-1
✅ CBOR3 encoding must agree with CBOR2 encoding for record with > 4 fields
✅ CBOR3 encoding edge cases

✅ scall-core/target/test-reports/TEST-io.chymyst.dhall.unit.SimpleExpressionTest.xml

29 tests were completed in 103ms with 29 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
io.chymyst.dhall.unit.SimpleExpressionTest 29✅ 103ms

✅ io.chymyst.dhall.unit.SimpleExpressionTest

✅ simple invalid expression: 1+1
✅ simple expression: { foo, bar }
✅ simple expression: x
✅ simple expression: let x = 1 in x with hand-written grammar
✅ simple expression: let x = 1 in y
✅ simple expression: (x)
✅ parse a string interpolation
✅ parse a sample file
✅ expression and a block comment
✅ expression and a line comment
✅ expression followed by comment
✅ parse assert : x
✅ parse x === y
✅ parse assert : x === y
✅ simple_label
✅ empty record literal
✅ variables or missing import ambiguity 1
✅ variables or missing import ambiguity 2
✅ variables or missing import ambiguity 3
✅ variable name missing//foo, conflict with import declaration
✅ invalid utf-8
✅ quoted multiline string ends with newline
✅ empty url path
✅ posix env var names
✅ leading delimiter in union type
✅ records have sorted fields in CBOR
✅ application to an import
✅ import with a long file path
✅ do notation

✅ scall-core/target/test-reports/TEST-io.chymyst.dhall.unit.SimpleImportResolutionTest.xml

9 tests were completed in 95s with 9 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
io.chymyst.dhall.unit.SimpleImportResolutionTest 9✅ 95s

✅ io.chymyst.dhall.unit.SimpleImportResolutionTest

✅ environment presets are parsed correctly for testing
✅ import chaining must compute correct paths
✅ no loops in importing
✅ alpha-normalize and beta-normalize imported file
✅ exponential blowup in normal form
✅ import alternatives inside expressions
✅ import . or .. or other invalid imports should fail
✅ do not recover from sha mismatch
✅ correct sha256 check

✅ scall-core/target/test-reports/TEST-io.chymyst.dhall.unit.SimplePreludeTest.xml

7 tests were completed in 18s with 7 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
io.chymyst.dhall.unit.SimplePreludeTest 7✅ 18s

✅ io.chymyst.dhall.unit.SimplePreludeTest

✅ read List/partition.dhall and beta-normalize it alone
✅ typecheck List/partition.dhall imports
✅ read Natural/sort.dhall and beta-normalize it alone
✅ typecheck Natural/sort.dhall imports
✅ import dhall-lang/Prelude/Natural/package.dhall without hanging
✅ import dhall-lang/Prelude/package.dhall without hanging
✅ resolve imports (but do not typecheck) each file from the standard prelude except two package.dhall files

✅ scall-core/target/test-reports/TEST-io.chymyst.dhall.unit.SimpleSemanticsTest.xml

42 tests were completed in 6s with 42 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
io.chymyst.dhall.unit.SimpleSemanticsTest 42✅ 6s

✅ io.chymyst.dhall.unit.SimpleSemanticsTest

✅ substitute in a variable
✅ substitute in a lambda
✅ alpha-normalize a nested lambda
✅ alpha-normalize record access
✅ correct precedence for imports with fallback
✅ alpha-normalization and beta-normalization should refuse imports
✅ beta-normalize with unique subexpressions
✅ shortcut in Natural/fold if the result no longer changes
✅ shortcut in Natural/fold if the result no longer changes, with symbolic lambda
✅ shortcut in Natural/fold with a function 1
✅ shortcut in Natural/fold with a function 2
✅ avoid expanding Natural/fold when the result grows as a symbolic expression
✅ compute expression count
✅ foldWhile performance test with bitLength
✅ safe division using dependent types
✅ safe division using assert
✅ beta-normalization with Natural/fold and shortcut
✅ beta-normalization for appended lists
✅ Text/replace various cases
✅ invalid field name is an error 1
✅ invalid field name is an error 2
✅ invalid field name is an error 3
✅ invalid field name is an error 4
✅ record types field access
✅ no support for kind-polymorphic functions
✅ a function is equivalent to its eta expansion
✅ eta expansion with two curried arguments
✅ assert with eta expansion with two curried arguments
✅ failure in eta expansion with two curried arguments
✅ eta expansion with free occurrences of external bound variable
✅ failure 1 with f x in eta expansion with free occurrences of external bound variable
✅ failure 2 with f x in eta expansion with free occurrences of external bound variable
✅ eta-reduction works regardless of types
✅ identity law of function composition
✅ associativity rewrite 1
✅ associativity rewrite 2
✅ associativity law of monoids
✅ equivalence for Double literals
✅ `with` for Optional works if it does not change type
✅ fail `with` for Optional if it changes type
✅ `with` for Optional works if it does not change type, with deep record access
✅ fail `with` for Optional if it changes type, with deep record access

✅ scall-core/target/test-reports/TEST-io.chymyst.dhall.unit.SimpleTypecheckTest.xml

13 tests were completed in 24ms with 13 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
io.chymyst.dhall.unit.SimpleTypecheckTest 13✅ 24ms

✅ io.chymyst.dhall.unit.SimpleTypecheckTest

✅ typecheck record of types
✅ shift in type variable
✅ shift in type variable without pun
✅ shift in type variable with index 1 without generics
✅ shift in type variable with index 1 without pun
✅ shift in type variable with index 1 with pun
✅ shift in type variable with union constructor
✅ shift in type variable with union constructor and pun
✅ simplify equivalence type
✅ type inference failure with RecordSelectionNotRecord.dhall
✅ empty selection from record types or record values
✅ empty selection is not allowed when the base is not a record type literal
✅ do not alpha-normalize when inferring type

✅ scall-core/target/test-reports/TEST-io.chymyst.dhall.unit.StressTest.xml

12 tests were completed in 54s with 12 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
io.chymyst.dhall.unit.StressTest 12✅ 54s

✅ io.chymyst.dhall.unit.StressTest

✅ print long expressions without stack overflow, without parentheses
✅ print long expressions without stack overflow, with parentheses
✅ print long expressions without stack overflow, right-associated with parentheses
✅ print with the new tail-recursive function print1
✅ print1 long expressions without stack overflow, without parentheses
✅ deeply nested lists
✅ deeply nested parentheses
✅ deeply nested records
✅ deeply nested record types
✅ deeply nested applications
✅ deeply nested applications under lambda
✅ deeply nested lambdas

✅ scall-core/target/test-reports/TEST-io.chymyst.dhall.unit.TomlTest.xml

4 tests were completed in 20ms with 4 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
io.chymyst.dhall.unit.TomlTest 4✅ 20ms

✅ io.chymyst.dhall.unit.TomlTest

✅ toml output should ignore comment headers 1
✅ toml output for record of lists with indent 4
✅ toml output for strings with special characters
✅ toml output with nested records

✅ scall-core/target/test-reports/TEST-io.chymyst.dhall.unit.YamlTest.xml

6 tests were completed in 28ms with 6 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
io.chymyst.dhall.unit.YamlTest 6✅ 28ms

✅ io.chymyst.dhall.unit.YamlTest

✅ yaml output for comment headers 1
✅ yaml output for comment headers 2
✅ yaml output for comment headers 3
✅ yaml output for record of lists with indent 4
✅ yaml output for strings with special characters
✅ json output with longer indentation

✅ scall-macros/target/test-reports/TEST-io.chymyst.dhall.macros.unit.MacrosTest.xml

1 tests were completed in 231ms with 1 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
io.chymyst.dhall.macros.unit.MacrosTest 1✅ 231ms

✅ io.chymyst.dhall.macros.unit.MacrosTest

✅ determine subclasses of a sealed trait

✅ scall-testutils/target/test-reports/TEST-io.chymyst.test.unit.OverrideEnvironmentTest.xml

5 tests were completed in 83ms with 5 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
io.chymyst.test.unit.OverrideEnvironmentTest 5✅ 83ms

✅ io.chymyst.test.unit.OverrideEnvironmentTest

✅ example in the code
✅ fake environment variables can be added
✅ exceptions are passed through but fake variables are still removed
✅ fake environment variables can be removed
✅ fake environment variables can be nested, added, and removed

✅ scall-testutils/target/test-reports/TEST-io.chymyst.test.unit.ResourceFilesTest.xml

3 tests were completed in 774ms with 3 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
io.chymyst.test.unit.ResourceFilesTest 3✅ 774ms

✅ io.chymyst.test.unit.ResourceFilesTest

✅ get resource as file
✅ enumerate resource files by pattern
✅ change current working directory

✅ scall-testutils/target/test-reports/TEST-io.chymyst.test.unit.ThrowablesTest.xml

1 tests were completed in 110ms with 1 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
io.chymyst.test.unit.ThrowablesTest 1✅ 110ms

✅ io.chymyst.test.unit.ThrowablesTest

✅ print throwables, stack traces, and causes