private static IEnumerable <IPolozenieGornotrojkatneWTabeliNaleznosci> GenerujKolejnePolozeniaWymianWRzedzie(ushort iloscWymian, byte indeks_X, byte indeks_Y = 0)
 {
     for (; indeks_Y < indeks_X && iloscWymian-- > 0; indeks_Y++)
     {
         yield return(Stworz_PolozenieWTabeliNaleznosci.Stworz(indeks_X, indeks_Y));
     }
 }
        public void Czy_UstawiaIZwraca_PrawidlowaWartosc(byte indeks_X, byte indeks_Y, int naleznoscWPolgroszach)
        {
            //Ustal
            ITabelaNaleznosciPienieznej tabelaNaleznosciPienieznej = Stworz_TabelaNaleznosciPienieznej.Stworz_Pusty();

            IPolozenieWTabeliNaleznosci polozenieWTabeli = Stworz_PolozenieWTabeliNaleznosci.Stworz(indeks_X, indeks_Y);

            INaleznoscPieniezna naleznoscOczekiwana = Stworz_NaleznoscPieniezna.Stworz(naleznoscWPolgroszach);

            //Dzialaj
            tabelaNaleznosciPienieznej.DodajWymianeNalzenosciUaktualniajacKryterium(naleznoscOczekiwana, polozenieWTabeli);

            INaleznoscPienieznaSwiadczenie naleznosc_Zwrocona = tabelaNaleznosciPienieznej[polozenieWTabeli];

            //Asercja
            Assert.Equal(naleznoscOczekiwana.Swiadczenie, naleznosc_Zwrocona.Swiadczenie);
        }
        private static IEnumerable <string> SporzadKomuniatOBledzieX(int[][] y, ITabelaNaleznosciPienieznejZwrotna tabelaNaleznosciZnalezniona)
        {
            for (byte indeks_X = 1; indeks_X <= y.Length; indeks_X++)
            {
                for (byte indeks_Y = 0; indeks_Y < indeks_X; indeks_Y++)
                {
                    int naleznoscOczekiwana = y[indeks_X - 1][indeks_Y];

                    int naleznoscZTeabeli = tabelaNaleznosciZnalezniona[Stworz_PolozenieWTabeliNaleznosci.Stworz(indeks_X, indeks_Y)].Swiadczenie;

                    if (naleznoscZTeabeli != naleznoscOczekiwana)
                    {
                        yield return(String.Format("W polozeniu {0},{1} oczekiwana byla wartosc {2}, a aktualnie znajduje sie tam {3}.\n"
                                                   , indeks_X.ToString(), indeks_Y.ToString(), naleznoscOczekiwana, naleznoscZTeabeli));
                    }
                }
            }
        }
Пример #4
0
        internal static ITabelaNaleznosciPienieznej Stworz(int sumaNaleznosciDoTabeli, byte iloscOsob = 4,
                                                           KryteriumWyboruTabeliNaleznosciWylicznik kryteriumWyboruTabeliNaleznosci = default(KryteriumWyboruTabeliNaleznosciWylicznik))
        {
            ITabelaNaleznosciPienieznej tabelaNaleznosci = Stworz_Pusty(iloscOsob, kryteriumWyboruTabeliNaleznosci);

            Random GeneratorLiczbPseudolosowych = new Random();

            for (byte indeks_X = 2; indeks_X < iloscOsob; indeks_X++)
            {
                for (byte indeks_Y = 0; indeks_Y < indeks_X; indeks_Y++)
                {
                    int komorka = GeneratorLiczbPseudolosowych.Next(sumaNaleznosciDoTabeli);

                    if (komorka > 0)
                    {
                        sumaNaleznosciDoTabeli -= komorka;

                        IPolozenieWTabeliNaleznosci polozenieWTabeli =
                            Stworz_PolozenieWTabeliNaleznosci.Stworz(indeks_X, indeks_Y);

                        tabelaNaleznosci.
                        DodajWymianeNalzenosciUaktualniajacKryterium(Stworz_NaleznoscPieniezna.Stworz(komorka), polozenieWTabeli);
                    }
                }
            }

            if (sumaNaleznosciDoTabeli > 0)
            {
                IPolozenieWTabeliNaleznosci polozenieWTabeli =
                    Stworz_PolozenieWTabeliNaleznosci.Stworz(1, 0);

                tabelaNaleznosci.
                DodajWymianeNalzenosciUaktualniajacKryterium(Stworz_NaleznoscPieniezna.Stworz(sumaNaleznosciDoTabeli), polozenieWTabeli);
            }

            return(tabelaNaleznosci);
        }
Пример #5
0
        internal static ITabelaNaleznosciPienieznej Stworz(int[][] naleznosciDoTabeliNalznosci,
                                                           KryteriumWyboruTabeliNaleznosciWylicznik kryteriumWyboruTabeliNaleznosci = default(KryteriumWyboruTabeliNaleznosciWylicznik))
        {
            byte iloscOsob = (byte)naleznosciDoTabeliNalznosci.GetLength(0);

            ITabelaNaleznosciPienieznej tabelaNaleznosci = Stworz_Pusty((byte)(iloscOsob + 1), kryteriumWyboruTabeliNaleznosci);

            for (byte indeks_X = 0; indeks_X < iloscOsob; indeks_X++)
            {
                for (byte indeks_Y = 0; indeks_Y <= indeks_X; indeks_Y++)
                {
                    int komorka = naleznosciDoTabeliNalznosci[indeks_X][indeks_Y];

                    if (komorka != 0)
                    {
                        tabelaNaleznosci.
                        DodajWymianeNalzenosciUaktualniajacKryterium(Stworz_NaleznoscPieniezna.Stworz(komorka),
                                                                     Stworz_PolozenieWTabeliNaleznosci.Stworz((byte)(indeks_X + 1), indeks_Y));
                    }
                }
            }

            return(tabelaNaleznosci);
        }
Пример #6
0
        internal static IFabrykaDlaNajlepszaWymianaNalezosciPienieznejZnajdywaczFasada Stworz(Func <ITabelaNaleznosciPienieznej> stworzPustyTabelaNaleznosciPienieznej,
                                                                                              Func <ITabelaNaleznosciPienieznej> stworzTabelaNaleznosciPienieznejNull)
        {
            Mock <IFabrykaDlaNajlepszaWymianaNalezosciPienieznejZnajdywaczFasada> fabryka_Mock =
                new Mock <IFabrykaDlaNajlepszaWymianaNalezosciPienieznejZnajdywaczFasada>
            {
                CallBase = true
            };

            fabryka_Mock.Setup
            (
                fabryka => fabryka.StworzStartowaTabelaNaleznosciPienieznej()
            ).Returns
            (
                () => stworzPustyTabelaNaleznosciPienieznej()
            );

            fabryka_Mock.Setup
            (
                fabryka => fabryka.StworzTabelaNaleznosciPienieznejNull()
            ).Returns
            (
                () => stworzTabelaNaleznosciPienieznejNull()
            );

            fabryka_Mock.Setup
            (
                fabryka => fabryka.StworzPolozenieWTabeliNaleznosci(It.IsAny <byte>(), It.IsAny <byte>())
            ).Returns
            (
                (byte indeks_X, byte indeks_Y) =>
                Stworz_PolozenieWTabeliNaleznosci.Stworz(indeks_X, indeks_Y)
            );

            return(fabryka_Mock.Object);
        }