Added hyper:is_hyper/1.
authorKnut Nesheim <knutin@gmail.com>
Thu, 28 May 2015 10:04:51 +0000 (12:04 +0200)
committerKnut Nesheim <knutin@gmail.com>
Thu, 28 May 2015 10:04:51 +0000 (12:04 +0200)
.gitignore
src/hyper.erl
test/hyper_test.erl

index be93a07..425b33e 100644 (file)
@@ -7,3 +7,5 @@ estimates.csv
 erl_crash.dump
 *.so
 *.o
+*.d
+.rebar
\ No newline at end of file
index 9fabba6..f280a8c 100644 (file)
@@ -8,7 +8,7 @@
 -export([new/1, new/2, insert/2, insert_many/2]).
 -export([union/1, union/2]).
 -export([card/1, intersect_card/2]).
--export([to_json/1, from_json/1, from_json/2, precision/1, bytes/1]).
+-export([to_json/1, from_json/1, from_json/2, precision/1, bytes/1, is_hyper/1]).
 -export([compact/1, reduce_precision/2]).
 
 -type precision() :: 4..16.
@@ -39,6 +39,10 @@ new(P) ->
 new(P, Mod) when 4 =< P andalso P =< 16 andalso is_atom(Mod) ->
     #hyper{p = P, registers = {Mod, Mod:new(P)}}.
 
+-spec is_hyper(filter()) -> boolean().
+is_hyper(#hyper{}) -> true;
+is_hyper(_) -> false.
+
 
 -spec insert(value(), filter()) -> filter().
 insert(Value, #hyper{registers = {Mod, Registers}, p = P} = Hyper)
index dfa1157..18d2a87 100644 (file)
@@ -17,6 +17,7 @@ hyper_test_() ->
 
     {foreach, fun () -> ok end, fun (_) -> ok end,
      [
+      ?_test(is_hyper_t()),
       ?_test(basic_t()),
       ?_test(serialization_t()),
       ?_test(reduce_precision_t()),
@@ -39,6 +40,10 @@ hyper_test_() ->
       RunProp(prop_serialize())
      ]}.
 
+is_hyper_t() ->
+    ?assert(hyper:is_hyper(hyper:new(4, hyper_binary))),
+    ?assertNot(hyper:is_hyper(foo)).
+
 basic_t() ->
     [?assertEqual(1, trunc(
                        hyper:card(