(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:'sparse checkout scope tests' 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:'\techo "initial" >a &&\n' span_id:23) (Token id:Id.Lit_Chars val:'\techo "initial" >b &&\n' span_id:24) 
          (Token id:Id.Lit_Chars val:'\techo "initial" >c &&\n' span_id:25) (Token id:Id.Lit_Chars val:'\tgit add a b c &&\n' span_id:26) 
          (Token id:Id.Lit_Chars val:'\tgit commit -m "initial commit"\n' span_id:27)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'create feature branch' span_id:34))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:38) 
          (Token id:Id.Lit_Chars val:'\tgit checkout -b feature &&\n' span_id:39) (Token id:Id.Lit_Chars val:'\techo "modified" >b &&\n' span_id:40) 
          (Token id:Id.Lit_Chars val:'\techo "modified" >c &&\n' span_id:41) (Token id:Id.Lit_Chars val:'\tgit add b c &&\n' span_id:42) 
          (Token id:Id.Lit_Chars val:'\tgit commit -m "modification"\n' span_id:43)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'perform sparse checkout of master' span_id:50))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:54) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit config --local --bool core.sparsecheckout true &&\n'
            span_id: 55
          ) (Token id:Id.Lit_Chars val:'\techo "!/*" >.git/info/sparse-checkout &&\n' span_id:56) 
          (Token
            id: Id.Lit_Chars
            val: '\techo "/a" >>.git/info/sparse-checkout &&\n'
            span_id: 57
          ) (Token id:Id.Lit_Chars val:'\techo "/c" >>.git/info/sparse-checkout &&\n' span_id:58) 
          (Token id:Id.Lit_Chars val:'\tgit checkout master &&\n' span_id:59) (Token id:Id.Lit_Chars val:'\ttest_path_is_file a &&\n' span_id:60) 
          (Token id:Id.Lit_Chars val:'\ttest_path_is_missing b &&\n' span_id:61) (Token id:Id.Lit_Chars val:'\ttest_path_is_file c\n' span_id:62)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'merge feature branch into sparse checkout of master'
            span_id: 69
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:73) 
          (Token id:Id.Lit_Chars val:'\tgit merge feature &&\n' span_id:74) (Token id:Id.Lit_Chars val:'\ttest_path_is_file a &&\n' span_id:75) 
          (Token id:Id.Lit_Chars val:'\ttest_path_is_missing b &&\n' span_id:76) (Token id:Id.Lit_Chars val:'\ttest_path_is_file c &&\n' span_id:77) 
          (Token id:Id.Lit_Chars val:'\ttest "$(cat c)" = "modified"\n' span_id:78)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'return to full checkout of master' span_id:85))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:89) 
          (Token id:Id.Lit_Chars val:'\tgit checkout feature &&\n' span_id:90) (Token id:Id.Lit_Chars val:'\techo "/*" >.git/info/sparse-checkout &&\n' span_id:91) 
          (Token id:Id.Lit_Chars val:'\tgit checkout master &&\n' span_id:92) (Token id:Id.Lit_Chars val:'\ttest_path_is_file a &&\n' span_id:93) 
          (Token id:Id.Lit_Chars val:'\ttest_path_is_file b &&\n' span_id:94) (Token id:Id.Lit_Chars val:'\ttest_path_is_file c &&\n' span_id:95) 
          (Token id:Id.Lit_Chars val:'\ttest "$(cat b)" = "modified"\n' span_id:96)
        )
      }
    )
    (C {(test_done)})
  ]
)