anchor.diff:  
   -ifdef(TEST).
   -include_lib("eunit/include/eunit.hrl").
  +
  +-define(
  +    assertPropsEqual(Expected1, Actual1),
  +    Expected2 = lists:sort(Expected1),
  +    Actual2 = lists:sort(Actual1),
  +    ?assertEqual(lists:sort(Expected2), lists:sort(Actual2))
  +).
   
   %%
   %% Helper Fns for unit tests
  
positive.code:              {start_inclusive,true}])
      ).
  
  -endif.
  
negative.code:     {Field, FieldType, _OldVal} = lists:keyfind(Field, 1, TupleList),
      lists:keyreplace(Field, 1, TupleList, {Field, FieldType, NewVal}).
  
  %% tl;dr put filters that test equality of columns in the local key but not in
  %% in the partition key, in the star and end key.
  %%
  %% PRIMARY KEY((quantum(a,1,'m')),a,b)
  %%
  %% SELECT * FROM table WHERE a > 2 and a < 6 AND b = 5
  %%
  %% Instead of putting b just in the filter, put it in the start and end keys.
  %% This narrows the range from everything between {2,_} and {6,_} to everyting
  %% between {2,5} and {6,5}.
  %%
  %% For equality filters, it is not safe to remove the filter, because {3,7} is
  %% also in the range but should not be returned because only rows where b = 5
  %% are correct for this query.
  rewrite_where_with_additional_filters([], _, WhereProps) ->
      WhereProps;
  rewrite_where_with_additional_filters(AdditionalFields, ToKeyTypeFn, WhereProps) when is_list(WhereProps) ->
  