def test_sample(self): array = [2, 3, 5, 7, 11, 13] assert sample_indulgent(array, 1)[0] in array for item in sample_indulgent(array, 4): assert item in array for item in sample_indulgent(array, 1000): assert item in array
def generate_nb_possibilities(self, nb_possibilities, **kwargs): """ Returns a list containing `nb_possibilities` examples, chosen at random in the set of all possible examples. Can use the cached examples in some cases (better performances). `kwargs` can contain `variation_name`. @pre: `nb_possibilities` >= 2 (otherwise call `generate_random`) """ max_nb_possibilities = self.get_max_nb_possibilities(**kwargs) if nb_possibilities > max_nb_possibilities: nb_possibilities = max_nb_possibilities if len(self._cached_examples) >= max_nb_possibilities: return sample(self._cached_examples, nb_possibilities) if nb_possibilities < float(max_nb_possibilities) / 5.0: # QUESTION: is 5 a good idea? return self._generate_n_strategy(nb_possibilities, **kwargs) return sample_indulgent(self.generate_all(**kwargs), nb_possibilities) return result
def test_empty(self): assert len(sample_indulgent([], 5)) == 0