(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: 'basic tests for priority queue implementation'
                  span_id: 6
                )
              )
            }
          spids: [4]
        )
      ]
    )
    (C {(.)} {(./test-lib.sh)})
    (command.Simple
      words: [{(cat)}]
      redirects: [
        (redir.Redir op:(Token id:Id.Redir_Great val:'>' span_id:16) fd:-1 arg_word:{(expect)})
        (redir.HereDoc
          op: (Token id:Id.Redir_DLess val:'<<' span_id:19)
          fd: -1
          here_begin: {(SQ (Token id:Id.Lit_Chars val:EOF span_id:21))}
          here_end_span_id: 35
          stdin_parts: [
            ('1\n')
            ('2\n')
            ('3\n')
            ('4\n')
            ('5\n')
            ('5\n')
            ('6\n')
            ('7\n')
            ('8\n')
            ('9\n')
            ('10\n')
          ]
        )
      ]
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'basic ordering' span_id:39))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:43) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest-prio-queue 2 6 3 10 9 5 7 4 5 8 1 dump >actual &&\n'
            span_id: 44
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:45)
        )
      }
    )
    (command.Simple
      words: [{(cat)}]
      redirects: [
        (redir.Redir op:(Token id:Id.Redir_Great val:'>' span_id:51) fd:-1 arg_word:{(expect)})
        (redir.HereDoc
          op: (Token id:Id.Redir_DLess val:'<<' span_id:54)
          fd: -1
          here_begin: {(SQ (Token id:Id.Lit_Chars val:EOF span_id:56))}
          here_end_span_id: 65
          stdin_parts: [('2\n') ('3\n') ('4\n') ('1\n') ('5\n') ('6\n')]
        )
      ]
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'mixed put and get' span_id:69))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:73) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest-prio-queue 6 2 4 get 5 3 get get 1 dump >actual &&\n'
            span_id: 74
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:75)
        )
      }
    )
    (command.Simple
      words: [{(cat)}]
      redirects: [
        (redir.Redir op:(Token id:Id.Redir_Great val:'>' span_id:81) fd:-1 arg_word:{(expect)})
        (redir.HereDoc
          op: (Token id:Id.Redir_DLess val:'<<' span_id:84)
          fd: -1
          here_begin: {(SQ (Token id:Id.Lit_Chars val:EOF span_id:86))}
          here_end_span_id: 95
          stdin_parts: [('1\n') ('2\n') ('NULL\n') ('1\n') ('2\n') ('NULL\n')]
        )
      ]
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'notice empty queue' span_id:99))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:103) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest-prio-queue 1 2 get get get 1 2 get get get >actual &&\n'
            span_id: 104
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:105)
        )
      }
    )
    (C {(test_done)})
  ]
)