remove some memoize #508
Test results ✅
✅ dhall-codec/target/test-reports/TEST-io.chymyst.dhall.unit.FromDhallTest.xml
23 tests were completed in 313ms with 23 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
io.chymyst.dhall.unit.FromDhallTest | 23✅ | 313ms |
✅ 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 110ms with 4 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
io.chymyst.dhall.unit.FromScalaTest | 4✅ | 110ms |
✅ 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 301ms with 4 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
io.chymyst.dhall.unit.ReadmeTest | 4✅ | 301ms |
✅ 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 421ms with 1 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
io.chymyst.dhall.unit.ToScalaTest | 1✅ | 421ms |
✅ 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 19s with 3 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
io.chymyst.fastparse.unit.MemoizeTest | 3✅ | 19s |
✅ 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 127ms with 1 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
io.chymyst.nanodhall.unit.ConcurrentHashDictTest | 1✅ | 127ms |
✅ io.chymyst.nanodhall.unit.ConcurrentHashDictTest
✅ hash strings
✅ scall-cli/target/test-reports/TEST-io.chymyst.dhall.unit.MainSpec.xml
15 tests were completed in 4s with 15 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
io.chymyst.dhall.unit.MainSpec | 15✅ | 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
✅ parse command-line argument
✅ scall-cli/target/test-reports/TEST-io.chymyst.dhall.unit.PerfTest.xml
5 tests were completed in 97s with 5 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
io.chymyst.dhall.unit.PerfTest | 5✅ | 97s |
✅ 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 3s with 2 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
io.chymyst.dhall.unit.DhallImportResolutionSuite | 2✅ | 3s |
✅ 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.DhallSemanticHashSuite.xml
1 tests were completed in 2s with 1 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
io.chymyst.dhall.unit.DhallSemanticHashSuite | 1✅ | 2s |
✅ 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 283s with 2 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
io.chymyst.dhall.unit.DhallTypeCheckingSuite | 2✅ | 283s |
✅ 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 237ms with 5 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
io.chymyst.dhall.unit.DoNotationTest | 5✅ | 237ms |
✅ 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 172ms with 9 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
io.chymyst.dhall.unit.MiscBugsTest | 9✅ | 172ms |
✅ 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 4s with 4 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
io.chymyst.dhall.unit.ParserStressTest | 4✅ | 4s |
✅ 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 141ms with 31 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
io.chymyst.dhall.unit.ParserTest | 31✅ | 141ms |
✅ 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 55ms with 11 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
io.chymyst.dhall.unit.ParserTest2 | 11✅ | 55ms |
✅ 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 47ms with 2 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
io.chymyst.dhall.unit.PrettyPrintingTest | 2✅ | 47ms |
✅ 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 18s with 4 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
io.chymyst.dhall.unit.SimpleCBORperformanceTest | 4✅ | 18s |
✅ 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
13 tests were completed in 10ms with 13 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
io.chymyst.dhall.unit.SimpleCBORtest | 13✅ | 10ms |
✅ 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
✅ scall-core/target/test-reports/TEST-io.chymyst.dhall.unit.SimpleExpressionTest.xml
29 tests were completed in 114ms with 29 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
io.chymyst.dhall.unit.SimpleExpressionTest | 29✅ | 114ms |
✅ 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 99s with 9 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
io.chymyst.dhall.unit.SimpleImportResolutionTest | 9✅ | 99s |
✅ 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 19s with 7 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
io.chymyst.dhall.unit.SimplePreludeTest | 7✅ | 19s |
✅ 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 39ms with 13 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
io.chymyst.dhall.unit.SimpleTypecheckTest | 13✅ | 39ms |
✅ 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 55s with 12 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
io.chymyst.dhall.unit.StressTest | 12✅ | 55s |
✅ 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.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 367ms with 1 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
io.chymyst.dhall.macros.unit.MacrosTest | 1✅ | 367ms |
✅ 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 60ms with 5 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
io.chymyst.test.unit.OverrideEnvironmentTest | 5✅ | 60ms |
✅ 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 661ms with 3 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
io.chymyst.test.unit.ResourceFilesTest | 3✅ | 661ms |
✅ 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 142ms with 1 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
io.chymyst.test.unit.ThrowablesTest | 1✅ | 142ms |
✅ io.chymyst.test.unit.ThrowablesTest
✅ print throwables, stack traces, and causes