anchor.diff:  
   do_operators(Module) ->
     ct:comment("operators with ~p", [Module]),
  -  [_, _, _, _] = sumo:find_by(Module,
  -                              {'and', [{age, 'not_null'},
  -                                       {age, '<', 100}
  -                                      ]
  -                              }),
  -
  -  [_] = sumo:find_by(Module,
  -                     {'and', [{age, 'not_null'},
  -                              {age, '>', 100}
  -                             ]
  -                     }),
  -
  -  [] = sumo:find_by(Module,
  -                    {'and', [{age, 'not_null'},
  -                             {age, '>', 102}
  -                            ]
  -                    }),
  -
  -  [_] = sumo:find_by(Module,
  -                     {'and', [{age, 'not_null'},
  -                              {age, '>=', 102}
  -                             ]
  -                     }),
  -
  -
  -  [_, _, _] = sumo:find_by(Module,
  -                           {'and', [{age, 'not_null'},
  -                                    {age, '<', 30}
  -                                   ]
  -                           }),
  -
  -  [_, _, _, _] = sumo:find_by(Module,
  -                              {'and', [{age, 'not_null'},
  -                                       {age, '=<', 30}
  -                                      ]
  -                              }),
  -
  -  [_] = sumo:find_by(Module,
  -                     {'or', [{age, 'null'},
  -                             {age, '==', 30}
  -                            ]
  -                     }),
  -
  -  [_, _, _, _] = sumo:find_by(Module,
  -                              {'and', [{age, 'not_null'},
  -                                       {age, '/=', 30}
  -                                      ]
  -                              }),
  +  4 = length(sumo:find_by(Module,
  +                          {'and', [{age, 'not_null'},
  +                                   {age, '<', 100}
  +                                  ]
  +                          })),
  +
  +  1 = length(sumo:find_by(Module,
  +                          {'and', [{age, 'not_null'},
  +                                   {age, '>', 100}
  +                                  ]
  +                          })),
  +
  +  0 = length(sumo:find_by(Module,
  +                          {'and', [{age, 'not_null'},
  +                                   {age, '>', 102}
  +                                  ]
  +                          })),
  +
  +  1 = length(sumo:find_by(Module,
  +                          {'and', [{age, 'not_null'},
  +                                   {age, '>=', 102}
  +                                  ]
  +                          })),
  +
  +
  +  3 = length(sumo:find_by(Module,
  +                          {'and', [{age, 'not_null'},
  +                                   {age, '<', 30}
  +                                  ]
  +                          })),
  +
  +  4 = length(sumo:find_by(Module,
  +                          {'and', [{age, 'not_null'},
  +                                   {age, '=<', 30}
  +                                  ]
  +                          })),
  +
  +  1 = length(sumo:find_by(Module,
  +                          {'or', [{age, 'null'},
  +                                  {age, '==', 30}
  +                                 ]
  +                          })),
  +
  +  4 = length(sumo:find_by(Module,
  +                          {'and', [{age, 'not_null'},
  +                                   {age, '/=', 30}
  +                                  ]
  +                          })),
   
     case lists:member(Module, sumo_test_utils:people_with_like()) of
       true ->
  -      [_, _, _, _] = sumo:find_by(Module, {name, 'like', "J%"}),
  -
  -      [_, _] = sumo:find_by(Module, {'and', [{name, 'like', "Ja%"}]}),
  -
  -      [_] = sumo:find_by(Module, {name, 'like', "A%"}),
  -
  -      [_, _] = sumo:find_by(Module, {name, 'like', "%n"});
  +      4 = length(sumo:find_by(Module, {name, 'like', "J%"})),
  +      2 = length(sumo:find_by(Module, {'and', [{name, 'like', "Ja%"}]})),
  +      1 = length(sumo:find_by(Module, {name, 'like', "A%"})),
  +      2 = length(sumo:find_by(Module, {name, 'like', "%n"}));
       false ->
         ok
     end.
  
positive.code: 
  do_null_conditional(Module) ->
    ct:comment("null_conditional with ~p", [Module]),
    [] = sumo:find_by(Module, {age, 'null'}),
  
    [] = sumo:find_by(Module, {address, 'null'}).
  
  operators(_Config) ->
    lists:foreach(
  
negative.code: 
  do_dates(Module) ->
    ct:comment("dates with ~p", [Module]),
    5 = length(sumo:find_all(Module)),
  
    Now = {Today, _} = calendar:universal_time(),
  
    0 = length(sumo:find_by(Module, [{birthdate, '>', Today}])),
    5 = length(sumo:find_by(Module, [{birthdate, '==', Today}])),
    5 = length(sumo:find_by(Module, [{birthdate, '=<', Today}])),
    0 = length(sumo:find_by(Module, [{created_at, '>', Now}])),
    5 = length(sumo:find_by(Module, [{created_at, '=<', Now}])).
  
  backward_compatibility(_Config) ->
    lists:foreach(
  