ysh-expr-compare () { run-file ysh-expr-compare "$@" } run-file () { local spec_name=$1; shift; sh-spec spec/$spec_name.test.sh --compare-shells --oils-bin-dir $PWD/bin "$@" }
spec test index / oilshell.org
status | osh | |
pass | 14 | |
FAIL | 1 | |
total | 15 | |
case | osh | description |
0 | pass | Exact equality with === and !== |
1 | pass | Approximate equality of Str x {Str, Int, Bool} with ~== |
2 | pass | Wrong Types with ~== |
3 | FAIL | ~== on Float - TODO floatEquals() |
details | ||
4 | pass | Comparison converts from Str -> Int or Float |
5 | pass | Comparison of Int |
6 | pass | Comparison of Str does conversion to Int |
7 | pass | Mixed Type Comparison does conversion to Int |
8 | pass | Invalid String is an error |
9 | pass | Bool conversion -- explicit allowed, implicit not allowed |
10 | pass | Chained Comparisons |
11 | pass | List / "Tuple" comparison is not allowed |
12 | pass | Ternary op behaves like if statement |
13 | pass | Undefined comparisons |
14 | pass | Non-comparable types in case arms |
14 passed, 0 OK, 0 not implemented, 0 BUG, 1 failed, 0 timeouts, 0 cases skipped 1 failed under osh
osh | 3 ~== on Float - TODO floatEquals() [osh status] Expected 0, got 1 stdout: stderr: if (42 ~== 42.0) { ^~~ [ stdin ]:3: fatal: ~== expects a string on the left |