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 "$@" } ysh-expr-compare: spec test case results

Results for ysh-expr-compare.test.sh

statusosh
pass 14
FAIL 1
total15
caseoshdescription
0pass Exact equality with === and !==
1pass Approximate equality of Str x {Str, Int, Bool} with ~==
2pass Wrong Types with ~==
3FAIL ~== on Float - TODO floatEquals()
details
4pass Comparison converts from Str -> Int or Float
5pass Comparison of Int
6pass Comparison of Str does conversion to Int
7pass Mixed Type Comparison does conversion to Int
8pass Invalid String is an error
9pass Bool conversion -- explicit allowed, implicit not allowed
10pass Chained Comparisons
11pass List / "Tuple" comparison is not allowed
12pass Ternary op behaves like if statement
13pass Undefined comparisons
14pass 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

Details on runs that didn't PASS

osh3 ~== 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