anchor.diff:                            ,?MODULE:put(<<"test">>,1,<<"{\"test\":2}">>))}
          ]}.
   
  -remove_test_() ->
  -    PropOut = remove(<<"age">>,?TEST_PROP),
  -    MapOut =  remove(<<"age">>,?TEST_MAP),
  -    JsonOut = remove(<<"age">>,?TEST_JSON),
  -    {inparallel
  -     , [{"proplist"
  -         ,?_assertEqual(undefined
  -                        , proplists:get_value(<<"age">>,PropOut,undefined))}
  -        , {"map",?_assertEqual(undefined, ?MODULE:get(<<"age">>,MapOut))}
  -        , {"json",?_assertEqual(undefined,?MODULE:get(<<"age">>,JsonOut))}
  -       ]}.
  -
   size_test_() -> 
       {inparallel
        , [{"proplist",?_assertEqual(5,?MODULE:size(?TEST_PROP))}
  
positive.code: 
  %% Standard data type operations, inspired by maps operations
  -export([ find/2
          , fold/3
          , get/2
          , get/3
          , has_key/2
          , keys/1
          , map/2
          , new/0
          , new/1
          , put/3
          , remove/2
          , size/1
          , update/3
          , values/1
          , items/1
          ]).
  
  %% Conversions
  -export([ to_proplist/1
          , to_proplist/2
          , to_map/1
          , to_binary/1
          ]).
  
  %% Other Functionality
  -export([ filter/2      %% Only keep key/value pairs based on boolean filter
          , include/2     %% Only include specified keys
          , exclude/2     %% Exclude specified keys
          , merge/2       %% Merge data objects together (join)
          , diff/2        %% Diff between data objects
          , equal/2       %% Check if data objects are equal
          , is_subset/2   %% Check if first data object is a subset of the second
          , is_disjoint/2 %% Check if data objects have no keys in common
          , project/2     %% Create a projection of a json document based on paths
          , eval/2        %% Constructs a data object prescribed by json path (using jpparse)
          , expand_inline/2   %% Recursively expands 'inline_*' references in a JSON object
          ]).
   
  %% @doc ==============================================================
  %% Basic En/Decode interface
  
negative.code: values(DataObject) -> 
      values(decode(DataObject)).
  
  %% @doc Convert any format of DataObject to proplist
  -spec to_proplist(data_object()) -> list().
  to_proplist(DataObject) when is_list(DataObject) ->
  