(CommandList
  children: [
    (AndOr
      children: [
        (C {(Lit_Other "[")} 
          {
            (BracedVarSub
              token: <VSub_Name TESTS_TEST_SH>
              suffix_op: (StringUnary op_id:VTest_Plus arg_word:{(true)})
              spids: [9 13]
            )
          } {(Lit_Other "]")}
        )
        (ControlFlow token:<ControlFlow_Return return>)
      ]
      op_id: Op_DAmp
    )
    (Assignment
      keyword: Assign_Declare
      flags: ["'-g'"]
      pairs: [(assign_pair lhs:(LhsName name:TESTS_TEST_SH) op:Equal rhs:{(true)} spids:[25])]
      spids: [21]
    )
    (Assignment
      keyword: Assign_Declare
      flags: ["'-g'" "'-A'"]
      pairs: [
        (assign_pair
          lhs: (LhsName name:ASSERT_RESULTS)
          op: Equal
          rhs: 
            {
              (ArrayLiteralPart
                words: [
                  {(Lit_Other "[") (total) (Lit_Other "]") (Lit_Other "=") (0)}
                  {(Lit_Other "[") (passed) (Lit_Other "]") (Lit_Other "=") (0)}
                  {(Lit_Other "[") (failed) (Lit_Other "]") (Lit_Other "=") (0)}
                ]
              )
            }
          spids: [35]
        )
      ]
      spids: [29]
    )
    (FuncDef
      name: "assert::equals"
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Declare
              pairs: [
                (assign_pair
                  lhs: (LhsName name:expect)
                  op: Equal
                  rhs: {($ VSub_Number "$1")}
                  spids: [71]
                )
              ]
              spids: [69]
            )
            (Assignment
              keyword: Assign_Declare
              pairs: [
                (assign_pair
                  lhs: (LhsName name:actual)
                  op: Equal
                  rhs: {($ VSub_Number "$2")}
                  spids: [77]
                )
              ]
              spids: [75]
            )
            (Assignment
              keyword: Assign_Declare
              pairs: [
                (assign_pair
                  lhs: (LhsName name:message)
                  op: Equal
                  rhs: 
                    {
                      (BracedVarSub
                        token: <VSub_At "@">
                        suffix_op: (Slice begin:(ArithWord w:{(Lit_Digits 3)}))
                        spids: [84 88]
                      )
                    }
                  spids: [83]
                )
              ]
              spids: [81]
            )
            (DParen
              child: 
                (BinaryAssign
                  op_id: Arith_PlusEqual
                  left: (LhsIndexedName name:ASSERT_RESULTS index:(ArithVarRef name:total))
                  right: (ArithWord w:{(Lit_Digits 1)})
                )
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$expect"))} 
                          {(KW_Bang "!") (Lit_Other "=")} {(DQ ($ VSub_Name "$actual"))} {(Lit_Other "]")}
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (C {(echo)} 
                      {
                        (DQ ("FAILED (") ($ VSub_Name "$message") (")\n") ("\tExpected: ") 
                          ($ VSub_Name "$expect") ("\n") ("        Actual: ") ($ VSub_Name "$actual")
                        )
                      }
                    )
                    (DParen
                      child: 
                        (BinaryAssign
                          op_id: Arith_PlusEqual
                          left: (LhsIndexedName name:ASSERT_RESULTS index:(ArithVarRef name:failed))
                          right: (ArithWord w:{(Lit_Digits 1)})
                        )
                    )
                    (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
                  ]
                  spids: [-1 122]
                )
              ]
              spids: [-1 157]
            )
            (C {(echo)} {(DQ ("PASSED ") ($ VSub_Name "$message"))})
            (DParen
              child: 
                (BinaryAssign
                  op_id: Arith_PlusEqual
                  left: (LhsIndexedName name:ASSERT_RESULTS index:(ArithVarRef name:passed))
                  right: (ArithWord w:{(Lit_Digits 1)})
                )
            )
            (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})
          ]
          spids: [66]
        )
      spids: [57 65]
    )
    (FuncDef
      name: "assert::report"
      body: 
        (BraceGroup
          children: [
            (C {(echo)} 
              {
                (DQ ("TESTS [total=") 
                  (BracedVarSub
                    token: <VSub_Name ASSERT_RESULTS>
                    bracket_op: (ArrayIndex expr:(ArithVarRef name:total))
                    spids: [204 209]
                  ) ("] [passed=") 
                  (BracedVarSub
                    token: <VSub_Name ASSERT_RESULTS>
                    bracket_op: (ArrayIndex expr:(ArithVarRef name:passed))
                    spids: [211 216]
                  ) ("] [failed=") 
                  (BracedVarSub
                    token: <VSub_Name ASSERT_RESULTS>
                    bracket_op: (ArrayIndex expr:(ArithVarRef name:failed))
                    spids: [218 223]
                  ) ("]")
                )
              }
            )
          ]
          spids: [197]
        )
      spids: [188 196]
    )
  ]
)