File tree Expand file tree Collapse file tree 2 files changed +7
-2
lines changed
Expand file tree Collapse file tree 2 files changed +7
-2
lines changed Original file line number Diff line number Diff line change @@ -30,20 +30,24 @@ class Call : TsMethodTestRunner() {
3030 val method = getMethod(" Call" , " fib" )
3131 discoverProperties<TsValue .TsNumber , TsValue .TsNumber >(
3232 method = method,
33+ { n, r -> n.number.isNaN() && r.number == 0.0 },
3334 { n, r -> n.number < 0.0 && r.number == - 1.0 },
3435 { n, r -> n.number > 10.0 && r.number == - 2.0 },
3536 { n, r -> n.number == 0.0 && r.number == 1.0 },
3637 { n, r -> n.number == 1.0 && r.number == 1.0 },
37- { n, r -> n.number > 0 && n.number != 1.0 && fib(n.number) == r.number },
38+ { n, r -> n.number > 0 && n.number != 1.0 && n.number <= 10.0 && fib(n.number) == r.number },
39+ invariants = arrayOf(
40+ { n, r -> fib(n.number) == r.number }
41+ )
3842 )
3943 }
4044}
4145
4246fun fib (n : Double ): Double {
47+ if (n.isNaN()) return 0.0
4348 if (n < 0 ) return - 1.0
4449 if (n > 10 ) return - 2.0
4550 if (n == 0.0 ) return 1.0
4651 if (n == 1.0 ) return 1.0
47-
4852 return fib(n - 1.0 ) + fib(n - 2.0 )
4953}
Original file line number Diff line number Diff line change @@ -8,6 +8,7 @@ class Call {
88 }
99
1010 fib ( n : number ) : number {
11+ if ( n != n ) return 0
1112 if ( n < 0 ) return - 1
1213 if ( n > 10 ) return - 2
1314 if ( n == 0 ) return 1
You can’t perform that action at this time.
0 commit comments