anchor.diff:  %% @doc Client process; standard recurisve looping server.
   client(SetType, CounterType, SyncInterval, Runner, Id, AdsWithContractsId, AdsWithContracts0, Counters0) ->
       receive
  -        {runner, terminate} ->
  -            Runner ! {runner, ok},
  -            ok;
           {runner, view_ad} ->
               Counters = case dict:size(Counters0) of
                   0 ->
  
positive.code: %% @doc Setup lists of advertisements and lists of contracts for
  %%      advertisements.
  init([Nodes, SetType, CounterType, NumEvents, NumClients, SyncInterval]) ->
      %% Get the process identifier of the runner.
      Runner = self(),
  
  
negative.code: %% @doc Simulate clients viewing advertisements.
  simulate(#state{client_list=ClientList, num_events=NumEvents}=State) ->
      %% Start the simulation.
      spawn(fun() ->
                  Viewer = fun(EventId) ->
                          spawn(fun() ->
                                     random:seed(erlang:phash2([node()]),
                                                 erlang:monotonic_time(),
                                                 erlang:unique_integer()),
                                      Random = random:uniform(length(ClientList)),
                                      MSeconds = random:uniform(10),
                                      timer:sleep(MSeconds),
                                      Pid = lists:nth(Random, ClientList),
                                      Pid ! {runner, view_ad},
                                      lager:info("Event ~p dispatched for ~p milliseconds!", [EventId, MSeconds])
                                end)
                  end,
                  lists:foreach(Viewer, lists:seq(1, NumEvents)),
                  lager:info("Simulation event generation complete!")
            end),
      {ok, State}.
  
  %% @doc Summarize results.
  summarize(#state{ad_list=AdList}=State) ->
      %% Wait until all advertisements have been exhausted before stopping
      %% execution of the test.
      Overcounts = lists:map(fun(#ad{counter=CounterId}) ->
  