anchor.diff:  
   long_test()->
       Longer = lists:seq(0, 655),
  -%    Longest = lists:seq(0,12345),
  -    {Longer, <<>>} = msgpack:unpack(msgpack:pack(Longer)),
  -%    {Longest, <<>>} = msgpack:unpack(msgpack:pack(Longest)).
  -    ok.
  +    {Longer, <<>>} = msgpack:unpack(msgpack:pack(Longer)).
   
   map_test()->
       Ints = lists:seq(0, 65),
  
positive.code: 	<<2#1000:4, L:4, Rest/binary>> ->            unpack_map_(Rest, L, []);   % map
  	
  % Incomplete / invalid data
  %	<<_:16/integer, _/binary>>
  	_ -> throw(short)
  %% 	<<16#CA, _/binary>> -> {more, 4-byte_size(Rest)};
  %% 	<<16#CB, Rest/binary>> -> {more, 8-byte_size(Rest)};
  %% 	<<16#CC>> ->              {more, 1};
  %% 	<<16#CD, Rest/binary>> -> {more, 2-byte_size(Rest)};
  %% 	<<16#CE, Rest/binary>> -> {more, 4-byte_size(Rest)};
  %% 	<<16#CF, Rest/binary>> -> {more, 8-byte_size(Rest)};
  %% 	<<16#D0>> ->              {more, 1};
  %% 	<<16#D1, Rest/binary>> -> {more, 2-byte_size(Rest)};
  %% 	<<16#D2, Rest/binary>> -> {more, 4-byte_size(Rest)};
  %% 	<<16#D3, Rest/binary>> -> {more, 8-byte_size(Rest)};
  %% 	<<16#DA, Rest/binary>> -> {more, 16-byte_size(Rest)};
  %% 	<<16#DB, Rest/binary>> -> {more, 32-byte_size(Rest)};
  %% 	<<16#DC, Rest/binary>> -> {more, 2-byte_size(Rest)};
  %% 	<<16#DD, Rest/binary>> -> {more, 4-byte_size(Rest)};
  %% 	<<16#DE, Rest/binary>> -> {more, 2-byte_size(Rest)};
  %% 	<<16#DF, Rest/binary>> -> {more, 4-byte_size(Rest)};
  %% 	<<2#101:3, L:5, Rest/binary>> ->  throw(short); % {more, L-byte_size(Rest)};
  
  %% 	<<>> ->   throw(short); %               {more, 1};
  %% 	<<2#101:3, _/binary>> -> {more, undefined};
  %% 	<<F:8, Rest/binary>> when F==16#C1;
  %% 				  F==16#C7; F==16#C8; F==16#C9; F==16#D5;
  %% 				  F==16#D6; F==16#D7; F==16#D8; F==16#D9->
  %% 	    throw({badarg, <<F, Rest/binary>>});
  %	Other ->
  %	    throw({unknown, Other})
      end.
  
  % ===== test codes ===== %
  -include_lib("eunit/include/eunit.hrl").
  -ifdef(EUNIT).
  
  compare_all([], [])-> ok;
  compare_all([], R)-> {toomuchrhs, R};
  compare_all(L, [])-> {toomuchlhs, L};
  compare_all([LH|LTL], [RH|RTL]) ->
      ?assertEqual(LH, RH),
      compare_all(LTL, RTL).
  
negative.code:     << 16#D3:8, N:64/big-signed-integer-unit:1 >>.
  
  % float : erlang's float is always IEEE 754 64bit format.
  % pack_float(F) when is_float(F)->
  %    << 16#CA:8, F:32/big-float-unit:1 >>.
  %    pack_double(F).
  % double
  