anchor.diff:  %% @doc Setup lists of advertisements and lists of contracts for
   %%      advertisements.
   init([Nodes, SetType, CounterType, NumEvents, NumClients, SyncInterval]) ->
  +    lager:info("Advertisement counter example executing!"),
  +
       %% Get the process identifier of the runner.
       Runner = self(),
   
  
positive.code: %% @doc Simulate clients viewing advertisements.
  simulate(#state{client_list=ClientList, num_events=NumEvents}=State) ->
      %% Start the simulation.
      Viewer = fun(_) ->
              Random = random:uniform(length(ClientList)),
  
              timer:sleep(10),
  
              Pid = lists:nth(Random, ClientList),
              Pid ! {runner, view_ad}
      end,
      lists:foreach(Viewer, lists:seq(1, NumEvents)),
      {ok, State}.
  
  %% @doc Summarize results.
  summarize(#state{num_clients=_NumClients, ad_list=AdList}=State) ->
      %% Wait until all advertisements have been exhausted before stopping
      %% execution of the test.
      Overcounts = lists:map(fun(#ad{counter=CounterId}) ->
  
negative.code:             end,
  
              %% Notify the harness that an event has been processed.
              Runner ! {runner, view_ad_complete},
  
              client(SetType, CounterType, SyncInterval, Runner, Id, AdsWithContractsId, AdsWithContracts0, Counters);
          {runner, terminate} ->
              Runner ! {runner, terminate_done},
              ok
      after
          SyncInterval ->
              {ok, AdsWithContracts, Counters} = synchronize(SetType, AdsWithContractsId, AdsWithContracts0, Counters0),
  