public void create_no_couples_when_all_males_are_dead() { for (int i = 0; i < 100; i++) { CivPopKerbal kerbal = builder.build(0); kerbal.SetVesselId(vessel.GetId()); repo.Add(kerbal); if (kerbal.GetGender() == CivPopKerbalGender.MALE) { repo.Kill(kerbal); } } IEnumerable <CivPopCouple> couples = service.makeCouples(0, vessel, repo); Assert.AreEqual(0, couples.Count()); }
protected override void DoUpdate(double date, CivPopRepository repo) { foreach (CivPopKerbal kerbal in repo.GetRoster()) { int age = (int)((date - kerbal.GetBirthdate()) / TimeUnit.YEAR); int chanceOfDeath = GetChanceOfDeath(age); if (chanceOfDeath > 0) { if (rng.Next() % chanceOfDeath == 0) { repo.Kill(kerbal); } } } }
public void launch_a_mission_to_replace_a_dead_crew() { vessel.SetOrbiting(true); vessel.SetBody(KERBIN); vessel.SetMissionType(null); vessel.SetMissionArrival(-1); vessel.SetAllowDocking(true); for (int i = 0; i < 4; i++) { CivPopKerbal kerbal = new CivPopKerbal("kerbal" + i, CivPopKerbalGender.FEMALE, 0, true); repo.Add(kerbal); kerbal.SetVesselId(vessel.GetId()); repo.Kill(kerbal); } service.Update(0, repo); Assert.AreEqual(TimeUnit.DAY * 85, repo.GetVessel("vessel").GetMissionArrival()); Assert.AreEqual("HOMEWORLD", repo.GetVessel("vessel").GetMissionType()); }
public void not_add_rent_for_1_dead_civilian() { CivPopRepository repo = new CivPopRepository(); repo.Add(new CivPopVessel("vessel")); CivPopKerbal valentina = new CivPopKerbal("Valentina", CivPopKerbalGender.FEMALE, 0, true); repo.Add(valentina); valentina.SetVesselId("vessel"); repo.Kill(valentina); CivPopKerbal bill = new CivPopKerbal("Bill", CivPopKerbalGender.MALE, 0, false); repo.Add(bill); bill.SetVesselId("vessel"); CivPopServiceRent service = new CivPopServiceRent(); double date = 0; service.Update(date, repo); Assert.AreEqual(0, repo.GetFunds()); date += 60 * 60; service.Update(date, repo); Assert.AreEqual(0, repo.GetFunds()); date += TimeUnit.DAY; service.Update(date, repo); Assert.AreEqual(0, repo.GetFunds()); date += TimeUnit.DAY; service.Update(date, repo); Assert.AreEqual(0, repo.GetFunds()); }