Flows › DomEngine e6a309211

Story:drill-results 5 expects pass

· 8 ms · specs: Spec:drill-results

Open in fiddleStory topicJSON
Expects
✓14payload.holes is 5
✓15payload.top.hole is "AU-26-02"
✓16payload.top.grade is "bonanza"
✓17payload.hits is 3
✓21payload matches /.*AU-26-02 returns.*/
Resulting value (payload)
"Aurora fall 2026: AU-26-02 returns 128.8 gram-metres (best 22.4 g/t over 15.5 m); 3 of 5 holes hit"
Flow values (ctx)
{
  "holes": [
    {
      "id": "AU-26-01",
      "intervals": [
        {
          "from": 112,
          "to": 118.5,
          "grade": 3.1
        },
        {
          "from": 131,
          "to": 133,
          "grade": 1.2
        }
      ]
    },
    {
      "id": "AU-26-02",
      "intervals": [
        {
          "from": 88,
          "to": 102,
          "grade": 6.8
        },
        {
          "from": 104,
          "to": 105.5,
          "grade": 22.4
        }
      ]
    },
    {
      "id": "AU-26-03",
      "intervals": [
        {
          "from": 140,
          "to": 141,
          "grade": 0.4
        }
      ]
    },
    {
      "id": "AU-26-04",
      "abandoned": true,
      "depth": 64,
      "intervals": []
    },
    {
      "id": "AU-26-05",
      "intervals": [
        {
          "from": 96,
          "to": 101,
          "grade": 4.2
        }
      ]
    }
  ],
  "program": {
    "program": "Aurora fall 2026",
    "holes": 5,
    "hits": 3,
    "top": {
      "hole": "AU-26-02",
      "gm": 128.8,
      "best": 22.4,
      "metres": 15.5,
      "grade": "bonanza"
    },
    "results": [
      {
        "hole": "AU-26-01",
        "gm": 22.55,
        "best": 3.1,
        "metres": 8.5,
        "grade": "strong"
      },
      {
        "hole": "AU-26-02",
        "gm": 128.8,
        "best": 22.4,
        "metres": 15.5,
        "grade": "bonanza"
      },
      {
        "hole": "AU-26-03",
        "gm": 0.4,
        "best": 0.4,
        "metres": 1,
        "grade": "dry"
      },
      {
        "hole": "AU-26-04",
        "grade": "abandoned",
        "gm": 0,
        "why": "AU-26-04 was abandoned at 64 m"
      },
      {
        "hole": "AU-26-05",
        "gm": 21,
        "best": 4.2,
        "metres": 5,
        "grade": "strong"
      }
    ]
  }
}
Trace
valholes = [{id: "AU-26-01", intervals: [{from: 112.0, to: 118.5, grade: 3.1}, {from: 131.0, to: 133.0, grade: 1.2}]}, {id: "AU-26-02", intervals: [{from: 88.0, to: 102.0, grade: 6.8}, {from: 104.0, to: 105.5, g…line 5
msgdrill.program(name="Aurora fall 2026", holes=[{id: "AU-26-01", intervals: [{from: 112.0, to: 118.5, grade: 3.1}, {from: 131.0, to: 133.0, grade: 1.2}]}, {id: "AU-26-02", intervals: [{from: 88.0, to: 102.0, grade: 6.8}, {from: 104.0, to: 105.5, g…)line 13
rulerule drill.program (line 47)line 47
msgdrill.checked(hole={id: "AU-26-01", intervals: [{from: 112.0, to: 118.5, grade: 3.1}, {from: 131.0, to: 133.0, grade: 1.2}]})line 48
rulerule drill.checked (line 54)line 54
msgdrill.hole(hole={id: "AU-26-01", intervals: [{from: 112.0, to: 118.5, grade: 3.1}, {from: 131.0, to: 133.0, grade: 1.2}]})line 56
rulerule drill.hole (line 37)line 37
msgdrill.score(hole={id: "AU-26-01", intervals: [{from: 112.0, to: 118.5, grade: 3.1}, {from: 131.0, to: 133.0, grade: 1.2}]})line 41
rulerule drill.score (line 7)line 7
valgm = 22.55line 8
valbest = 3.1line 9
valpayload = {hole: "AU-26-01", gm: 22.55, best: 3.1, metres: 8.5}line 10
valscored = {hole: "AU-26-01", gm: 22.55, best: 3.1, metres: 8.5}line 41
msgdrill.grade(s={hole: "AU-26-01", gm: 22.55, best: 3.1, metres: 8.5})line 42
rulerule drill.grade (line 21)line 21
valpayload = {hole: "AU-26-01", gm: 22.55, best: 3.1, metres: 8.5, grade: "strong"}line 22
valpayload = {hole: "AU-26-01", gm: 22.55, best: 3.1, metres: 8.5, grade: "strong"}line 42
msgdrill.checked(hole={id: "AU-26-02", intervals: [{from: 88.0, to: 102.0, grade: 6.8}, {from: 104.0, to: 105.5, grade: 22.4}]})line 48
rulerule drill.checked (line 54)line 54
msgdrill.hole(hole={id: "AU-26-02", intervals: [{from: 88.0, to: 102.0, grade: 6.8}, {from: 104.0, to: 105.5, grade: 22.4}]})line 56
rulerule drill.hole (line 37)line 37
msgdrill.score(hole={id: "AU-26-02", intervals: [{from: 88.0, to: 102.0, grade: 6.8}, {from: 104.0, to: 105.5, grade: 22.4}]})line 41
rulerule drill.score (line 7)line 7
valgm = 128.8line 8
valbest = 22.4line 9
valpayload = {hole: "AU-26-02", gm: 128.8, best: 22.4, metres: 15.5}line 10
valscored = {hole: "AU-26-02", gm: 128.8, best: 22.4, metres: 15.5}line 41
msgdrill.grade(s={hole: "AU-26-02", gm: 128.8, best: 22.4, metres: 15.5})line 42
rulerule drill.grade (line 17)line 17
valpayload = {hole: "AU-26-02", gm: 128.8, best: 22.4, metres: 15.5, grade: "bonanza"}line 18
valpayload = {hole: "AU-26-02", gm: 128.8, best: 22.4, metres: 15.5, grade: "bonanza"}line 42
msgdrill.checked(hole={id: "AU-26-03", intervals: [{from: 140.0, to: 141.0, grade: 0.4}]})line 48
rulerule drill.checked (line 54)line 54
msgdrill.hole(hole={id: "AU-26-03", intervals: [{from: 140.0, to: 141.0, grade: 0.4}]})line 56
rulerule drill.hole (line 37)line 37
msgdrill.score(hole={id: "AU-26-03", intervals: [{from: 140.0, to: 141.0, grade: 0.4}]})line 41
rulerule drill.score (line 7)line 7
valgm = 0.4line 8
valbest = 0.4line 9
valpayload = {hole: "AU-26-03", gm: 0.4, best: 0.4, metres: 1.0}line 10
valscored = {hole: "AU-26-03", gm: 0.4, best: 0.4, metres: 1.0}line 41
msgdrill.grade(s={hole: "AU-26-03", gm: 0.4, best: 0.4, metres: 1.0})line 42
rulerule drill.grade (line 29)line 29
valpayload = {hole: "AU-26-03", gm: 0.4, best: 0.4, metres: 1.0, grade: "dry"}line 30
valpayload = {hole: "AU-26-03", gm: 0.4, best: 0.4, metres: 1.0, grade: "dry"}line 42
msgdrill.checked(hole={id: "AU-26-04", abandoned: true, depth: 64, intervals: []})line 48
rulerule drill.checked (line 54)line 54
msgdrill.hole(hole={id: "AU-26-04", abandoned: true, depth: 64, intervals: []})line 56
rulerule drill.hole (line 37)line 37
msgdiesel.throw(code="E_ABANDONED", msg="AU-26-04 was abandoned at 64 m")line 39
errorcaught E_ABANDONED: AU-26-04 was abandoned at 64 mline 39
valpayload = {hole: "AU-26-04", grade: "abandoned", gm: 0.0, why: "AU-26-04 was abandoned at 64 m"}line 58
msgdrill.checked(hole={id: "AU-26-05", intervals: [{from: 96.0, to: 101.0, grade: 4.2}]})line 48
rulerule drill.checked (line 54)line 54
msgdrill.hole(hole={id: "AU-26-05", intervals: [{from: 96.0, to: 101.0, grade: 4.2}]})line 56
rulerule drill.hole (line 37)line 37
msgdrill.score(hole={id: "AU-26-05", intervals: [{from: 96.0, to: 101.0, grade: 4.2}]})line 41
rulerule drill.score (line 7)line 7
valgm = 21.0line 8
valbest = 4.2line 9
valpayload = {hole: "AU-26-05", gm: 21.0, best: 4.2, metres: 5.0}line 10
valscored = {hole: "AU-26-05", gm: 21.0, best: 4.2, metres: 5.0}line 41
msgdrill.grade(s={hole: "AU-26-05", gm: 21.0, best: 4.2, metres: 5.0})line 42
rulerule drill.grade (line 21)line 21
valpayload = {hole: "AU-26-05", gm: 21.0, best: 4.2, metres: 5.0, grade: "strong"}line 22
valpayload = {hole: "AU-26-05", gm: 21.0, best: 4.2, metres: 5.0, grade: "strong"}line 42
valresults = [{hole: "AU-26-01", gm: 22.55, best: 3.1, metres: 8.5, grade: "strong"}, {hole: "AU-26-02", gm: 128.8, best: 22.4, metres: 15.5, grade: "bonanza"}, {hole: "AU-26-03", gm: 0.4, best: 0.4, metres: 1.0, …line 48
valdone = [{hole: "AU-26-01", gm: 22.55, best: 3.1, metres: 8.5, grade: "strong"}, {hole: "AU-26-02", gm: 128.8, best: 22.4, metres: 15.5, grade: "bonanza"}, {hole: "AU-26-03", gm: 0.4, best: 0.4, metres: 1.0, …line 49
valtop = {hole: "AU-26-02", gm: 128.8, best: 22.4, metres: 15.5, grade: "bonanza"}line 50
valpayload = {program: "Aurora fall 2026", holes: 5, hits: 3, top: {hole: "AU-26-02", gm: 128.8, best: 22.4, metres: 15.5, grade: "bonanza"}, results: [{hole: "AU-26-01", gm: 22.55, best: 3.1, metres: 8.5, grade: …line 51
expectpayload.holes is 5 ✓line 14
expectpayload.top.hole is "AU-26-02" ✓line 15
expectpayload.top.grade is "bonanza" ✓line 16
expectpayload.hits is 3 ✓line 17
valprogram = {program: "Aurora fall 2026", holes: 5, hits: 3, top: {hole: "AU-26-02", gm: 128.8, best: 22.4, metres: 15.5, grade: "bonanza"}, results: [{hole: "AU-26-01", gm: 22.55, best: 3.1, metres: 8.5, grade: …line 19
msgdrill.release(program={program: "Aurora fall 2026", holes: 5, hits: 3, top: {hole: "AU-26-02", gm: 128.8, best: 22.4, metres: 15.5, grade: "bonanza"}, results: [{hole: "AU-26-01", gm: 22.55, best: 3.1, metres: 8.5, grade: …)line 20
rulerule drill.release (line 64)line 64
valt = {hole: "AU-26-02", gm: 128.8, best: 22.4, metres: 15.5, grade: "bonanza"}line 65
valpayload = "Aurora fall 2026: AU-26-02 returns 128.8 gram-metres (best 22.4 g/t over 15.5 m); 3 of 5 holes hit"line 66
expectpayload matches /.*AU-26-02 returns.*/ ✓line 21
Story syntax tree
$val holes = [
{
  "src": "$val holes = [",
  "k": "step",
  "stmt": {
    "k": "assign",
    "sets": [
      {
        "name": "holes",
        "e": {
          "k": "arr",
          "items": [
            {
              "k": "obj",
              "fields": [
                {
                  "key": "id",
                  "e": {
                    "k": "str",
                    "parts": [
                      "AU-26-01"
                    ]
                  }
                },
                {
                  "key": "intervals",
                  "e": {
                    "k": "arr",
                    "items": [
                      {
                        "k": "obj",
                        "fields": [
                          {
                            "key": "from",
                            "e": {
                              "k": "lit",
                              "v": 112
                            }
                          },
                          {
                            "key": "to",
                            "e": {
                              "k": "lit",
                              "v": 118.5
                            }
                          },
                          {
                            "key": "grade",
                            "e": {
                              "k": "lit",
                              "v": 3.1
                            }
                          }
                        ]
                      },
                      {
                        "k": "obj",
                        "fields": [
                          {
                            "key": "from",
                            "e": {
                              "k": "lit",
                              "v": 131
                            }
                          },
                          {
                            "key": "to",
                            "e": {
                              "k": "lit",
                              "v": 133
                            }
                          },
                          {
                            "key": "grade",
                            "e": {
                              "k": "lit",
                              "v": 1.2
                            }
                          }
                        ]
                      }
                    ]
                  }
                }
              ]
            },
            {
              "k": "obj",
              "fields": [
                {
                  "key": "id",
                  "e": {
                    "k": "str",
                    "parts": [
                      "AU-26-02"
                    ]
                  }
                },
                {
                  "key": "intervals",
                  "e": {
                    "k": "arr",
                    "items": [
                      {
                        "k": "obj",
                        "fields": [
                          {
                            "key": "from",
                            "e": {
                              "k": "lit",
                              "v": 88
                            }
                          },
                          {
                            "key": "to",
                            "e": {
                              "k": "lit",
                              "v": 102
                            }
                          },
                          {
                            "key": "grade",
                            "e": {
                              "k": "lit",
                              "v": 6.8
                            }
                          }
                        ]
                      },
                      {
                        "k": "obj",
                        "fields": [
                          {
                            "key": "from",
                            "e": {
                              "k": "lit",
                              "v": 104
                            }
                          },
                          {
                            "key": "to",
                            "e": {
                              "k": "lit",
                              "v": 105.5
                            }
                          },
                          {
                            "key": "grade",
                            "e": {
                              "k": "lit",
                              "v": 22.4
                            }
                          }
                        ]
                      }
                    ]
                  }
                }
              ]
            },
            {
              "k": "obj",
              "fields": [
                {
                  "key": "id",
                  "e": {
                    "k": "str",
                    "parts": [
                      "AU-26-03"
                    ]
                  }
                },
                {
                  "key": "intervals",
                  "e": {
                    "k": "arr",
                    "items": [
                      {
                        "k": "obj",
                        "fields": [
                          {
                            "key": "from",
                            "e": {
                              "k": "lit",
                              "v": 140
                            }
                          },
                          {
                            "key": "to",
                            "e": {
                              "k": "lit",
                              "v": 141
                            }
                          },
                          {
                            "key": "grade",
                            "e": {
                              "k": "lit",
                              "v": 0.4
                            }
                          }
                        ]
                      }
                    ]
                  }
                }
              ]
            },
            {
              "k": "obj",
              "fields": [
                {
                  "key": "id",
                  "e": {
                    "k": "str",
                    "parts": [
                      "AU-26-04"
                    ]
                  }
                },
                {
                  "key": "abandoned",
                  "e": {
                    "k": "lit",
                    "v": true
                  }
                },
                {
                  "key": "depth",
                  "e": {
                    "k": "lit",
                    "v": 64
                  }
                },
                {
                  "key": "intervals",
                  "e": {
                    "k": "arr",
                    "items": []
                  }
                }
              ]
            },
            {
              "k": "obj",
              "fields": [
                {
                  "key": "id",
                  "e": {
                    "k": "str",
                    "parts": [
                      "AU-26-05"
                    ]
                  }
                },
                {
                  "key": "intervals",
                  "e": {
                    "k": "arr",
                    "items": [
                      {
                        "k": "obj",
                        "fields": [
                          {
                            "key": "from",
                            "e": {
                              "k": "lit",
                              "v": 96
                            }
                          },
                          {
                            "key": "to",
                            "e": {
                              "k": "lit",
                              "v": 101
                            }
                          },
                          {
                            "key": "grade",
                            "e": {
                              "k": "lit",
                              "v": 4.2
                            }
                          }
                        ]
                      }
                    ]
                  }
                }
              ]
            }
          ]
        }
      }
    ]
  }
}
$send drill.program (name = "Aurora fall 2026", holes = holes)
{
  "src": "$send drill.program (name = \"Aurora fall 2026\", holes = holes)",
  "k": "step",
  "stmt": {
    "k": "send",
    "msg": "drill.program",
    "args": [
      {
        "name": "name",
        "e": {
          "k": "str",
          "parts": [
            "Aurora fall 2026"
          ]
        }
      },
      {
        "name": "holes",
        "e": {
          "k": "ref",
          "name": "holes"
        }
      }
    ]
  }
}
payload.holes is 5
{
  "src": "payload.holes is 5",
  "k": "expect",
  "cond": {
    "k": "bin",
    "op": "==",
    "l": {
      "k": "member",
      "obj": {
        "k": "ref",
        "name": "payload"
      },
      "name": "holes",
      "safe": false
    },
    "r": {
      "k": "lit",
      "v": 5
    }
  }
}
payload.top.hole is "AU-26-02"
{
  "src": "payload.top.hole is \"AU-26-02\"",
  "k": "expect",
  "cond": {
    "k": "bin",
    "op": "==",
    "l": {
      "k": "member",
      "obj": {
        "k": "member",
        "obj": {
          "k": "ref",
          "name": "payload"
        },
        "name": "top",
        "safe": false
      },
      "name": "hole",
      "safe": false
    },
    "r": {
      "k": "str",
      "parts": [
        "AU-26-02"
      ]
    }
  }
}
payload.top.grade is "bonanza"
{
  "src": "payload.top.grade is \"bonanza\"",
  "k": "expect",
  "cond": {
    "k": "bin",
    "op": "==",
    "l": {
      "k": "member",
      "obj": {
        "k": "member",
        "obj": {
          "k": "ref",
          "name": "payload"
        },
        "name": "top",
        "safe": false
      },
      "name": "grade",
      "safe": false
    },
    "r": {
      "k": "str",
      "parts": [
        "bonanza"
      ]
    }
  }
}
payload.hits is 3
{
  "src": "payload.hits is 3",
  "k": "expect",
  "cond": {
    "k": "bin",
    "op": "==",
    "l": {
      "k": "member",
      "obj": {
        "k": "ref",
        "name": "payload"
      },
      "name": "hits",
      "safe": false
    },
    "r": {
      "k": "lit",
      "v": 3
    }
  }
}
$val program = payload
{
  "src": "$val program = payload",
  "k": "step",
  "stmt": {
    "k": "assign",
    "sets": [
      {
        "name": "program",
        "e": {
          "k": "ref",
          "name": "payload"
        }
      }
    ]
  }
}
$send drill.release (program = program)
{
  "src": "$send drill.release (program = program)",
  "k": "step",
  "stmt": {
    "k": "send",
    "msg": "drill.release",
    "args": [
      {
        "name": "program",
        "e": {
          "k": "ref",
          "name": "program"
        }
      }
    ]
  }
}
payload matches /.*AU-26-02 returns.*/
{
  "src": "payload matches /.*AU-26-02 returns.*/",
  "k": "expect",
  "cond": {
    "k": "match",
    "e": {
      "k": "ref",
      "name": "payload"
    },
    "re": ".*AU-26-02 returns.*",
    "flags": ""
  }
}