anchor.diff:      InitState = #state{
           active=false,
           pending=Pending,
  -        requests=gb_trees:empty()},
  +        requests=gb_trees:empty(),
  +        fetched=gb_trees:empty(),
  +        stored=gb_sets:empty()},
       {ok, InitState}.
   
   
  
positive.code: 
  handle_call({chunk, {request, _, Peerset, Pid}}, _, State) ->
      #state{pending=Pending, requests=Requests} = State,
      Request = etorrent_util:find(
          fun({{Index, _, _}, Peers}) ->
              etorrent_pieceset:is_member(Index, Peerset)
              and not lists:member(Pid, Peers)
          end, gb_trees:to_list(Requests)),
      case Request of
          false ->
              {reply, {ok, assigned}, State};
          {{Index, Offset, Length}=Chunk, Peers} ->
              etorrent_pending:mark_sent(Index, Offset, Length, Pid, Pending),
              NewRequests = gb_trees:update(Chunk, [Pid|Peers], Requests),
              NewState = State#state{requests=NewRequests},
              {reply, {ok, [Chunk]}, NewState}
  
negative.code: 
  testid() -> 0.
  testpid() -> ?endgame:lookup_server(testid()).
  testset() -> etorrent_pieceset:from_list([0], 8).
  pending() -> ?pending:lookup_server(testid()).
  
  setup() ->
      {ok, PPid} = ?pending:start_link(testid()),
      {ok, EPid} = ?endgame:start_link(testid()),
      ok = ?pending:receiver(EPid, PPid),
      ok = ?pending:register(PPid),
      {PPid, EPid}.
  
  teardown({PPid, EPid}) ->
  