(command.CommandList
  children: [
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:test_description spids:[21])
          op: Equal
          rhs: {(SQ <'test --stat output of various commands'>)}
          spids: [21]
        )
      ]
      spids: [21]
    )
    (C {(.)} {(./test-lib.sh)})
    (C {(.)} {(DQ ($ VSub_Name '$TEST_DIRECTORY')) (/lib-terminal.sh)})
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:name spids:[42])
          op: Equal
          rhs: {(aaaaaaaaaa)}
          spids: [42]
        )
      ]
      spids: [42]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:name spids:[45])
          op: Equal
          rhs: 
            {($ VSub_Name '$name') ($ VSub_Name '$name') ($ VSub_Name '$name') ($ VSub_Name '$name') 
              ($ VSub_Name '$name') ($ VSub_Name '$name') ($ VSub_Name '$name') ($ VSub_Name '$name') ($ VSub_Name '$name') 
              ($ VSub_Name '$name') ($ VSub_Name '$name') ($ VSub_Name '$name')
            }
          spids: [45]
        )
      ]
      spids: [45]
    )
    (C {(test_expect_success)} {(SQ <preparation>)} 
      {
        (SQ <'\n'> <'\t>"$name" &&\n'> <'\tgit add "$name" &&\n'> <'\tgit commit -m message &&\n'> 
          <'\techo a >"$name" &&\n'> <'\tgit commit -m message "$name"\n'>
        )
      }
    )
    (command.WhileUntil
      keyword: <KW_While while>
      cond: [(C {(read)} {(cmd)} {(args)})]
      body: 
        (command.DoGroup
          children: [
            (command.SimpleCommand
              words: [{(cat)}]
              redirects: [
                (redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(expect)})
                (redir.HereDoc
                  op: <Redir_DLessDash '<<-'>
                  fd: 16777215
                  here_begin: {(SQ <EOF>)}
                  here_end_span_id: 97
                  stdin_parts: [
                    (
' ...aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa | 1 +\n'
                    )
                  ]
                )
              ]
            )
            (C {(test_expect_success)} 
              {
                (DQ ($ VSub_Name '$cmd') 
                  (': small change with long name gives more space to the name')
                )
              } 
              {
                (SQ <'\n'> <'\t\tgit $cmd $args >output &&\n'> <'\t\tgrep " | " output >actual &&\n'> 
                  <'\t\ttest_cmp expect actual\n'> <'\t'>
                )
              }
            )
            (command.SimpleCommand
              words: [{(cat)}]
              redirects: [
                (redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(expect)})
                (redir.HereDoc
                  op: <Redir_DLessDash '<<-'>
                  fd: 16777215
                  here_begin: {(SQ <EOF>)}
                  here_end_span_id: 127
                  stdin_parts: [(' ...aaaaaaaaaaaaaaaaaaaaaaaaaaaaa | 1 +\n')]
                )
              ]
            )
            (C {(test_expect_success)} 
              {
                (DQ ($ VSub_Name '$cmd') 
                  (' --stat=width: a long name is given more room when the bar is short')
                )
              } 
              {
                (SQ <'\n'> <'\t\tgit $cmd $args --stat=40 >output &&\n'> 
                  <'\t\tgrep " | " output >actual &&\n'> <'\t\ttest_cmp expect actual\n'> <'\t'>
                )
              }
            )
            (C {(test_expect_success)} 
              {(DQ ($ VSub_Name '$cmd') (' --stat-width=width with long name'))} 
              {
                (SQ <'\n'> <'\t\tgit $cmd $args --stat-width=40 >output &&\n'> 
                  <'\t\tgrep " | " output >actual &&\n'> <'\t\ttest_cmp expect actual\n'> <'\t'>
                )
              }
            )
            (command.SimpleCommand
              words: [{(cat)}]
              redirects: [
                (redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(expect)})
                (redir.HereDoc
                  op: <Redir_DLessDash '<<-'>
                  fd: 16777215
                  here_begin: {(SQ <EOF>)}
                  here_end_span_id: 174
                  stdin_parts: [(' ...aaaaaaaaaaaaaaaaaaaaaaaaaaa | 1 +\n')]
                )
              ]
            )
            (C {(test_expect_success)} 
              {(DQ ($ VSub_Name '$cmd') (' --stat=...,name-width with long name'))} 
              {
                (SQ <'\n'> <'\t\tgit $cmd $args --stat=60,30 >output &&\n'> 
                  <'\t\tgrep " | " output >actual &&\n'> <'\t\ttest_cmp expect actual\n'> <'\t'>
                )
              }
            )
            (C {(test_expect_success)} {(DQ ($ VSub_Name '$cmd') (' --stat-name-width with long name'))} 
              {
                (SQ <'\n'> <'\t\tgit $cmd $args --stat-name-width=30 >output &&\n'> 
                  <'\t\tgrep " | " output >actual &&\n'> <'\t\ttest_cmp expect actual\n'> <'\t'>
                )
              }
            )
          ]
          spids: [83 208]
        )
      redirects: [
        (redir.HereDoc
          op: <Redir_DLess '<<'>
          fd: 16777215
          here_begin: {(word_part.EscapedLiteralPart token:<Lit_EscapedChar '\\E'>) (OF)}
          here_end_span_id: 218
          stdin_parts: [
            ('format-patch -1 --stdout\n')
            ('diff HEAD^ HEAD --stat\n')
            ('show --stat\n')
            ('log -1 --stat\n')
          ]
        )
      ]
    )
    (C {(test_expect_success)} {(SQ <'preparation for big change tests'>)} 
      {
        (SQ <'\n'> <'\t>abcd &&\n'> <'\tgit add abcd &&\n'> <'\tgit commit -m message &&\n'> 
          <'\ti=0 &&\n'> <'\twhile test $i -lt 1000\n'> <'\tdo\n'> <'\t\techo $i && i=$(($i + 1))\n'> <'\tdone >abcd &&\n'> 
          <'\tgit commit -m message abcd\n'>
        )
      }
    )
    (command.SimpleCommand
      words: [{(cat)}]
      redirects: [
        (redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(expect80)})
        (redir.HereDoc
          op: <Redir_DLess '<<'>
          fd: 16777215
          here_begin: {(SQ <EOF>)}
          here_end_span_id: 252
          stdin_parts: [
            (' abcd | 1000 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n')
          ]
        )
      ]
    )
    (command.SimpleCommand
      words: [{(cat)}]
      redirects: [
        (redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(expect80-graph)})
        (redir.HereDoc
          op: <Redir_DLess '<<'>
          fd: 16777215
          here_begin: {(SQ <EOF>)}
          here_end_span_id: 264
          stdin_parts: [
            ('|  abcd | 1000 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n')
          ]
        )
      ]
    )
    (command.SimpleCommand
      words: [{(cat)}]
      redirects: [
        (redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(expect200)})
        (redir.HereDoc
          op: <Redir_DLess '<<'>
          fd: 16777215
          here_begin: {(SQ <EOF>)}
          here_end_span_id: 276
          stdin_parts: [
            (
' abcd | 1000 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n'
            )
          ]
        )
      ]
    )
    (command.SimpleCommand
      words: [{(cat)}]
      redirects: [
        (redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(expect200-graph)})
        (redir.HereDoc
          op: <Redir_DLess '<<'>
          fd: 16777215
          here_begin: {(SQ <EOF>)}
          here_end_span_id: 288
          stdin_parts: [
            (
'|  abcd | 1000 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n'
            )
          ]
        )
      ]
    )
    (command.WhileUntil
      keyword: <KW_While while>
      cond: [(C {(read)} {(verb)} {(expect)} {(cmd)} {(args)})]
      body: 
        (command.DoGroup
          children: [
            (C {(test_expect_success)} 
              {(DQ ($ VSub_Name '$cmd') (' ') ($ VSub_Name '$verb') (' COLUMNS (big change)'))} 
              {
                (SQ <'\n'> <'\t\tCOLUMNS=200 git $cmd $args >output &&\n'> 
                  <'\t\tgrep " | " output >actual &&\n'> <'\t\ttest_cmp "$expect" actual\n'> <'\t'>
                )
              }
            )
            (command.Case
              to_match: {(DQ ($ VSub_Name '$cmd'))}
              arms: [
                (case_arm
                  pat_list: [{(diff)} {(show)}]
                  action: [(command.ControlFlow token:<ControlFlow_Continue continue>)]
                  spids: [331 334 337 16777215]
                )
              ]
              spids: [323 329 339]
            )
            (C {(test_expect_success)} 
              {
                (DQ ($ VSub_Name '$cmd') (' --graph ') ($ VSub_Name '$verb') (' COLUMNS (big change)'))
              } 
              {
                (SQ <'\n'> <'\t\tCOLUMNS=200 git $cmd $args --graph >output &&\n'> 
                  <'\t\tgrep " | " output >actual &&\n'> <'\t\ttest_cmp "$expect-graph" actual\n'> <'\t'>
                )
              }
            )
          ]
          spids: [301 360]
        )
      redirects: [
        (redir.HereDoc
          op: <Redir_DLess '<<'>
          fd: 16777215
          here_begin: {(word_part.EscapedLiteralPart token:<Lit_EscapedChar '\\E'>) (OF)}
          here_end_span_id: 370
          stdin_parts: [
            ('ignores expect80 format-patch -1 --stdout\n')
            ('respects expect200 diff HEAD^ HEAD --stat\n')
            ('respects expect200 show --stat\n')
            ('respects expect200 log -1 --stat\n')
          ]
        )
      ]
    )
    (command.SimpleCommand
      words: [{(cat)}]
      redirects: [
        (redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(expect40)})
        (redir.HereDoc
          op: <Redir_DLess '<<'>
          fd: 16777215
          here_begin: {(SQ <EOF>)}
          here_end_span_id: 383
          stdin_parts: [(' abcd | 1000 ++++++++++++++++++++++++++\n')]
        )
      ]
    )
    (command.SimpleCommand
      words: [{(cat)}]
      redirects: [
        (redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(expect40-graph)})
        (redir.HereDoc
          op: <Redir_DLess '<<'>
          fd: 16777215
          here_begin: {(SQ <EOF>)}
          here_end_span_id: 395
          stdin_parts: [('|  abcd | 1000 ++++++++++++++++++++++++\n')]
        )
      ]
    )
    (command.WhileUntil
      keyword: <KW_While while>
      cond: [(C {(read)} {(verb)} {(expect)} {(cmd)} {(args)})]
      body: 
        (command.DoGroup
          children: [
            (C {(test_expect_success)} 
              {
                (DQ ($ VSub_Name '$cmd') (' ') ($ VSub_Name '$verb') 
                  (' not enough COLUMNS (big change)')
                )
              } 
              {
                (SQ <'\n'> <'\t\tCOLUMNS=40 git $cmd $args >output &&\n'> 
                  <'\t\tgrep " | " output >actual &&\n'> <'\t\ttest_cmp "$expect" actual\n'> <'\t'>
                )
              }
            )
            (command.Case
              to_match: {(DQ ($ VSub_Name '$cmd'))}
              arms: [
                (case_arm
                  pat_list: [{(diff)} {(show)}]
                  action: [(command.ControlFlow token:<ControlFlow_Continue continue>)]
                  spids: [438 441 444 16777215]
                )
              ]
              spids: [430 436 446]
            )
            (C {(test_expect_success)} 
              {
                (DQ ($ VSub_Name '$cmd') (' --graph ') ($ VSub_Name '$verb') 
                  (' not enough COLUMNS (big change)')
                )
              } 
              {
                (SQ <'\n'> <'\t\tCOLUMNS=40 git $cmd $args --graph >output &&\n'> 
                  <'\t\tgrep " | " output >actual &&\n'> <'\t\ttest_cmp "$expect-graph" actual\n'> <'\t'>
                )
              }
            )
          ]
          spids: [408 467]
        )
      redirects: [
        (redir.HereDoc
          op: <Redir_DLess '<<'>
          fd: 16777215
          here_begin: {(word_part.EscapedLiteralPart token:<Lit_EscapedChar '\\E'>) (OF)}
          here_end_span_id: 477
          stdin_parts: [
            ('ignores expect80 format-patch -1 --stdout\n')
            ('respects expect40 diff HEAD^ HEAD --stat\n')
            ('respects expect40 show --stat\n')
            ('respects expect40 log -1 --stat\n')
          ]
        )
      ]
    )
    (command.SimpleCommand
      words: [{(cat)}]
      redirects: [
        (redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(expect40)})
        (redir.HereDoc
          op: <Redir_DLess '<<'>
          fd: 16777215
          here_begin: {(SQ <EOF>)}
          here_end_span_id: 490
          stdin_parts: [(' abcd | 1000 ++++++++++++++++++++++++++\n')]
        )
      ]
    )
    (command.SimpleCommand
      words: [{(cat)}]
      redirects: [
        (redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(expect40-graph)})
        (redir.HereDoc
          op: <Redir_DLess '<<'>
          fd: 16777215
          here_begin: {(SQ <EOF>)}
          here_end_span_id: 502
          stdin_parts: [('|  abcd | 1000 ++++++++++++++++++++++++++\n')]
        )
      ]
    )
    (command.WhileUntil
      keyword: <KW_While while>
      cond: [(C {(read)} {(verb)} {(expect)} {(cmd)} {(args)})]
      body: 
        (command.DoGroup
          children: [
            (C {(test_expect_success)} 
              {(DQ ($ VSub_Name '$cmd') (' ') ($ VSub_Name '$verb') (' statGraphWidth config'))} 
              {
                (SQ <'\n'> <'\t\tgit -c diff.statGraphWidth=26 $cmd $args >output &&\n'> 
                  <'\t\tgrep " | " output >actual &&\n'> <'\t\ttest_cmp "$expect" actual\n'> <'\t'>
                )
              }
            )
            (command.Case
              to_match: {(DQ ($ VSub_Name '$cmd'))}
              arms: [
                (case_arm
                  pat_list: [{(diff)} {(show)}]
                  action: [(command.ControlFlow token:<ControlFlow_Continue continue>)]
                  spids: [545 548 551 16777215]
                )
              ]
              spids: [537 543 553]
            )
            (C {(test_expect_success)} 
              {
                (DQ ($ VSub_Name '$cmd') (' --graph ') ($ VSub_Name '$verb') (' statGraphWidth config'))
              } 
              {
                (SQ <'\n'> <'\t\tgit -c diff.statGraphWidth=26 $cmd $args --graph >output &&\n'> 
                  <'\t\tgrep " | " output >actual &&\n'> <'\t\ttest_cmp "$expect-graph" actual\n'> <'\t'>
                )
              }
            )
          ]
          spids: [515 574]
        )
      redirects: [
        (redir.HereDoc
          op: <Redir_DLess '<<'>
          fd: 16777215
          here_begin: {(word_part.EscapedLiteralPart token:<Lit_EscapedChar '\\E'>) (OF)}
          here_end_span_id: 584
          stdin_parts: [
            ('ignores expect80 format-patch -1 --stdout\n')
            ('respects expect40 diff HEAD^ HEAD --stat\n')
            ('respects expect40 show --stat\n')
            ('respects expect40 log -1 --stat\n')
          ]
        )
      ]
    )
    (command.SimpleCommand
      words: [{(cat)}]
      redirects: [
        (redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(expect)})
        (redir.HereDoc
          op: <Redir_DLess '<<'>
          fd: 16777215
          here_begin: {(SQ <EOF>)}
          here_end_span_id: 598
          stdin_parts: [(' abcd | 1000 ++++++++++++++++++++++++++\n')]
        )
      ]
    )
    (command.SimpleCommand
      words: [{(cat)}]
      redirects: [
        (redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(expect-graph)})
        (redir.HereDoc
          op: <Redir_DLess '<<'>
          fd: 16777215
          here_begin: {(SQ <EOF>)}
          here_end_span_id: 610
          stdin_parts: [('|  abcd | 1000 ++++++++++++++++++++++++++\n')]
        )
      ]
    )
    (command.WhileUntil
      keyword: <KW_While while>
      cond: [(C {(read)} {(cmd)} {(args)})]
      body: 
        (command.DoGroup
          children: [
            (C {(test_expect_success)} {(DQ ($ VSub_Name '$cmd') (' --stat=width with big change'))} 
              {
                (SQ <'\n'> <'\t\tgit $cmd $args --stat=40 >output &&\n'> 
                  <'\t\tgrep " | " output >actual &&\n'> <'\t\ttest_cmp expect actual\n'> <'\t'>
                )
              }
            )
            (C {(test_expect_success)} 
              {(DQ ($ VSub_Name '$cmd') (' --stat-width=width with big change'))} 
              {
                (SQ <'\n'> <'\t\tgit $cmd $args --stat-width=40 >output &&\n'> 
                  <'\t\tgrep " | " output >actual &&\n'> <'\t\ttest_cmp expect actual\n'> <'\t'>
                )
              }
            )
            (C {(test_expect_success)} 
              {(DQ ($ VSub_Name '$cmd') (' --stat-graph-width with big change'))} 
              {
                (SQ <'\n'> <'\t\tgit $cmd $args --stat-graph-width=26 >output &&\n'> 
                  <'\t\tgrep " | " output >actual &&\n'> <'\t\ttest_cmp expect actual\n'> <'\t'>
                )
              }
            )
            (command.Case
              to_match: {(DQ ($ VSub_Name '$cmd'))}
              arms: [
                (case_arm
                  pat_list: [{(diff)} {(show)}]
                  action: [(command.ControlFlow token:<ControlFlow_Continue continue>)]
                  spids: [681 684 687 16777215]
                )
              ]
              spids: [673 679 689]
            )
            (C {(test_expect_success)} 
              {(DQ ($ VSub_Name '$cmd') (' --stat-width=width --graph with big change'))} 
              {
                (SQ <'\n'> <'\t\tgit $cmd $args --stat-width=40 --graph >output &&\n'> 
                  <'\t\tgrep " | " output >actual &&\n'> <'\t\ttest_cmp expect-graph actual\n'> <'\t'>
                )
              }
            )
            (C {(test_expect_success)} 
              {(DQ ($ VSub_Name '$cmd') (' --stat-graph-width --graph with big change'))} 
              {
                (SQ <'\n'> <'\t\tgit $cmd $args --stat-graph-width=26 --graph >output &&\n'> 
                  <'\t\tgrep " | " output >actual &&\n'> <'\t\ttest_cmp expect-graph actual\n'> <'\t'>
                )
              }
            )
          ]
          spids: [619 725]
        )
      redirects: [
        (redir.HereDoc
          op: <Redir_DLess '<<'>
          fd: 16777215
          here_begin: {(word_part.EscapedLiteralPart token:<Lit_EscapedChar '\\E'>) (OF)}
          here_end_span_id: 735
          stdin_parts: [
            ('format-patch -1 --stdout\n')
            ('diff HEAD^ HEAD --stat\n')
            ('show --stat\n')
            ('log -1 --stat\n')
          ]
        )
      ]
    )
    (C {(test_expect_success)} {(SQ <'preparation for long filename tests'>)} 
      {
        (SQ <'\n'> <'\tcp abcd aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa &&\n'> 
          <'\tgit add aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa &&\n'> <'\tgit commit -m message\n'>
        )
      }
    )
    (command.SimpleCommand
      words: [{(cat)}]
      redirects: [
        (redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(expect)})
        (redir.HereDoc
          op: <Redir_DLess '<<'>
          fd: 16777215
          here_begin: {(SQ <EOF>)}
          here_end_span_id: 762
          stdin_parts: [(' ...aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa | 1000 ++++++++++++\n')]
        )
      ]
    )
    (command.SimpleCommand
      words: [{(cat)}]
      redirects: [
        (redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(expect-graph)})
        (redir.HereDoc
          op: <Redir_DLess '<<'>
          fd: 16777215
          here_begin: {(SQ <EOF>)}
          here_end_span_id: 774
          stdin_parts: [('|  ...aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa | 1000 ++++++++++++\n')]
        )
      ]
    )
    (command.WhileUntil
      keyword: <KW_While while>
      cond: [(C {(read)} {(cmd)} {(args)})]
      body: 
        (command.DoGroup
          children: [
            (C {(test_expect_success)} 
              {(DQ ($ VSub_Name '$cmd') (' --stat=width with big change is more balanced'))} 
              {
                (SQ <'\n'> <'\t\tgit $cmd $args --stat-width=60 >output &&\n'> 
                  <'\t\tgrep " | " output >actual &&\n'> <'\t\ttest_cmp expect actual\n'> <'\t'>
                )
              }
            )
            (command.Case
              to_match: {(DQ ($ VSub_Name '$cmd'))}
              arms: [
                (case_arm
                  pat_list: [{(diff)} {(show)}]
                  action: [(command.ControlFlow token:<ControlFlow_Continue continue>)]
                  spids: [811 814 817 16777215]
                )
              ]
              spids: [803 809 819]
            )
            (C {(test_expect_success)} 
              {(DQ ($ VSub_Name '$cmd') (' --stat=width --graph with big change is balanced'))} 
              {
                (SQ <'\n'> <'\t\tgit $cmd $args --stat-width=60 --graph >output &&\n'> 
                  <'\t\tgrep " | " output >actual &&\n'> <'\t\ttest_cmp expect-graph actual\n'> <'\t'>
                )
              }
            )
          ]
          spids: [783 838]
        )
      redirects: [
        (redir.HereDoc
          op: <Redir_DLess '<<'>
          fd: 16777215
          here_begin: {(word_part.EscapedLiteralPart token:<Lit_EscapedChar '\\E'>) (OF)}
          here_end_span_id: 848
          stdin_parts: [
            ('format-patch -1 --stdout\n')
            ('diff HEAD^ HEAD --stat\n')
            ('show --stat\n')
            ('log -1 --stat\n')
          ]
        )
      ]
    )
    (command.SimpleCommand
      words: [{(cat)}]
      redirects: [
        (redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(expect80)})
        (redir.HereDoc
          op: <Redir_DLess '<<'>
          fd: 16777215
          here_begin: {(SQ <EOF>)}
          here_end_span_id: 861
          stdin_parts: [
            (' ...aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa | 1000 ++++++++++++++++++++\n')
          ]
        )
      ]
    )
    (command.SimpleCommand
      words: [{(cat)}]
      redirects: [
        (redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(expect80-graph)})
        (redir.HereDoc
          op: <Redir_DLess '<<'>
          fd: 16777215
          here_begin: {(SQ <EOF>)}
          here_end_span_id: 873
          stdin_parts: [
            ('|  ...aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa | 1000 ++++++++++++++++++++\n')
          ]
        )
      ]
    )
    (command.SimpleCommand
      words: [{(cat)}]
      redirects: [
        (redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(expect200)})
        (redir.HereDoc
          op: <Redir_DLess '<<'>
          fd: 16777215
          here_begin: {(SQ <EOF>)}
          here_end_span_id: 885
          stdin_parts: [
            (
' aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa | 1000 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n'
            )
          ]
        )
      ]
    )
    (command.SimpleCommand
      words: [{(cat)}]
      redirects: [
        (redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(expect200-graph)})
        (redir.HereDoc
          op: <Redir_DLess '<<'>
          fd: 16777215
          here_begin: {(SQ <EOF>)}
          here_end_span_id: 897
          stdin_parts: [
            (
'|  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa | 1000 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n'
            )
          ]
        )
      ]
    )
    (command.WhileUntil
      keyword: <KW_While while>
      cond: [(C {(read)} {(verb)} {(expect)} {(cmd)} {(args)})]
      body: 
        (command.DoGroup
          children: [
            (C {(test_expect_success)} 
              {(DQ ($ VSub_Name '$cmd') (' ') ($ VSub_Name '$verb') (' COLUMNS (long filename)'))} 
              {
                (SQ <'\n'> <'\t\tCOLUMNS=200 git $cmd $args >output &&\n'> 
                  <'\t\tgrep " | " output >actual &&\n'> <'\t\ttest_cmp "$expect" actual\n'> <'\t'>
                )
              }
            )
            (command.Case
              to_match: {(DQ ($ VSub_Name '$cmd'))}
              arms: [
                (case_arm
                  pat_list: [{(diff)} {(show)}]
                  action: [(command.ControlFlow token:<ControlFlow_Continue continue>)]
                  spids: [940 943 946 16777215]
                )
              ]
              spids: [932 938 948]
            )
            (C {(test_expect_success)} 
              {
                (DQ ($ VSub_Name '$cmd') (' --graph ') ($ VSub_Name '$verb') 
                  (' COLUMNS (long filename)')
                )
              } 
              {
                (SQ <'\n'> <'\t\tCOLUMNS=200 git $cmd $args --graph >output &&\n'> 
                  <'\t\tgrep " | " output >actual &&\n'> <'\t\ttest_cmp "$expect-graph" actual\n'> <'\t'>
                )
              }
            )
          ]
          spids: [910 969]
        )
      redirects: [
        (redir.HereDoc
          op: <Redir_DLess '<<'>
          fd: 16777215
          here_begin: {(word_part.EscapedLiteralPart token:<Lit_EscapedChar '\\E'>) (OF)}
          here_end_span_id: 979
          stdin_parts: [
            ('ignores expect80 format-patch -1 --stdout\n')
            ('respects expect200 diff HEAD^ HEAD --stat\n')
            ('respects expect200 show --stat\n')
            ('respects expect200 log -1 --stat\n')
          ]
        )
      ]
    )
    (command.SimpleCommand
      words: [{(cat)}]
      redirects: [
        (redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(expect1)})
        (redir.HereDoc
          op: <Redir_DLess '<<'>
          fd: 16777215
          here_begin: {(SQ <EOF>)}
          here_end_span_id: 992
          stdin_parts: [(' ...aaaaaaa | 1000 ++++++\n')]
        )
      ]
    )
    (command.SimpleCommand
      words: [{(cat)}]
      redirects: [
        (redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(expect1-graph)})
        (redir.HereDoc
          op: <Redir_DLess '<<'>
          fd: 16777215
          here_begin: {(SQ <EOF>)}
          here_end_span_id: 1004
          stdin_parts: [('|  ...aaaaaaa | 1000 ++++++\n')]
        )
      ]
    )
    (command.WhileUntil
      keyword: <KW_While while>
      cond: [(C {(read)} {(verb)} {(expect)} {(cmd)} {(args)})]
      body: 
        (command.DoGroup
          children: [
            (C {(test_expect_success)} {(COLUMNS_CAN_BE_1)} 
              {
                (DQ ($ VSub_Name '$cmd') (' ') ($ VSub_Name '$verb') 
                  (' prefix greater than COLUMNS (big change)')
                )
              } 
              {
                (SQ <'\n'> <'\t\tCOLUMNS=1 git $cmd $args >output &&\n'> 
                  <'\t\tgrep " | " output >actual &&\n'> <'\t\ttest_cmp "$expect" actual\n'> <'\t'>
                )
              }
            )
            (command.Case
              to_match: {(DQ ($ VSub_Name '$cmd'))}
              arms: [
                (case_arm
                  pat_list: [{(diff)} {(show)}]
                  action: [(command.ControlFlow token:<ControlFlow_Continue continue>)]
                  spids: [1051 1054 1057 16777215]
                )
              ]
              spids: [1043 1049 1059]
            )
            (C {(test_expect_success)} {(COLUMNS_CAN_BE_1)} 
              {
                (DQ ($ VSub_Name '$cmd') (' --graph ') ($ VSub_Name '$verb') 
                  (' prefix greater than COLUMNS (big change)')
                )
              } 
              {
                (SQ <'\n'> <'\t\tCOLUMNS=1 git $cmd $args --graph >output &&\n'> 
                  <'\t\tgrep " | " output >actual &&\n'> <'\t\ttest_cmp "$expect-graph" actual\n'> <'\t'>
                )
              }
            )
          ]
          spids: [1017 1084]
        )
      redirects: [
        (redir.HereDoc
          op: <Redir_DLess '<<'>
          fd: 16777215
          here_begin: {(word_part.EscapedLiteralPart token:<Lit_EscapedChar '\\E'>) (OF)}
          here_end_span_id: 1094
          stdin_parts: [
            ('ignores expect80 format-patch -1 --stdout\n')
            ('respects expect1 diff HEAD^ HEAD --stat\n')
            ('respects expect1 show --stat\n')
            ('respects expect1 log -1 --stat\n')
          ]
        )
      ]
    )
    (command.SimpleCommand
      words: [{(cat)}]
      redirects: [
        (redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(expect)})
        (redir.HereDoc
          op: <Redir_DLess '<<'>
          fd: 16777215
          here_begin: {(SQ <EOF>)}
          here_end_span_id: 1107
          stdin_parts: [
            (
' abcd | 1000 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n'
            )
          ]
        )
      ]
    )
    (C {(test_expect_success)} {(SQ <'merge --stat respects COLUMNS (big change)'>)} 
      {
        (SQ <'\n'> <'\tgit checkout -b branch HEAD^^ &&\n'> 
          <'\tCOLUMNS=100 git merge --stat --no-ff master^ >output &&\n'> <'\tgrep " | " output >actual &&\n'> <'\ttest_cmp expect actual\n'>
        )
      }
    )
    (command.SimpleCommand
      words: [{(cat)}]
      redirects: [
        (redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(expect)})
        (redir.HereDoc
          op: <Redir_DLess '<<'>
          fd: 16777215
          here_begin: {(SQ <EOF>)}
          here_end_span_id: 1134
          stdin_parts: [
            (
' aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa | 1000 +++++++++++++++++++++++++++++++++++++++\n'
            )
          ]
        )
      ]
    )
    (C {(test_expect_success)} {(SQ <'merge --stat respects COLUMNS (long filename)'>)} 
      {
        (SQ <'\n'> <'\tCOLUMNS=100 git merge --stat --no-ff master >output &&\n'> 
          <'\tgrep " | " output >actual &&\n'> <'\ttest_cmp expect actual\n'>
        )
      }
    )
    (C {(test_done)})
  ]
)