The benchmark directory is relocated from the project root into the test directory, and all scripts, documentation links, and gitignore paths are updated accordingly. The test runner is also refactored to explicitly walk subdirectories (core, io, language, limit) instead of using a single test root, and a new test/README.md is added to document the test suite structure. Additionally, the constructor test for the Foo class is updated to add a zero-arity constructor and adjust expected output strings.
27 lines
753 B
Plaintext
27 lines
753 B
Plaintext
// Handle empty map.
|
|
IO.print({}.toString) // expect: {}
|
|
|
|
// Does not quote strings.
|
|
IO.print({"1": "2"}.toString) // expect: {1: 2}
|
|
|
|
// Nested maps.
|
|
IO.print({1: {2: {}}}) // expect: {1: {2: {}}}
|
|
|
|
// Calls toString on elements.
|
|
class Foo {
|
|
toString { "Foo.toString" }
|
|
}
|
|
|
|
IO.print({1: new Foo}) // expect: {1: Foo.toString}
|
|
|
|
// Since iteration order is unspecified, we don't know what order the results
|
|
// will be.
|
|
var s = {1: 2, 3: 4, 5: 6}.toString
|
|
IO.print(s == "{1: 2, 3: 4, 5: 6}" ||
|
|
s == "{1: 2, 5: 6, 3: 4}" ||
|
|
s == "{3: 4, 1: 2, 5: 6}" ||
|
|
s == "{3: 4, 5: 6, 1: 2}" ||
|
|
s == "{5: 6, 1: 2, 3: 4}" ||
|
|
s == "{5: 6, 3: 4, 1: 2}") // expect: true
|
|
|
|
// TODO: Handle maps that contain themselves. |