anchor.diff:  
   -define(NUM_EXECUTIONS, 5).
   -define(CLOSE, close).
  +-define(RINGSIZE, 16).
  +
  +num_executions() ->
  +    5.
  +
  +ring_size() ->
  +    16.
   
   all() -> [
       {group, make_ring_group},
  
positive.code: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  % test write/1 write data to KV DBs
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  tester_write(_Config) ->
    % write data to KV
    [kv_on_cseq:write(integer_to_list(X),X) || X <- lists:seq(1, 100)].
  
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  % test read/1 ensure data integrity after recovery
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  tester_read(Config) ->
    {priv_dir, PrivDir} = lists:keyfind(priv_dir, 1, Config),
    unittest_helper:stop_ring(),
    % wait for leases to expire
  
negative.code:   ].
  groups() ->
    [
      {make_ring_group, [sequence], [test_make_ring, write, {group, recover_data_group}]},
      {recover_data_group, [sequence, {repeat, num_executions()}], [read]},
      {remove_node_group, [sequence], [write, {group, remove_node}]},
      {remove_node, [sequence, {repeat, num_executions()}], [remove_node]}
    ].
  
  suite() -> [ {timetrap, {seconds, 60}} ].
  