code: public static Knapsack of(final int itemCount, final Random random) {
  		requireNonNull(random);
  
  		return new Knapsack(
  			Stream.generate(() -> Item.random(random))
  				.limit(itemCount)
  				.collect(ISeq.toISeq()),
  			itemCount*100.0/3.0
  		);
  	}
docs: Factory method for creating <i>same</i> Knapsack problems for testing
  purpose.
  
  @param itemCount the number of knapsack items in the basic set
  @param random the random engine used for creating random knapsack items.
  This allows to create reproducible item sets and reproducible
  {@code Knapsack} problems, respectively.
  @return a {@code Knapsack} problem object (for testing purpose).