anchor.diff:             Input =:= Output
          end).
   
  -encoder({dht_query, Method, MsgId, Params}) ->
  -    encode_query(Method, MsgId, Params).
  +prop_inv_compact_test() ->
  +    ?assert(eqc:quickcheck(prop_inv_compact())).
   
   prop_query_inv() ->
      ?FORALL(InQ, dht_query(),
          begin
  -           OutQ = decode_msg(encoder(InQ)),
  +           {Method, MsgId, Params} = InQ,
  +           EncQ = iolist_to_binary(encode_query(Method, MsgId, Params)),
  +           OutQ = decode_msg(EncQ),
              OutQ =:= InQ
          end).
   
  +prop_query_inv_test() ->
  +    ?assert(eqc:quickcheck(prop_query_inv())).
  +
   -endif. %% EQC
   -endif.
  
positive.code: -ifdef(TEST).
  -include_lib("eqc/include/eqc.hrl").
  -include_lib("eunit/include/eunit.hrl").
  -endif.
  
  -behaviour(gen_server).
  
negative.code:     LHash = etorrent_dht:list_id(InfoHash),
      LToken = binary_to_list(Token),
      Args = [{<<"info_hash">>, LHash},
          {<<"port">>, BTPort},
              {<<"token">>, LToken} | common_values()],
      do_send_query('announce', Args, IP, Port, From, State);
  
  