private INaleznoscPieniezna WezwartoscBezwzglednaNaleznosci(INaleznoscPieniezna roznicaNaleznosci)
        {
            INaleznoscPieniezna naleznoscZero = abstrakcyjnaFabrykaNaleznosciDlaTabeliNaleznosci.StworzNaleznoscPienieznaZerowa();

            if (naleznoscZero.CzyWieksze(roznicaNaleznosci))
            {
                return(roznicaNaleznosci);
            }

            if (roznicaNaleznosci.CzyWieksze(naleznoscZero))
            {
                return(roznicaNaleznosci.Odwrotnosc());
            }

            return(naleznoscZero);
        }
        public void DodajWymianeNalzenosciUaktualniajacKryterium(INaleznoscPieniezna naleznosc,
                                                                 IPolozenieGornotrojkatneWTabeliNaleznosci polozenieWTabeli)
        {
            if (polozenieWTabeli.CzyKoordynatyDiagonalne == true)
            {
                throw new ArrayTypeMismatchException();
            }

            if (polozenieWTabeli.CzyKoordynatyGorntrojkatne == false)
            {
                naleznosc = naleznosc.Odwrotnosc();
            }

            this[polozenieWTabeli] = naleznosc.Suma(this[polozenieWTabeli]);

            KryteriumWyboruTabeliNaleznosci = WezUaktalnioneKryteriumWyboruOZmiane(polozenieWTabeli, naleznosc);
        }
        public void Czy_UstawiaIZwracaZPrzeciwnejStronyTabeli_PrawidlowaWartosc
            (byte indeks_X, byte indeks_Y, int naleznoscWPolgroszach)
        {
            //Ustal
            ITabelaNaleznosciPienieznej tabelaNaleznosciPienieznej = Stworz_TabelaNaleznosciPienieznej.Stworz_Pusty();

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

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

            INaleznoscPieniezna naleznosc = Stworz_NaleznoscPieniezna.Stworz(naleznoscWPolgroszach);

            //Dzialaj
            tabelaNaleznosciPienieznej.DodajWymianeNalzenosciUaktualniajacKryterium(naleznosc, polozenieNaleznosciWTabeli);

            INaleznoscPienieznaSwiadczenie naleznosc_Zwrocona = tabelaNaleznosciPienieznej[polozeniePrzeciwlegleNaleznosciWTabeli];

            //Asercja
            Assert.Equal(naleznosc.Odwrotnosc().Swiadczenie, naleznosc_Zwrocona.Swiadczenie);
        }
예제 #4
0
 public INaleznoscPieniezna Roznica(INaleznoscPieniezna naleznosc)
 {
     return(naleznosc.Odwrotnosc());
 }
예제 #5
0
        private INaleznoscPieniezna this[IPolozenieGornotrojkatneWTabeliNaleznosci polozenieWTabeli]
        {
            get
            {
                INaleznoscPieniezna nowaNaleznoscPieniezna = tabelaKomorekNaleznosci[polozenieWTabeli.Indeks_X][polozenieWTabeli.Indeks_Y];

                return(nowaNaleznoscPieniezna == null?
                       abstrakcyjnaFabrykaNaleznosciDlaTabeliNaleznosci.StworzNaleznoscPienieznaZerowa() :
                           polozenieWTabeli.CzyKoordynatyGorntrojkatne?nowaNaleznoscPieniezna : nowaNaleznoscPieniezna.Odwrotnosc());
            }
            set
            {
                //!Uwaga nie wprowadza zmian w kryterium naleznosci - uzywac jedynie do samej zmiany wartosci!!

                tabelaKomorekNaleznosci[polozenieWTabeli.Indeks_X][polozenieWTabeli.Indeks_Y] = value;
            }
        }