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)));
        }
示例#26
0
 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)
 {
 }