Merge pull request #70 from tuncer/contributing-index-links

pages: link to index from contributing
diff --git a/src/triq_dom.erl b/src/triq_dom.erl
index 6eecd47..fb853c3 100644
--- a/src/triq_dom.erl
+++ b/src/triq_dom.erl
@@ -653,21 +653,18 @@
 largeint() ->
     #?DOM{
         kind=largeint,
-        shrink=fun(Dom,Val) when Val>1 -> {Dom,Val / 10};
-                  (Dom,Val) when Val<1 -> {Dom,Val / 10};
-                  (Dom,_) -> {Dom,0}
+        shrink=fun(Dom,0) -> {Dom,0};
+                  (Dom,Val) -> {Dom,Val div 10}
                end,
         pick=fun(Dom,SampleSize) ->
-                     {Dom,
-                      ?BIGNUM
-                      * SampleSize * triq_rnd:uniform()
-                      * case triq_rnd:uniform(2) of
-                            2 ->
-                                -1;
-                            1 ->
-                                1
-                        end
-                      }
+                     Val = trunc(?BIGNUM * SampleSize * triq_rnd:uniform()),
+                     Sign = case triq_rnd:uniform(2) of
+                                2 ->
+                                    -1;
+                                1 ->
+                                    1
+                            end,
+                     {Dom, Sign * Val}
              end
        }.
 
diff --git a/test/triq_tests.erl b/test/triq_tests.erl
index 18fbdf9..3dc077a 100644
--- a/test/triq_tests.erl
+++ b/test/triq_tests.erl
@@ -55,6 +55,9 @@
 prop_non_neg_integer() ->
     ?FORALL(NonNegInt, non_neg_integer(), NonNegInt >= 0).
 
+prop_large_integer() ->
+    ?FORALL(LargeInt, largeint(), erlang:is_integer(LargeInt)).
+
 prop_append() ->
     ?FORALL({Xs,Ys},{list(int()),list(int())},
             ?TRAPEXIT(lists:reverse(Xs++Ys)
@@ -201,6 +204,12 @@
     3 = X.
 
 %%
+%% Test that largeint() shrinks to 0
+%%
+largeint_shrink_test() ->
+    ?assertEqual([0], triq:counterexample(?FORALL(_, largeint(), false))).
+
+%%
 %% Test that vector doesn't shrink the length
 %%
 vector_test() ->