(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: 'git apply with new style GNU diff with empty context\n'
                  span_id: 15
                ) (Token id:Id.Lit_Chars val:'\n' span_id:16)
              )
            }
          spids: [13]
        )
      ]
    )
    (C {(.)} {(./test-lib.sh)})
    (C {(test_expect_success)} {(setup)} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:30) (Token id:Id.Lit_Chars val:'\t{\n' span_id:31) 
          (Token id:Id.Lit_Chars val:'\t\techo; echo;\n' span_id:32) (Token id:Id.Lit_Chars val:'\t\techo A; echo B; echo C;\n' span_id:33) 
          (Token id:Id.Lit_Chars val:'\t\techo;\n' span_id:34) (Token id:Id.Lit_Chars val:'\t} >file1 &&\n' span_id:35) 
          (Token id:Id.Lit_Chars val:'\tcat file1 >file1.orig &&\n' span_id:36) (Token id:Id.Lit_Chars val:'\t{\n' span_id:37) 
          (Token id:Id.Lit_Chars val:'\t\tcat file1 &&\n' span_id:38) (Token id:Id.Lit_Chars val:'\t\techo Q | tr -d "\\\\012"\n' span_id:39) 
          (Token id:Id.Lit_Chars val:'\t} >file2 &&\n' span_id:40) (Token id:Id.Lit_Chars val:'\tcat file2 >file2.orig &&\n' span_id:41) 
          (Token id:Id.Lit_Chars val:'\tgit add file1 file2 &&\n' span_id:42) (Token id:Id.Lit_Chars val:'\tsed -e "/^B/d" <file1.orig >file1 &&\n' span_id:43) 
          (Token id:Id.Lit_Chars val:'\tcat file1 > file2 &&\n' span_id:44) (Token id:Id.Lit_Chars val:'\techo Q | tr -d "\\\\012" >>file2 &&\n' span_id:45) 
          (Token id:Id.Lit_Chars val:'\tcat file1 >file1.mods &&\n' span_id:46) (Token id:Id.Lit_Chars val:'\tcat file2 >file2.mods &&\n' span_id:47) 
          (Token id:Id.Lit_Chars val:'\tgit diff |\n' span_id:48) (Token id:Id.Lit_Chars val:'\tsed -e "s/^ \\$//" >diff.output\n' span_id:49)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'apply --numstat' span_id:56))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:60) (Token id:Id.Lit_Chars val:'\n' span_id:61) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit apply --numstat diff.output >actual &&\n'
            span_id: 62
          ) (Token id:Id.Lit_Chars val:'\t{\n' span_id:63) 
          (Token id:Id.Lit_Chars val:'\t\techo "0\t1\tfile1" &&\n' span_id:64) (Token id:Id.Lit_Chars val:'\t\techo "0\t1\tfile2"\n' span_id:65) 
          (Token id:Id.Lit_Chars val:'\t} >expect &&\n' span_id:66) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:67) 
          (Token id:Id.Lit_Chars val:'\n' span_id:68)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'apply --apply' span_id:75))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:79) (Token id:Id.Lit_Chars val:'\n' span_id:80) 
          (Token id:Id.Lit_Chars val:'\tcat file1.orig >file1 &&\n' span_id:81) (Token id:Id.Lit_Chars val:'\tcat file2.orig >file2 &&\n' span_id:82) 
          (Token id:Id.Lit_Chars val:'\tgit update-index file1 file2 &&\n' span_id:83) (Token id:Id.Lit_Chars val:'\tgit apply --index diff.output &&\n' span_id:84) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp file1.mods file1 &&\n' span_id:85) (Token id:Id.Lit_Chars val:'\ttest_cmp file2.mods file2\n' span_id:86)
        )
      }
    )
    (C {(test_done)})
  ]
)