public override void Przetwarzaj(IMapa mapa) { foreach (IRog rog in mapa.Rogi) { PrzypiszRogowiBrzeznosc(rog); } }
public override void Przetwarzaj(IMapa mapa) { foreach (IKomorka komorka in mapa.Komorki) { PrzypiszKomorceBrzeznosc(komorka); } }
public override void Referenciar(IMapa <ObjetoMapeadoComChaveDupla> builder) { builder.Tabela <ObjetoComChaveDupla>() .Campo(c => c.ChaveBase).Propriedade(p => p.MapeadoComChaveBase) .Campo(c => c.ChaveAutoIncremento).Propriedade(p => p.MapeadoComChaveAutoIncremento) .Campo(c => c.Nome).Propriedade(p => p.MapeadoComNome); }
public override void Przetwarzaj(IMapa mapa) { foreach (IPunkt punkt in mapa.Punkty) { punkt.Wysokosc += _zmiana; } }
public override void Przetwarzaj(IMapa mapa) { foreach (IPunkt punkt in mapa.Punkty) { punkt.Wysokosc = punkt.Pozycja.y; } }
public void SetUp() { _mapa = new Mapa(); _przetwarzacz1 = new Przetwarzacz1(); _przetwarzacz2 = new Przetwarzacz2zParametrem(100); _przetwarzacz3 = new Przetwarzacz3(); }
public override void Przetwarzaj(IMapa mapa) { _rand = new Random(_parametryPerlina.Ziarno); var przesuniecieX = (float)_rand.NextDouble() * 4096f; var przesuniecieZ = (float)_rand.NextDouble() * 4096f; float wspolczynnik = 1f; for (int warstwa = 2; warstwa <= _parametryPerlina.IloscWarstw; ++warstwa) { wspolczynnik += Mathf.Pow(_parametryPerlina.ZachowanieSkali, warstwa); } float znormalizowanaSkalaPoczatkowa = _parametryPerlina.Skala/wspolczynnik; foreach (IPunkt punkt in mapa.Punkty) { float wysokosc = 0; for (int warstwa = 0; warstwa < _parametryPerlina.IloscWarstw; ++warstwa) { float gestosc = _parametryPerlina.Gestosc * Mathf.Pow(_parametryPerlina.SkokGestosci, warstwa); // rosnie float skala = znormalizowanaSkalaPoczatkowa * Mathf.Pow(_parametryPerlina.ZachowanieSkali, warstwa); // maleje wysokosc += Mathf.PerlinNoise((punkt.Pozycja.x + przesuniecieX) * gestosc, (punkt.Pozycja.z + przesuniecieZ) * gestosc) *skala; } punkt.Wysokosc = wysokosc; } }
public void PrzetwarzaczZNastępnikiemWywołujeGoPoSobie() { _mapa = new Mapa(); // nie mock, bo testujemy zachowanie związane z rejestracją przetwarzaczy var przetwarzacz = new PustyPrzetwarzaczZNastepnikiem(); _mapa.ZastosujPrzetwarzanie(przetwarzacz); _mapa.ZastosowanePrzetwarzacze.ElementAt(0).ShouldBeType<PustyPrzetwarzaczZNastepnikiem>(); _mapa.ZastosowanePrzetwarzacze.ElementAt(1).ShouldBeType<PustyPrzetwarzacz>(); }
public override void Referenciar(IMapa <FilhoMapeadoDoObjetoMapeadoDeTestes> builder) { builder.Tabela <FilhoDoObjetoDeTestes>() .Campo(c => c.CodigoFilho).Propriedade(p => p.MapeadoComCodigoFilho) .Campo(c => c.NomeFilho).Propriedade(p => p.MapeadoComNomeFilho) .Campo(c => c.CodigoPai).Propriedade(p => p.MapeadoComCodigoPai) .Campo(c => c.Pai).Propriedade(p => p.MapeadoComPai); }
public override void Przetwarzaj(IMapa mapa) { _mapa = mapa; _aktualnaGrubosc = GruboscJednostkowa; _odcinki = new List<IOdcinekRzeki>(); SprobujUtworzycRzeke(); }
public override void Przetwarzaj(IMapa mapa) { foreach (IKomorka komorka in mapa.Komorki.Where(k => k.Dane.Typ == TypKomorki.Lad)) { float normTemp = Mathf.Clamp01( (komorka.Dane.Temperatura + _minTemp)/(_maksTemp - _minTemp)); float normWilg = Mathf.Clamp01( (komorka.Dane.Wilgotnosc + _minWilg) / (_maksWilg - _minWilg)); komorka.Dane.Biom = _konfiguracja.PobierzBiom(normTemp, normWilg); } }
public override void Przetwarzaj(IMapa mapa) { foreach (IKomorka komorka in mapa.Komorki) { komorka.Dane.Temperatura = (Konfiguracja.Baza + komorka.Punkt.Wysokosc*Konfiguracja.ZmianaNaJednostke) * _mnoznikTemperatury; } }
public override void Przetwarzaj(IMapa mapa) { foreach (IKomorka komorka in mapa.Komorki) { if (komorka.Punkt.Wysokosc > _prog) komorka.Dane.Podloze = Podloze.Ziemia; else komorka.Dane.Podloze = Podloze.Woda; } }
public static IList <ItemDicionario> ConsultarItensDicionario(IMapa builder, Type tipo) { var id = 0; var propriedades = tipo.GetProperties(); var itens = from propriedade in propriedades let propriedadeReferenciada = builder.ConsultarPropriedadeDaTabela(propriedade) select ItemDicionarioFactory.CriarItemDicionario(id ++, propriedade, propriedadeReferenciada); return(itens.ToList()); }
public void NastepnicyPunktówGeograficznychSąIchSąsiadami() { _mapa = MakietaKlasyMapa(); var modyfikator = new ProstyModyfikatorWysokosci(); _mapa.ZastosujPrzetwarzanie(modyfikator); var punkt1 = _mapa.Punkty.ElementAt(0); var punkt2 = _mapa.Punkty.ElementAt(1); punkt1.Sasiedzi.ShouldContain(punkt1.Nastepnik); punkt2.Sasiedzi.ShouldContain(punkt2.Nastepnik); }
public override void Przetwarzaj(IMapa mapa) { mapa.KomorkiNiecki.Clear(); foreach (IKomorka komorka in mapa.Komorki) { if(komorka.Dane.Brzeznosc == null) throw new InvalidOperationException("Komórka musi posiadaæ brze¿noœæ, " + "by móc sprawdziæ, czy jest nieck¹"); if(!komorka.Skrajna && LezyWNiecce(komorka)) mapa.KomorkiNiecki.Add(komorka); } }
public override void Przetwarzaj(IMapa mapa) { _zalane = new HashSet<IKomorka>(); foreach (IKomorka inicjator in _inicjatorzyPowodzi) { if (!mapa.Komorki.Contains(inicjator)) throw new ArgumentException("Mapa nie zawiera podanego w konstruktorze inicjatora powodzi"); Rozlewaj(inicjator); } foreach (IKomorka komorka in mapa.Komorki) { PrzypiszKomorceTyp(komorka); } }
public override void Referenciar(IMapa <ObjetoMapeadoDeTestes> builder) { builder.Tabela <ObjetoDeTestes>() .Campo(c => c.Codigo).Propriedade(p => p.MapeadoComCodigo) .Campo(c => c.CodigoNulo).Propriedade(p => p.MapeadoComCodigoNulo) .Campo(c => c.Nome).Propriedade(p => p.MapeadoComNome) .Campo(c => c.Duplo).Propriedade(p => p.MapeadoComDuplo) .Campo(c => c.DuploNulo).Propriedade(p => p.MapeadoComDuploNulo) .Campo(c => c.Decimal).Propriedade(p => p.MapeadoComDecimal) .Campo(c => c.DecimalNulo).Propriedade(p => p.MapeadoComDecimalNulo) .Campo(c => c.Logico).Propriedade(p => p.MapeadoComLogico) .Campo(c => c.DataHora).Propriedade(p => p.MapeadoComDataHora) .Campo(c => c.DataHoraNulo).Propriedade(p => p.MapeadoComDataHoraNulo) .Campo(c => c.Filhos).Propriedade(p => p.MapeadoComFilhos); }
public override void Przetwarzaj(IMapa mapa) { foreach (IKomorka komorka in mapa.Komorki) { if (komorka.Dane.Podloze == Podloze.Woda) { komorka.Punkt.Wysokosc = _poziom; } } foreach (IRog rog in mapa.Rogi) { if (rog.Komorki.All(k => k.Dane.Podloze != Podloze.Ziemia)) rog.Punkt.Wysokosc = _poziom; else if (rog.Punkt.Wysokosc < 0f) rog.Punkt.Wysokosc = 0f; } }
public override void Przetwarzaj(IMapa mapa) { ObejscieNaDziwnyRog(mapa); foreach (var punkt in mapa.Punkty) { if (PunktNalezyDoRoguBedacegoBrzegiemLubMorzemLubDoKomorkiMorskiej(mapa, punkt)) continue; if (!punkt.Sasiedzi.Any( s => s.Wysokosc <= punkt.Wysokosc )) continue; float minimalnaWysokosc = punkt.Sasiedzi.Min(s => s.Wysokosc); punkt.Nastepnik = punkt.Sasiedzi .First(s => s.Wysokosc == minimalnaWysokosc); } }
private static void ReferenciarMapa(Type tipo, IMapa builder) { var tipoMapa = typeof(IMapaEntidade <>); var tipoGenerico = tipoMapa.MakeGenericType(tipo); var mapaPersonalizado = tipo.Assembly.GetTypes().FirstOrDefault(t => tipoGenerico.IsAssignableFrom(t)); if (mapaPersonalizado == null) { throw new NaoFoiPossivelLocalizarMapaRelacionadoException(tipo.Name); } var mapa = Activator.CreateInstance(mapaPersonalizado); if (mapa == null) { throw new NaoFoiPossivelCriarMapaRelacionadoException(tipo.Name); } var referenciar = mapaPersonalizado.GetMethod("Referenciar"); referenciar.Invoke(mapa, new object[] { builder }); }
// pilne napisaæ testy public override void Przetwarzaj(IMapa mapa) { if (_liczbaJezior > mapa.KomorkiNiecki.Count) throw new InvalidOperationException( String.Format("Mapa zawiera mniej niecek ({0}), ni¿ jest jezior do wygenerowania ({1})!", mapa.KomorkiNiecki.Count, _liczbaJezior)); var gen = new Random(); List<IKomorka> nieckiDoObsluzenia = mapa.KomorkiNiecki.OrderBy(n => gen.Next()).Take(_liczbaJezior).ToList(); nieckiDoObsluzenia.ForEach(n => mapa.KomorkiNiecki.Remove(n)); foreach (IKomorka komorkaNiecka in nieckiDoObsluzenia) { komorkaNiecka.Dane.Typ = TypKomorki.Jezioro; IKomorka komNiecka = komorkaNiecka; var doUjeziorzenia = komorkaNiecka.PrzylegleKomorki .Where(p => p.Dane.Brzeznosc == BrzeznoscKomorki.OtwartyLad && !PrzylegaDoKomorkiLezacejNizejNicNiecka(komNiecka, p)); mapa.KomorkiNiecki.Remove(komorkaNiecka); doUjeziorzenia.ToList().ForEach(p => p.Dane.Typ = TypKomorki.Jezioro); } }
public override void Przetwarzaj(IMapa mapa) { _grupy = new Dictionary<IKomorka, List<IPunkt>>(); _komorkiJeziorne = mapa.Komorki .Where(k => k.Dane.Typ == TypKomorki.Jezioro) .ToList(); _odwiedzone = new HashSet<IKomorka>(); foreach (IKomorka komorka in _komorkiJeziorne) { if (!_odwiedzone.Contains(komorka)) Odwiedz(komorka, null); } foreach (List<IPunkt> grupa in _grupy.Values) { float minimalnaWysokosc = grupa.Min(k => k.Wysokosc); grupa.ToList().ForEach(k => k.Wysokosc = minimalnaWysokosc); } }
public override void Przetwarzaj(IMapa mapa) { var komorkiLadowe = mapa.Komorki.Where(k => k.Dane.Podloze == Podloze.Ziemia); foreach (IKomorka komorka in komorkiLadowe) { komorka.Dane.Wilgotnosc = 0f; } foreach (IKomorka modyfikowana in komorkiLadowe) { _odwiedzone = new HashSet<IKomorka>(); _oczekujace = new HashSet<IKomorka>{modyfikowana}; _glebokosci = new Dictionary<IKomorka, int> {{modyfikowana, 1}}; while (_oczekujace.Any()) { IKomorka aktualna = _oczekujace.First(); _oczekujace.Remove(aktualna); DodajSasiadow(aktualna); Odwiedz(modyfikowana, aktualna, _glebokosci[aktualna]); } } }
// pilne zlikwidowaæ problem private static void ObejscieNaDziwnyRog(IMapa mapa) { IRog winowajca = mapa.Rogi.FirstOrDefault(r => float.IsNaN(r.Punkt.Wysokosc)); if (winowajca == null) return; // Debug.LogWarning("Obejœcie usuwaj¹ce dziwny róg s¹siaduj¹cy ze wszystkimi nie znalaz³o tego rogu!"); // //throw new Exception("Obejœcie usuwaj¹ce dziwny róg s¹siaduj¹cy ze wszystkimi nie znalaz³o tego rogu!"); foreach (IPunkt sasiadWinowajcy in winowajca.Punkt.Sasiedzi) { sasiadWinowajcy.Sasiedzi.Remove(winowajca.Punkt); } foreach (IRog bliskiWinowajcy in winowajca.BliskieRogi) { bliskiWinowajcy.BliskieRogi.Remove(winowajca); } foreach (IKomorka komorkaWinowajcy in winowajca.Komorki) { komorkaWinowajcy.Rogi.Remove(winowajca); } mapa.Rogi.Remove(winowajca); //Debug.Log("Punktów o wysokoœci o wartoœci NotANumber: " +mapa.Punkty.Count(p => float.IsNaN(p.Wysokosc))); }
public Dicionario(Type tipo) { if (!typeof(Entidade).IsAssignableFrom(tipo)) { throw new NaoSeraPossivelCriarUmDicionarioDeUmObjetoQueNaoHerdeObjetoBancoException(); } _tipo = tipo; _nome = DataAnnotationHelper.ConsultarNomeDaTabela(tipo); Alias = tipo.Name; _possuiReferencial = ObjetoPossuiOutroObjetoReferenciado(tipo); _mapa = (_possuiReferencial) ? MapaItemDicionarioBuilder.CriarMapaBuilder(tipo) : null; if (_mapa != null) { Alias = tipo.Name; _nome = _mapa.NomeDaTabela; } if (string.Equals(Nome, Alias) || string.IsNullOrEmpty(Alias)) { Alias = null; } _possuiCamposFilhos = false; }
private static bool PunktNalezyDoRoguBedacegoBrzegiemLubMorzemLubDoKomorkiMorskiej(IMapa mapa, IPunkt s) { return mapa.Rogi.Any(r => r.Punkt == s && ((r.Dane.Brzeznosc == BrzeznoscRogu.Brzeg) || (r.Dane.Brzeznosc == BrzeznoscRogu.OtwarteMorze))) || mapa.Komorki.Any(k=>k.Punkt == s && k.Dane.Typ == TypKomorki.Morze); }
public void SetUp() { _mapa = MockInterfejsuMapa(); }
public override void Przetwarzaj(IMapa mapa) { foreach (IKomorka komorka in mapa.Komorki) { komorka.Dane.Podloze = Podloze.Woda; komorka.Dane.Typ = TypKomorki.Morze; } }
public void WydzielaczKomórekNiecekPoprawnieWyznaczaNiecki() { _mapa = MapaDoWyznaczaniaNiecek(); IKomorka k1 = _mapa.Komorki.ElementAt(0); IKomorka k3 = _mapa.Komorki.ElementAt(1); new AktualizatorNastepstwaMapyWysokosci().Przetwarzaj(_mapa); var wydzielacz = new WydzielaczKomorekNiecek(); wydzielacz.Przetwarzaj(_mapa); _mapa.KomorkiNiecki.ShouldContain(k3); _mapa.KomorkiNiecki.ShouldNotContain(k1); }
public abstract void Przetwarzaj(IMapa mapa);
public void WydzielaczKomórekNiecekRzucaWyjątekGdyNieUstalonoBrzeżności() { _mapa = MapaDoWyznaczaniaNiecek(); _mapa.Komorki.ElementAt(0).Dane.Brzeznosc = null; Assert.Throws<InvalidOperationException>(() => new WydzielaczKomorekNiecek().Przetwarzaj(_mapa)); }
public abstract void Referenciar(IMapa <TObjeto> builder);
public void PunktyGeograficznePrzetworzonejMapyMająOdpowiednioPoustawianychNastepnikow() { _mapa = MakietaKlasyMapa(); var modyfikator = new ProstyModyfikatorWysokosci(); _mapa.ZastosujPrzetwarzanie(modyfikator); var punkt1 = _mapa.Punkty.ElementAt(0); var punkt2 = _mapa.Punkty.ElementAt(1); var punkt3 = _mapa.Punkty.ElementAt(2); punkt1.Nastepnik.ShouldEqual(punkt2); punkt2.Nastepnik.ShouldEqual(punkt3); punkt3.Nastepnik.ShouldBeNull(); }
public void ŁańcuchNastępnikówKończySięNaBrzegu() { _mapa = MakietaKlasyMapa(); var modyfikator = new ProstyModyfikatorWysokosci(); var punkt1 = _mapa.Punkty.ElementAt(0); var punkt2 = _mapa.Punkty.ElementAt(1); var punkt3 = _mapa.Punkty.ElementAt(2); _mapa.Rogi.Add(new Rog { Punkt = punkt2, Dane = new DaneRogu { Brzeznosc = BrzeznoscRogu.Brzeg } }); _mapa.ZastosujPrzetwarzanie(modyfikator); punkt1.Nastepnik.ShouldEqual(punkt2); punkt2.Nastepnik.ShouldBeNull(); punkt3.Nastepnik.ShouldBeNull(); }
public void Przetwarzaj(IMapa mapa) { mapa.Punkty.ElementAt(0).Wysokosc = WysokoscPierwszego; mapa.Punkty.ElementAt(1).Wysokosc = WysokoscDrugiego; mapa.Punkty.ElementAt(2).Wysokosc = WysokoscTrzeciego; }
public void Przetwarzaj(IMapa mapa) { }