Exemplo n.º 1
0
def test_sequencial_generator_must_not_change_format_when_size_is_float():

    seq = SequencialGenerator(prefix="sq", max_length=2)

    # bugfix: this was previously generating "sq00.0", "sq01.0",...
    assert ["sq00", "sq01", "sq02"] == seq.generate(size=3.3)
    assert ["sq03", "sq04", "sq05"] == seq.generate(size=3.3)
Exemplo n.º 2
0
    def create_distributors_with_sims(self):
        """
        Distributors are similar to dealers, just with much more sims, and the
        stories to buy SIM from them is "by bulks" (though the story is not
        created here)
        """
        logging.info("Creating distributors and their SIM stock  ")

        distributors = self.create_population(name="distros",
                                              size=params["n_distributors"],
                                              ids_gen=SequencialGenerator(
                                                  prefix="DISTRIBUTOR_",
                                                  max_length=1))

        sims = distributors.create_relationship(name="SIM")

        sim_generator = SequencialGenerator(prefix="SIM_", max_length=30)
        sim_ids = sim_generator.generate(params["n_init_sims_distributor"])
        sims_dist = make_random_assign(set1=sim_ids,
                                       set2=distributors.ids,
                                       seed=next(self.seeder))
        sims.add_relations(from_ids=sims_dist["chosen_from_set2"],
                           to_ids=sims_dist["set1"])

        # this tells to the "restock" story of the distributor how many
        # sim should be re-generated to replenish the stocks
        distributors.create_attribute("SIMS_TO_RESTOCK", init_values=0)

        return distributors, sim_generator
Exemplo n.º 3
0
def test_sequencial_generator_should_create_unique_values():

    tested = SequencialGenerator(start=10, prefix="test_p_", max_length=10)

    sizes = [100, 200, 300, 400, 500]
    sets = [set(tested.generate(size)) for size in sizes]

    # generated values should be unique within each set
    all_values = functools.reduce(lambda s1, s2: s1 | s2, sets)

    assert len(all_values) == np.sum(sizes)
Exemplo n.º 4
0
def test_sequencial_generator_read_from_disk_should_continue_sequence():

    with path.tempdir() as p:

        tested = SequencialGenerator(start=10, prefix="o_", max_length=2)

        list_1 = tested.generate(size=4)
        assert list_1 == ["o_10", "o_11", "o_12", "o_13"]

        gen_file = os.path.join(p, "tested.json")
        tested.save_to(gen_file)

        tested2 = Generator.load_generator(gen_type="SequencialGenerator",
                                           input_file=gen_file)

        list_2 = tested2.generate(size=4)
        assert list_2 == ["o_14", "o_15", "o_16", "o_17"]

        # loading it again => we should have the same result
        tested3 = Generator.load_generator(gen_type="SequencialGenerator",
                                           input_file=gen_file)

        list_3 = tested3.generate(size=4)
        assert list_3 == ["o_14", "o_15", "o_16", "o_17"]