When building properties in JSVerify or any other quickcheck tool it is sometimes very imporant to understand how the data is distributed. If you ask for an integer what is the range of integers that are generated? If you ask for an array what is the distribution of array lengths etc.

var jsc = require("jsverify");


describe("dist", function () {
  jsc.property("array length", "array nat", function (arr) {
      console.log("Length, " , arr.length);
      return true;
  });
});

take the code above, we asked it to geenrate arrays of natural numbers, but how long will the arrays be,

A chart showing that most arrays are very short

If you look at this chart over 100 random arrays the max size generated was 6. So if you want to find a more unusual condition you are less likely to find it. For example if you have a fault that might happen from a value being in an array 3 times then the chance of that happening is very small.

If you want to know more on this I am working on a book on doing property based testing in JavaScript, you can preorder it now!