(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 column' span_id:6))}
          spids: [4]
        )
      ]
    )
    (C {(.)} {(./test-lib.sh)})
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:setup span_id:17))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:21) 
          (Token id:Id.Lit_Chars val:'\tcat >lista <<\\EOF\n' span_id:22) (Token id:Id.Lit_Chars val:'one\n' span_id:23) (Token id:Id.Lit_Chars val:'two\n' span_id:24) 
          (Token id:Id.Lit_Chars val:'three\n' span_id:25) (Token id:Id.Lit_Chars val:'four\n' span_id:26) (Token id:Id.Lit_Chars val:'five\n' span_id:27) 
          (Token id:Id.Lit_Chars val:'six\n' span_id:28) (Token id:Id.Lit_Chars val:'seven\n' span_id:29) (Token id:Id.Lit_Chars val:'eight\n' span_id:30) 
          (Token id:Id.Lit_Chars val:'nine\n' span_id:31) (Token id:Id.Lit_Chars val:'ten\n' span_id:32) (Token id:Id.Lit_Chars val:'eleven\n' span_id:33) 
          (Token id:Id.Lit_Chars val:'EOF\n' span_id:34)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:never span_id:41))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:45) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit column --indent=Z --mode=never <lista >actual &&\n'
            span_id: 46
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp lista actual\n' span_id:47)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:always span_id:54))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:58) 
          (Token id:Id.Lit_Chars val:'\tcat >expected <<\\EOF &&\n' span_id:59) (Token id:Id.Lit_Chars val:'Zone\n' span_id:60) (Token id:Id.Lit_Chars val:'Ztwo\n' span_id:61) 
          (Token id:Id.Lit_Chars val:'Zthree\n' span_id:62) (Token id:Id.Lit_Chars val:'Zfour\n' span_id:63) (Token id:Id.Lit_Chars val:'Zfive\n' span_id:64) 
          (Token id:Id.Lit_Chars val:'Zsix\n' span_id:65) (Token id:Id.Lit_Chars val:'Zseven\n' span_id:66) (Token id:Id.Lit_Chars val:'Zeight\n' span_id:67) 
          (Token id:Id.Lit_Chars val:'Znine\n' span_id:68) (Token id:Id.Lit_Chars val:'Zten\n' span_id:69) (Token id:Id.Lit_Chars val:'Zeleven\n' span_id:70) 
          (Token id:Id.Lit_Chars val:'EOF\n' span_id:71) (Token id:Id.Lit_Chars val:'\tgit column --indent=Z --mode=plain <lista >actual &&\n' span_id:72) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:73)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'80 columns' span_id:80))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:84) 
          (Token id:Id.Lit_Chars val:'\tcat >expected <<\\EOF &&\n' span_id:85) 
          (Token
            id: Id.Lit_Chars
            val: 'one    two    three  four   five   six    seven  eight  nine   ten    eleven\n'
            span_id: 86
          ) (Token id:Id.Lit_Chars val:'EOF\n' span_id:87) 
          (Token
            id: Id.Lit_Chars
            val: '\tCOLUMNS=80 git column --mode=column <lista >actual &&\n'
            span_id: 88
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:89)
        )
      }
    )
    (command.Simple
      words: [{(cat)}]
      redirects: [
        (redir.Redir
          op: (Token id:Id.Redir_Great val:'>' span_id:95)
          fd: -1
          arg_word: {(expected)}
        )
        (redir.HereDoc
          op: (Token id:Id.Redir_DLess val:'<<' span_id:98)
          fd: -1
          here_begin: 
            {(word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\E' span_id:99)) (OF)}
          here_end_span_id: 113
          stdin_parts: [
            ('one\n')
            ('two\n')
            ('three\n')
            ('four\n')
            ('five\n')
            ('six\n')
            ('seven\n')
            ('eight\n')
            ('nine\n')
            ('ten\n')
            ('eleven\n')
          ]
        )
      ]
    )
    (C {(test_expect_success)} {(COLUMNS_CAN_BE_1)} 
      {(SQ (Token id:Id.Lit_Chars val:'COLUMNS = 1' span_id:120))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:124) 
          (Token
            id: Id.Lit_Chars
            val: '\tCOLUMNS=1 git column --mode=column <lista >actual &&\n'
            span_id: 125
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:126)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'width = 1' span_id:133))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:137) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit column --mode=column --width=1 <lista >actual &&\n'
            span_id: 138
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:139)
        )
      }
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:COLUMNS)
          op: assign_op.Equal
          rhs: {(20)}
          spids: [143]
        )
      ]
    )
    (C {(export)} {(COLUMNS)})
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'20 columns' span_id:154))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:158) 
          (Token id:Id.Lit_Chars val:'\tcat >expected <<\\EOF &&\n' span_id:159) (Token id:Id.Lit_Chars val:'one    seven\n' span_id:160) 
          (Token id:Id.Lit_Chars val:'two    eight\n' span_id:161) (Token id:Id.Lit_Chars val:'three  nine\n' span_id:162) 
          (Token id:Id.Lit_Chars val:'four   ten\n' span_id:163) (Token id:Id.Lit_Chars val:'five   eleven\n' span_id:164) 
          (Token id:Id.Lit_Chars val:'six\n' span_id:165) (Token id:Id.Lit_Chars val:'EOF\n' span_id:166) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit column --mode=column <lista >actual &&\n'
            span_id: 167
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:168)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'20 columns, nodense' span_id:175))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:179) 
          (Token id:Id.Lit_Chars val:'\tcat >expected <<\\EOF &&\n' span_id:180) (Token id:Id.Lit_Chars val:'one    seven\n' span_id:181) 
          (Token id:Id.Lit_Chars val:'two    eight\n' span_id:182) (Token id:Id.Lit_Chars val:'three  nine\n' span_id:183) 
          (Token id:Id.Lit_Chars val:'four   ten\n' span_id:184) (Token id:Id.Lit_Chars val:'five   eleven\n' span_id:185) 
          (Token id:Id.Lit_Chars val:'six\n' span_id:186) (Token id:Id.Lit_Chars val:'EOF\n' span_id:187) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit column --mode=column,nodense < lista > actual &&\n'
            span_id: 188
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:189)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'20 columns, dense' span_id:196))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:200) 
          (Token id:Id.Lit_Chars val:'\tcat >expected <<\\EOF &&\n' span_id:201) (Token id:Id.Lit_Chars val:'one   five  nine\n' span_id:202) 
          (Token id:Id.Lit_Chars val:'two   six   ten\n' span_id:203) (Token id:Id.Lit_Chars val:'three seven eleven\n' span_id:204) 
          (Token id:Id.Lit_Chars val:'four  eight\n' span_id:205) (Token id:Id.Lit_Chars val:'EOF\n' span_id:206) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit column --mode=column,dense < lista > actual &&\n'
            span_id: 207
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:208)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'20 columns, padding 2' span_id:215))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:219) 
          (Token id:Id.Lit_Chars val:'\tcat >expected <<\\EOF &&\n' span_id:220) (Token id:Id.Lit_Chars val:'one     seven\n' span_id:221) 
          (Token id:Id.Lit_Chars val:'two     eight\n' span_id:222) (Token id:Id.Lit_Chars val:'three   nine\n' span_id:223) 
          (Token id:Id.Lit_Chars val:'four    ten\n' span_id:224) (Token id:Id.Lit_Chars val:'five    eleven\n' span_id:225) 
          (Token id:Id.Lit_Chars val:'six\n' span_id:226) (Token id:Id.Lit_Chars val:'EOF\n' span_id:227) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit column --mode=column --padding 2 <lista >actual &&\n'
            span_id: 228
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:229)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'20 columns, indented' span_id:236))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:240) 
          (Token id:Id.Lit_Chars val:'\tcat >expected <<\\EOF &&\n' span_id:241) (Token id:Id.Lit_Chars val:'  one    seven\n' span_id:242) 
          (Token id:Id.Lit_Chars val:'  two    eight\n' span_id:243) (Token id:Id.Lit_Chars val:'  three  nine\n' span_id:244) 
          (Token id:Id.Lit_Chars val:'  four   ten\n' span_id:245) (Token id:Id.Lit_Chars val:'  five   eleven\n' span_id:246) 
          (Token id:Id.Lit_Chars val:'  six\n' span_id:247) (Token id:Id.Lit_Chars val:'EOF\n' span_id:248) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit column --mode=column --indent="  " <lista >actual &&\n'
            span_id: 249
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:250)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'20 columns, row first' span_id:257))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:261) 
          (Token id:Id.Lit_Chars val:'\tcat >expected <<\\EOF &&\n' span_id:262) (Token id:Id.Lit_Chars val:'one    two\n' span_id:263) 
          (Token id:Id.Lit_Chars val:'three  four\n' span_id:264) (Token id:Id.Lit_Chars val:'five   six\n' span_id:265) 
          (Token id:Id.Lit_Chars val:'seven  eight\n' span_id:266) (Token id:Id.Lit_Chars val:'nine   ten\n' span_id:267) 
          (Token id:Id.Lit_Chars val:'eleven\n' span_id:268) (Token id:Id.Lit_Chars val:'EOF\n' span_id:269) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit column --mode=row <lista >actual &&\n'
            span_id: 270
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:271)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'20 columns, row first, nodense' span_id:278))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:282) 
          (Token id:Id.Lit_Chars val:'\tcat >expected <<\\EOF &&\n' span_id:283) (Token id:Id.Lit_Chars val:'one    two\n' span_id:284) 
          (Token id:Id.Lit_Chars val:'three  four\n' span_id:285) (Token id:Id.Lit_Chars val:'five   six\n' span_id:286) 
          (Token id:Id.Lit_Chars val:'seven  eight\n' span_id:287) (Token id:Id.Lit_Chars val:'nine   ten\n' span_id:288) 
          (Token id:Id.Lit_Chars val:'eleven\n' span_id:289) (Token id:Id.Lit_Chars val:'EOF\n' span_id:290) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit column --mode=row,nodense <lista >actual &&\n'
            span_id: 291
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:292)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'20 columns, row first, dense' span_id:299))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:303) 
          (Token id:Id.Lit_Chars val:'\tcat >expected <<\\EOF &&\n' span_id:304) (Token id:Id.Lit_Chars val:'one   two    three\n' span_id:305) 
          (Token id:Id.Lit_Chars val:'four  five   six\n' span_id:306) (Token id:Id.Lit_Chars val:'seven eight  nine\n' span_id:307) 
          (Token id:Id.Lit_Chars val:'ten   eleven\n' span_id:308) (Token id:Id.Lit_Chars val:'EOF\n' span_id:309) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit column --mode=row,dense <lista >actual &&\n'
            span_id: 310
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:311)
        )
      }
    )
    (C {(test_done)})
  ]
)