(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:test_description)
          op: assign_op.Equal
          rhs: {(SQ (Token id:Id.Lit_Chars val:'checkout should leave clean stat info' span_id:6))}
          spids: [4]
        )
      ]
    )
    (C {(.)} {(./test-lib.sh)})
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:setup span_id:18))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:22) (Token id:Id.Lit_Chars val:'\n' span_id:23) 
          (Token id:Id.Lit_Chars val:'\techo hello >world &&\n' span_id:24) (Token id:Id.Lit_Chars val:'\tgit update-index --add world &&\n' span_id:25) 
          (Token id:Id.Lit_Chars val:'\tgit commit -m initial &&\n' span_id:26) (Token id:Id.Lit_Chars val:'\tgit branch side &&\n' span_id:27) 
          (Token id:Id.Lit_Chars val:'\techo goodbye >world &&\n' span_id:28) (Token id:Id.Lit_Chars val:'\tgit update-index --add world &&\n' span_id:29) 
          (Token id:Id.Lit_Chars val:'\tgit commit -m second\n' span_id:30) (Token id:Id.Lit_Chars val:'\n' span_id:31)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'branch switching' span_id:38))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:42) (Token id:Id.Lit_Chars val:'\n' span_id:43) 
          (Token id:Id.Lit_Chars val:'\tgit reset --hard &&\n' span_id:44) (Token id:Id.Lit_Chars val:'\ttest "$(git diff-files --raw)" = "" &&\n' span_id:45) 
          (Token id:Id.Lit_Chars val:'\n' span_id:46) (Token id:Id.Lit_Chars val:'\tgit checkout master &&\n' span_id:47) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest "$(git diff-files --raw)" = "" &&\n'
            span_id: 48
          ) (Token id:Id.Lit_Chars val:'\n' span_id:49) 
          (Token id:Id.Lit_Chars val:'\tgit checkout side &&\n' span_id:50) (Token id:Id.Lit_Chars val:'\ttest "$(git diff-files --raw)" = "" &&\n' span_id:51) 
          (Token id:Id.Lit_Chars val:'\n' span_id:52) (Token id:Id.Lit_Chars val:'\tgit checkout master &&\n' span_id:53) 
          (Token id:Id.Lit_Chars val:'\ttest "$(git diff-files --raw)" = ""\n' span_id:54) (Token id:Id.Lit_Chars val:'\n' span_id:55)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'path checkout' span_id:62))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:66) (Token id:Id.Lit_Chars val:'\n' span_id:67) 
          (Token id:Id.Lit_Chars val:'\tgit reset --hard &&\n' span_id:68) (Token id:Id.Lit_Chars val:'\ttest "$(git diff-files --raw)" = "" &&\n' span_id:69) 
          (Token id:Id.Lit_Chars val:'\n' span_id:70) (Token id:Id.Lit_Chars val:'\tgit checkout master world &&\n' span_id:71) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest "$(git diff-files --raw)" = "" &&\n'
            span_id: 72
          ) (Token id:Id.Lit_Chars val:'\n' span_id:73) 
          (Token id:Id.Lit_Chars val:'\tgit checkout side world &&\n' span_id:74) (Token id:Id.Lit_Chars val:'\ttest "$(git diff-files --raw)" = "" &&\n' span_id:75) 
          (Token id:Id.Lit_Chars val:'\n' span_id:76) (Token id:Id.Lit_Chars val:'\tgit checkout master world &&\n' span_id:77) 
          (Token id:Id.Lit_Chars val:'\ttest "$(git diff-files --raw)" = ""\n' span_id:78) (Token id:Id.Lit_Chars val:'\n' span_id:79)
        )
      }
    )
    (C {(test_done)})
  ]
)