anchor.diff:  
   
   test_piqi() ->
  +    io:format("*** testing Erlang serialization of big objects ***~n~n"),
       Filename = "piqi.piq.pb",
   
       % Read the Piqi-self specification encoded in Protobuf format
  
positive.code: 
  
  run() ->
      test_addressbook(),
      test_piqi(),
      ok.
  
  
  test_addressbook() ->
      Filename = "addressbook.piq.pb",
  
      % Read the addressbook encoded in Protobuf format
  
negative.code:     Input = Writer(Output, Format),
      %io:format("input: ~p~n", [Input]),
  
      io:format("reading ~w objects...~n", [Format]),
      IRate = test_convert(Reader, Format, Input, N),
      io:format("writing ~w objects...~n", [Format]),
      ORate = test_convert(Writer, Format, Output, N),
      io:format("~w read/write rate: ~w/~w~n~n", [Format, IRate, ORate]),
      ok.
  
  
  test_convert(Codec, Format, Input, N) ->
      Fun = fun () -> Codec(Input, Format) end,
      test(Fun, N).
  
  
  test(Fun, N) ->
      io:format("count: ~w~n", [N]),
      {Time, _} = timer:tc(?MODULE, repeat, [Fun, N]),
  
      Seconds = Time / 1000000,
      PerSecond = (N * 1000000) div Time,
  
      io:format("time: ~w seconds~n", [Seconds]),
      io:format("rate: ~w calls per second~n~n", [PerSecond]),
  
      PerSecond.
  
  