(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:test_description)
          op: assign_op.Equal
          rhs: {(SQ <'test --stat output of various commands'>)}
          spids: [13]
        )
      ]
    )
    (C {<.>} {<'./test-lib.sh'>})
    (C {<.>} {(DQ ($ Id.VSub_DollarName '$TEST_DIRECTORY')) <'/lib-terminal.sh'>})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:name)
          op: assign_op.Equal
          rhs: {<aaaaaaaaaa>}
          spids: [34]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:name)
          op: assign_op.Equal
          rhs: 
            {($ Id.VSub_DollarName '$name') ($ Id.VSub_DollarName '$name') 
              ($ Id.VSub_DollarName '$name') ($ Id.VSub_DollarName '$name') ($ Id.VSub_DollarName '$name') ($ Id.VSub_DollarName '$name') 
              ($ Id.VSub_DollarName '$name') ($ Id.VSub_DollarName '$name') ($ Id.VSub_DollarName '$name') ($ Id.VSub_DollarName '$name') 
              ($ Id.VSub_DollarName '$name') ($ Id.VSub_DollarName '$name')
            }
          spids: [37]
        )
      ]
    )
    (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: <Id.KW_While while>
      cond: [(C {<read>} {<cmd>} {<args>})]
      body: 
        (command.DoGroup
          children: [
            (command.Simple
              words: [{<cat>}]
              redirects: [
                (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<expect>})
                (redir
                  op: <Id.Redir_DLessDash '<<-'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.MultiLine
                      here_begin: {(SQ <EOF>)}
                      here_end_span_id: 89
                      stdin_parts: [
                        <
' ...aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa | 1 +\n'
                        >
                      ]
                    )
                )
              ]
              do_fork: T
            )
            (C {<test_expect_success>} 
              {
                (DQ ($ Id.VSub_DollarName '$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.Simple
              words: [{<cat>}]
              redirects: [
                (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<expect>})
                (redir
                  op: <Id.Redir_DLessDash '<<-'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.MultiLine
                      here_begin: {(SQ <EOF>)}
                      here_end_span_id: 119
                      stdin_parts: [<' ...aaaaaaaaaaaaaaaaaaaaaaaaaaaaa | 1 +\n'>]
                    )
                )
              ]
              do_fork: T
            )
            (C {<test_expect_success>} 
              {
                (DQ ($ Id.VSub_DollarName '$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 ($ Id.VSub_DollarName '$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.Simple
              words: [{<cat>}]
              redirects: [
                (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<expect>})
                (redir
                  op: <Id.Redir_DLessDash '<<-'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.MultiLine
                      here_begin: {(SQ <EOF>)}
                      here_end_span_id: 166
                      stdin_parts: [<' ...aaaaaaaaaaaaaaaaaaaaaaaaaaa | 1 +\n'>]
                    )
                )
              ]
              do_fork: T
            )
            (C {<test_expect_success>} 
              {(DQ ($ Id.VSub_DollarName '$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 ($ Id.VSub_DollarName '$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'>
                )
              }
            )
          ]
        )
      redirects: [
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.MultiLine
              here_begin: {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\E'>) <OF>}
              here_end_span_id: 210
              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.Simple
      words: [{<cat>}]
      redirects: [
        (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<expect80>})
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.MultiLine
              here_begin: {(SQ <EOF>)}
              here_end_span_id: 244
              stdin_parts: [
                <
' abcd | 1000 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n'
                >
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      words: [{<cat>}]
      redirects: [
        (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<expect80-graph>})
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.MultiLine
              here_begin: {(SQ <EOF>)}
              here_end_span_id: 256
              stdin_parts: [
                <
'|  abcd | 1000 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n'
                >
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      words: [{<cat>}]
      redirects: [
        (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<expect200>})
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.MultiLine
              here_begin: {(SQ <EOF>)}
              here_end_span_id: 268
              stdin_parts: [
                <
' abcd | 1000 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n'
                >
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      words: [{<cat>}]
      redirects: [
        (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<expect200-graph>})
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.MultiLine
              here_begin: {(SQ <EOF>)}
              here_end_span_id: 280
              stdin_parts: [
                <
'|  abcd | 1000 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n'
                >
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.WhileUntil
      keyword: <Id.KW_While while>
      cond: [(C {<read>} {<verb>} {<expect>} {<cmd>} {<args>})]
      body: 
        (command.DoGroup
          children: [
            (C {<test_expect_success>} 
              {
                (DQ ($ Id.VSub_DollarName '$cmd') <' '> ($ Id.VSub_DollarName '$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 ($ Id.VSub_DollarName '$cmd'))}
              arms: [
                (case_arm
                  pat_list: [{<diff>} {<show>}]
                  action: [(command.ControlFlow token:<Id.ControlFlow_Continue continue>)]
                  spids: [323 326 329 -1]
                )
              ]
            )
            (C {<test_expect_success>} 
              {
                (DQ ($ Id.VSub_DollarName '$cmd') <' --graph '> ($ Id.VSub_DollarName '$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'>
                )
              }
            )
          ]
        )
      redirects: [
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.MultiLine
              here_begin: {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\E'>) <OF>}
              here_end_span_id: 362
              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.Simple
      words: [{<cat>}]
      redirects: [
        (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<expect40>})
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.MultiLine
              here_begin: {(SQ <EOF>)}
              here_end_span_id: 375
              stdin_parts: [<' abcd | 1000 ++++++++++++++++++++++++++\n'>]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      words: [{<cat>}]
      redirects: [
        (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<expect40-graph>})
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.MultiLine
              here_begin: {(SQ <EOF>)}
              here_end_span_id: 387
              stdin_parts: [<'|  abcd | 1000 ++++++++++++++++++++++++\n'>]
            )
        )
      ]
      do_fork: T
    )
    (command.WhileUntil
      keyword: <Id.KW_While while>
      cond: [(C {<read>} {<verb>} {<expect>} {<cmd>} {<args>})]
      body: 
        (command.DoGroup
          children: [
            (C {<test_expect_success>} 
              {
                (DQ ($ Id.VSub_DollarName '$cmd') <' '> ($ Id.VSub_DollarName '$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 ($ Id.VSub_DollarName '$cmd'))}
              arms: [
                (case_arm
                  pat_list: [{<diff>} {<show>}]
                  action: [(command.ControlFlow token:<Id.ControlFlow_Continue continue>)]
                  spids: [430 433 436 -1]
                )
              ]
            )
            (C {<test_expect_success>} 
              {
                (DQ ($ Id.VSub_DollarName '$cmd') <' --graph '> ($ Id.VSub_DollarName '$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'>
                )
              }
            )
          ]
        )
      redirects: [
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.MultiLine
              here_begin: {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\E'>) <OF>}
              here_end_span_id: 469
              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.Simple
      words: [{<cat>}]
      redirects: [
        (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<expect40>})
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.MultiLine
              here_begin: {(SQ <EOF>)}
              here_end_span_id: 482
              stdin_parts: [<' abcd | 1000 ++++++++++++++++++++++++++\n'>]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      words: [{<cat>}]
      redirects: [
        (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<expect40-graph>})
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.MultiLine
              here_begin: {(SQ <EOF>)}
              here_end_span_id: 494
              stdin_parts: [<'|  abcd | 1000 ++++++++++++++++++++++++++\n'>]
            )
        )
      ]
      do_fork: T
    )
    (command.WhileUntil
      keyword: <Id.KW_While while>
      cond: [(C {<read>} {<verb>} {<expect>} {<cmd>} {<args>})]
      body: 
        (command.DoGroup
          children: [
            (C {<test_expect_success>} 
              {
                (DQ ($ Id.VSub_DollarName '$cmd') <' '> ($ Id.VSub_DollarName '$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 ($ Id.VSub_DollarName '$cmd'))}
              arms: [
                (case_arm
                  pat_list: [{<diff>} {<show>}]
                  action: [(command.ControlFlow token:<Id.ControlFlow_Continue continue>)]
                  spids: [537 540 543 -1]
                )
              ]
            )
            (C {<test_expect_success>} 
              {
                (DQ ($ Id.VSub_DollarName '$cmd') <' --graph '> ($ Id.VSub_DollarName '$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'>
                )
              }
            )
          ]
        )
      redirects: [
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.MultiLine
              here_begin: {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\E'>) <OF>}
              here_end_span_id: 576
              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.Simple
      words: [{<cat>}]
      redirects: [
        (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<expect>})
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.MultiLine
              here_begin: {(SQ <EOF>)}
              here_end_span_id: 590
              stdin_parts: [<' abcd | 1000 ++++++++++++++++++++++++++\n'>]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      words: [{<cat>}]
      redirects: [
        (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<expect-graph>})
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.MultiLine
              here_begin: {(SQ <EOF>)}
              here_end_span_id: 602
              stdin_parts: [<'|  abcd | 1000 ++++++++++++++++++++++++++\n'>]
            )
        )
      ]
      do_fork: T
    )
    (command.WhileUntil
      keyword: <Id.KW_While while>
      cond: [(C {<read>} {<cmd>} {<args>})]
      body: 
        (command.DoGroup
          children: [
            (C {<test_expect_success>} 
              {(DQ ($ Id.VSub_DollarName '$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 ($ Id.VSub_DollarName '$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 ($ Id.VSub_DollarName '$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 ($ Id.VSub_DollarName '$cmd'))}
              arms: [
                (case_arm
                  pat_list: [{<diff>} {<show>}]
                  action: [(command.ControlFlow token:<Id.ControlFlow_Continue continue>)]
                  spids: [673 676 679 -1]
                )
              ]
            )
            (C {<test_expect_success>} 
              {(DQ ($ Id.VSub_DollarName '$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 ($ Id.VSub_DollarName '$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'>
                )
              }
            )
          ]
        )
      redirects: [
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.MultiLine
              here_begin: {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\E'>) <OF>}
              here_end_span_id: 727
              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.Simple
      words: [{<cat>}]
      redirects: [
        (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<expect>})
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.MultiLine
              here_begin: {(SQ <EOF>)}
              here_end_span_id: 754
              stdin_parts: [<' ...aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa | 1000 ++++++++++++\n'>]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      words: [{<cat>}]
      redirects: [
        (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<expect-graph>})
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.MultiLine
              here_begin: {(SQ <EOF>)}
              here_end_span_id: 766
              stdin_parts: [<'|  ...aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa | 1000 ++++++++++++\n'>]
            )
        )
      ]
      do_fork: T
    )
    (command.WhileUntil
      keyword: <Id.KW_While while>
      cond: [(C {<read>} {<cmd>} {<args>})]
      body: 
        (command.DoGroup
          children: [
            (C {<test_expect_success>} 
              {(DQ ($ Id.VSub_DollarName '$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 ($ Id.VSub_DollarName '$cmd'))}
              arms: [
                (case_arm
                  pat_list: [{<diff>} {<show>}]
                  action: [(command.ControlFlow token:<Id.ControlFlow_Continue continue>)]
                  spids: [803 806 809 -1]
                )
              ]
            )
            (C {<test_expect_success>} 
              {
                (DQ ($ Id.VSub_DollarName '$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'>
                )
              }
            )
          ]
        )
      redirects: [
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.MultiLine
              here_begin: {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\E'>) <OF>}
              here_end_span_id: 840
              stdin_parts: [
                <'format-patch -1 --stdout\n'>
                <'diff HEAD^ HEAD --stat\n'>
                <'show --stat\n'>
                <'log -1 --stat\n'>
              ]
            )
        )
      ]
    )
    (command.Simple
      words: [{<cat>}]
      redirects: [
        (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<expect80>})
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.MultiLine
              here_begin: {(SQ <EOF>)}
              here_end_span_id: 853
              stdin_parts: [
                <
' ...aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa | 1000 ++++++++++++++++++++\n'
                >
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      words: [{<cat>}]
      redirects: [
        (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<expect80-graph>})
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.MultiLine
              here_begin: {(SQ <EOF>)}
              here_end_span_id: 865
              stdin_parts: [
                <
'|  ...aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa | 1000 ++++++++++++++++++++\n'
                >
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      words: [{<cat>}]
      redirects: [
        (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<expect200>})
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.MultiLine
              here_begin: {(SQ <EOF>)}
              here_end_span_id: 877
              stdin_parts: [
                <
' aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa | 1000 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n'
                >
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      words: [{<cat>}]
      redirects: [
        (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<expect200-graph>})
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.MultiLine
              here_begin: {(SQ <EOF>)}
              here_end_span_id: 889
              stdin_parts: [
                <
'|  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa | 1000 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n'
                >
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.WhileUntil
      keyword: <Id.KW_While while>
      cond: [(C {<read>} {<verb>} {<expect>} {<cmd>} {<args>})]
      body: 
        (command.DoGroup
          children: [
            (C {<test_expect_success>} 
              {
                (DQ ($ Id.VSub_DollarName '$cmd') <' '> ($ Id.VSub_DollarName '$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 ($ Id.VSub_DollarName '$cmd'))}
              arms: [
                (case_arm
                  pat_list: [{<diff>} {<show>}]
                  action: [(command.ControlFlow token:<Id.ControlFlow_Continue continue>)]
                  spids: [932 935 938 -1]
                )
              ]
            )
            (C {<test_expect_success>} 
              {
                (DQ ($ Id.VSub_DollarName '$cmd') <' --graph '> ($ Id.VSub_DollarName '$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'>
                )
              }
            )
          ]
        )
      redirects: [
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.MultiLine
              here_begin: {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\E'>) <OF>}
              here_end_span_id: 971
              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.Simple
      words: [{<cat>}]
      redirects: [
        (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<expect1>})
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.MultiLine
              here_begin: {(SQ <EOF>)}
              here_end_span_id: 984
              stdin_parts: [<' ...aaaaaaa | 1000 ++++++\n'>]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      words: [{<cat>}]
      redirects: [
        (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<expect1-graph>})
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.MultiLine
              here_begin: {(SQ <EOF>)}
              here_end_span_id: 996
              stdin_parts: [<'|  ...aaaaaaa | 1000 ++++++\n'>]
            )
        )
      ]
      do_fork: T
    )
    (command.WhileUntil
      keyword: <Id.KW_While while>
      cond: [(C {<read>} {<verb>} {<expect>} {<cmd>} {<args>})]
      body: 
        (command.DoGroup
          children: [
            (C {<test_expect_success>} {<COLUMNS_CAN_BE_1>} 
              {
                (DQ ($ Id.VSub_DollarName '$cmd') <' '> ($ Id.VSub_DollarName '$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 ($ Id.VSub_DollarName '$cmd'))}
              arms: [
                (case_arm
                  pat_list: [{<diff>} {<show>}]
                  action: [(command.ControlFlow token:<Id.ControlFlow_Continue continue>)]
                  spids: [1043 1046 1049 -1]
                )
              ]
            )
            (C {<test_expect_success>} {<COLUMNS_CAN_BE_1>} 
              {
                (DQ ($ Id.VSub_DollarName '$cmd') <' --graph '> ($ Id.VSub_DollarName '$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'>
                )
              }
            )
          ]
        )
      redirects: [
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.MultiLine
              here_begin: {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\E'>) <OF>}
              here_end_span_id: 1086
              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.Simple
      words: [{<cat>}]
      redirects: [
        (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<expect>})
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.MultiLine
              here_begin: {(SQ <EOF>)}
              here_end_span_id: 1099
              stdin_parts: [
                <
' abcd | 1000 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n'
                >
              ]
            )
        )
      ]
      do_fork: T
    )
    (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.Simple
      words: [{<cat>}]
      redirects: [
        (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<expect>})
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.MultiLine
              here_begin: {(SQ <EOF>)}
              here_end_span_id: 1126
              stdin_parts: [
                <
' aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa | 1000 +++++++++++++++++++++++++++++++++++++++\n'
                >
              ]
            )
        )
      ]
      do_fork: T
    )
    (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>})
  ]
)