1
1
import assert from "node:assert"
2
2
import { test } from "node:test"
3
- import { Belief , assertBeliefReasons } from "../belief/index.js"
3
+ import { Belief , beliefEqual , isBelief } from "../belief/index.js"
4
4
import { Cell , put } from "../cell/index.js"
5
5
import { Interval , intervalAlmostEqual } from "../interval/index.js"
6
6
import { run } from "../scheduler/index.js"
@@ -15,13 +15,15 @@ test("examples / barometer-belief", async () => {
15
15
16
16
await run ( )
17
17
18
- assertBeliefReasons ( buildingHeight . content , [ "shadows" ] )
19
18
assert (
20
- intervalAlmostEqual (
21
- buildingHeight . content . value ,
22
- Interval ( 44.51 , 48.97 ) ,
23
- 0.01 ,
24
- ) ,
19
+ isBelief ( buildingHeight . content ) &&
20
+ beliefEqual (
21
+ buildingHeight . content ,
22
+ Belief ( Interval ( 44.51 , 48.97 ) , [ "shadows" ] ) ,
23
+ {
24
+ valueEqual : ( x , y ) => intervalAlmostEqual ( x , y , 0.01 ) ,
25
+ } ,
26
+ ) ,
25
27
)
26
28
27
29
const fallTime = Cell ( )
@@ -30,76 +32,100 @@ test("examples / barometer-belief", async () => {
30
32
31
33
await run ( )
32
34
33
- assertBeliefReasons ( fallTime . content , [ "shadows" ] )
34
- assert ( intervalAlmostEqual ( fallTime . content . value , Interval ( 3 , 3.16 ) , 0.01 ) )
35
+ assert (
36
+ isBelief ( fallTime . content ) &&
37
+ beliefEqual ( fallTime . content , Belief ( Interval ( 3 , 3.16 ) , [ "shadows" ] ) , {
38
+ valueEqual : ( x , y ) => intervalAlmostEqual ( x , y , 0.01 ) ,
39
+ } ) ,
40
+ )
35
41
36
- assertBeliefReasons ( buildingHeight . content , [ "shadows" ] )
37
42
assert (
38
- intervalAlmostEqual (
39
- buildingHeight . content . value ,
40
- Interval ( 44.51 , 48.97 ) ,
41
- 0.01 ,
42
- ) ,
43
+ isBelief ( buildingHeight . content ) &&
44
+ beliefEqual (
45
+ buildingHeight . content ,
46
+ Belief ( Interval ( 44.51 , 48.97 ) , [ "shadows" ] ) ,
47
+ {
48
+ valueEqual : ( x , y ) => intervalAlmostEqual ( x , y , 0.01 ) ,
49
+ } ,
50
+ ) ,
43
51
)
44
52
45
53
put ( fallTime , Belief ( Interval ( 2.9 , 3.1 ) , [ "better-fall-time" ] ) )
46
54
47
55
await run ( )
48
56
49
- assertBeliefReasons ( buildingHeight . content , [ "shadows" , "better-fall-time" ] )
50
57
assert (
51
- intervalAlmostEqual (
52
- buildingHeight . content . value ,
53
- Interval ( 44.51 , 47.24 ) ,
54
- 0.01 ,
55
- ) ,
58
+ isBelief ( buildingHeight . content ) &&
59
+ beliefEqual (
60
+ buildingHeight . content ,
61
+ Belief ( Interval ( 44.51 , 47.24 ) , [ "shadows" , "better-fall-time" ] ) ,
62
+ {
63
+ valueEqual : ( x , y ) => intervalAlmostEqual ( x , y , 0.01 ) ,
64
+ } ,
65
+ ) ,
56
66
)
57
67
58
68
put ( buildingHeight , Belief ( 45 , [ "superintendent" ] ) )
59
69
60
70
await run ( )
61
71
62
- assertBeliefReasons ( buildingHeight . content , [ "superintendent" ] )
63
- assert . deepStrictEqual ( buildingHeight . content . value , 45 )
72
+ assert (
73
+ isBelief ( buildingHeight . content ) &&
74
+ beliefEqual ( buildingHeight . content , Belief ( 45 , [ "superintendent" ] ) , {
75
+ valueEqual : ( x , y ) => x === y ,
76
+ } ) ,
77
+ )
64
78
65
- assertBeliefReasons ( barometerHeight . content , [
66
- "superintendent" ,
67
- "better-fall-time" ,
68
- "shadows" ,
69
- ] )
70
79
assert (
71
- intervalAlmostEqual (
72
- barometerHeight . content . value ,
73
- Interval ( 0.3 , 0.3 ) ,
74
- 0.01 ,
75
- ) ,
80
+ isBelief ( barometerHeight . content ) &&
81
+ beliefEqual (
82
+ barometerHeight . content ,
83
+ Belief ( Interval ( 0.3 , 0.3 ) , [
84
+ "superintendent" ,
85
+ "better-fall-time" ,
86
+ "shadows" ,
87
+ ] ) ,
88
+ {
89
+ valueEqual : ( x , y ) => intervalAlmostEqual ( x , y , 0.01 ) ,
90
+ } ,
91
+ ) ,
76
92
)
77
93
78
- assertBeliefReasons ( barometerShadow . content , [
79
- "superintendent" ,
80
- "better-fall-time" ,
81
- "shadows" ,
82
- ] )
83
94
assert (
84
- intervalAlmostEqual (
85
- barometerShadow . content . value ,
86
- Interval ( 0.36 , 0.37 ) ,
87
- 0.01 ,
88
- ) ,
95
+ isBelief ( barometerShadow . content ) &&
96
+ beliefEqual (
97
+ barometerShadow . content ,
98
+ Belief ( Interval ( 0.36 , 0.37 ) , [
99
+ "superintendent" ,
100
+ "better-fall-time" ,
101
+ "shadows" ,
102
+ ] ) ,
103
+ {
104
+ valueEqual : ( x , y ) => intervalAlmostEqual ( x , y , 0.01 ) ,
105
+ } ,
106
+ ) ,
89
107
)
90
108
91
- assertBeliefReasons ( buildingShadow . content , [ "shadows" ] )
92
109
assert (
93
- intervalAlmostEqual (
94
- buildingShadow . content . value ,
95
- Interval ( 54.9 , 55.1 ) ,
96
- 0.01 ,
97
- ) ,
110
+ isBelief ( buildingShadow . content ) &&
111
+ beliefEqual (
112
+ buildingShadow . content ,
113
+ Belief ( Interval ( 54.9 , 55.1 ) , [ "shadows" ] ) ,
114
+ {
115
+ valueEqual : ( x , y ) => intervalAlmostEqual ( x , y , 0.01 ) ,
116
+ } ,
117
+ ) ,
98
118
)
99
119
100
- assertBeliefReasons ( fallTime . content , [ "superintendent" ] )
101
120
assert (
102
- intervalAlmostEqual ( fallTime . content . value , Interval ( 3.02 , 3.03 ) , 0.01 ) ,
121
+ isBelief ( fallTime . content ) &&
122
+ beliefEqual (
123
+ fallTime . content ,
124
+ Belief ( Interval ( 3.02 , 3.03 ) , [ "superintendent" ] ) ,
125
+ {
126
+ valueEqual : ( x , y ) => intervalAlmostEqual ( x , y , 0.01 ) ,
127
+ } ,
128
+ ) ,
103
129
)
104
130
105
131
{
0 commit comments