def make_three_and_yield_one_organism(): """Нужно минимум три организма для дифференциальной эволюции.""" population.Organism().save() population.Organism().save() organism = population.Organism() organism.save() yield organism
def test_count(): assert population.count() == 4 org1 = population.Organism() org1._doc.save() assert population.count() == 5 org2 = population.Organism() org2._doc.save() assert population.count() == 6 org1.die() assert population.count() == 5 org2.die() assert population.count() == 4
def test_die(organism): id_ = organism.id organism.die() with pytest.raises(store.IdError) as error: population.Organism(_id=id_) assert str(id_) == str(error.value)
def test_forecast(): org = population.Organism() org.evaluate_fitness(("GAZP", "AKRN"), pd.Timestamp("2020-04-21")) rez = org.forecast(("GAZP", "AKRN"), pd.Timestamp("2020-04-21")) assert isinstance(rez, Forecast) assert rez.date == pd.Timestamp("2020-04-21") assert rez.tickers == ("GAZP", "AKRN")
def test_reload_organism(organism): population.Organism(_id=organism.id) assert organism._doc.llh == 5 assert organism._doc.date == pd.Timestamp("2020-04-12") assert organism._doc.tickers == ["GAZP", "AKRN"] assert organism._doc.model == bytes(6) assert organism._doc.timer > 0 assert organism.wins == 1
def make_weak_organism(): weak = population.Organism() weak._doc.llh = -100 weak._doc.timer = 100 weak._doc.date = pd.Timestamp("2020-04-13") weak._doc.tickers = ("GAZP", "LKOH") yield weak weak.die()
def make_organism(): test_organism = population.Organism() yield test_organism
def test_create_new_organism(): org = population.create_new_organism() assert isinstance(org, population.Organism) assert population.Organism(_id=org.id).id == org.id org.die()
def test_raise_forecast_error(): with pytest.raises(population.ForecastError) as error: population.Organism().forecast(("GAZP", "AKRN"), pd.Timestamp("2020-04-13")) assert isinstance(population.ForecastError(), error.type)