@Test
	public void testGenerateOnlyDistributionsWithNaturesFromRestrictions() {
		Set<Nature> natures = new HashSet<>();
		natures.add(neutralNature);
		natures.add(Nature.Possibility.INC_DEF.getNature());
		natures.add(Nature.Possibility.INC_SPDEF.getNature());

		when(restrictionsModel.getAllowedNatures()).thenReturn(natures);

		Set<EVDistribution> initialCollection = evDistributionFactory.getInitialCollection(restrictionsModel);

		int counter = 0;
		for (Nature nature : natures) {
			for (int h = 0; h <= MAX_STAT_EVS; h += EV_STEP) {
				for (int d = 0; d <= MAX_STAT_EVS; d += EV_STEP) {
					for (int s = 0; s <= MAX_STAT_EVS; s += EV_STEP) {
						EVDistribution expectedDistro = new EVDistribution(h, d, s, nature);
						if (h + d + s <= MAX_EVS) {
							assertTrue(initialCollection.contains(expectedDistro));
							++counter;
						} else {
							assertFalse(initialCollection.contains(expectedDistro));
						}
					}
				}
			}
		}
		assertEquals(counter, initialCollection.size());
	}