anchor.diff:      ok.
   
   cleanup({Nodename, _}) ->
  -    [rpc:call(n(Nodename), rabbit_amqqueue, delete, [Q, false, false]) ||
  -        Q <- queues(Nodename)].
  +    [rpc:call(n(Nodename), rabbit_amqqueue, delete, [Q, false, false])
  +     || Q <- queues(Nodename)].
   
   teardown(Ch, Xs, Params, Policies) ->
  -    [exchange_op(Ch, x_delete(XName)) || XName <- Xs],
  +    [begin
  +         exchange_op(Ch, x_delete(XName)),
  +         delete_queues(Ch, XName, N)
  +     end || {XName, N} <- Xs],
       [clear_param(Comp, Param) || {Comp, Param} <- Params],
       [clear_pol(Policy) || Policy <- Policies].
  +
  +delete_queues(Ch, Name, N) ->
  +    [amqp_channel:call(Ch, q_delete(Name, QInd)) || QInd <- lists:seq(0, N-1)].
   
   exchange_op(Ch, Op) ->
       amqp_channel:call(Ch, Op).
  
positive.code:               ?assertEqual(5, length(queues("rabbit-test"))),
  
                teardown(Ch,
                         [<<"sharding.test">>],
                         [{"sharding-definition", "5_shard"}],
                         ["5_shard"])
        end).
  
negative.code:               ?assertEqual(5, length(queues("rabbit-test"))),
  
                teardown(Ch,
                         [{<<"sharding.test">>, 5}],
                         [{"sharding-definition", "3_shard"}],
                         ["3_shard"])
        end).
  