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)); } } } }
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); }
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); }
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); }