Beispiel #1
0
        public void BaseRateTest2()
        {
            PayBaseRate br   = new PayBaseRate(100M);
            Employee    empl = new Employee();

            decimal fn(Employee candidat, string dateFrom, string dateTo) =>
            br.Calc(candidat, DatеFromStr(dateFrom), DatеFromStr(dateTo));

            decimal t;

            br.BaseRate = 23000M;
            // проверка расчёта з.п. в пределах одного дня
            t = fn(empl, "01.10.2019", "01.10.2019"); // вторник рабочий день
            Assert.IsTrue(t == 1000M);
            t = fn(empl, "05.10.2019", "05.10.2019"); // суббота выходной день
            Assert.IsTrue(t == 0M);
            t = fn(empl, "06.10.2019", "06.10.2019"); // воскресенье выходной день
            Assert.IsTrue(t == 0M);
            // проверка расчёта з.п. в пределах одного месяца
            t = fn(empl, "01.10.2019", "31.10.2019");
            Assert.IsTrue(t == 23000M);
            t = fn(empl, "07.10.2019", "31.10.2019");
            Assert.IsTrue(t.Equals(19000M));
            t = fn(empl, "01.10.2019", "06.10.2019");
            Assert.IsTrue(t == 4000M);
            // проверка расчёта з.п. в произвольный период
            t = fn(empl, "01.10.2019", "30.11.2019");
            Assert.IsTrue(t.Equals(46000M));
            t = fn(empl, "07.10.2019", "30.11.2019");
            Assert.IsTrue(t.Equals(42000M));
            t = fn(empl, "21.10.2019", "10.11.2019");
            Assert.IsTrue(t.Equals(15571.43M));
            t = fn(empl, "01.01.2019", "31.12.2019");
            Assert.IsTrue(t.Equals(276000M));
            t = fn(empl, "11.10.2019", "10.12.2019");
            Assert.IsTrue(t.Equals(45318.18M));

            t = fn(empl, "10.08.2019", "31.08.2019");
            Assert.IsTrue(t.Equals(15681.82M));
            t = fn(empl, "01.10.2019", "31.12.2019");
            Assert.IsTrue(t.Equals(69000M));
            t = fn(empl, "01.10.2019", "30.09.2020");
            Assert.IsTrue(t.Equals(276000M));
        }
Beispiel #2
0
        public void BaseRateTestGetBusinessDays()
        {
            var br = new PayBaseRate(100M);

            int func(string dateFrom, string dateTo) =>
            br.CalcAmountBusinessDays(DatеFromStr(dateFrom), DatеFromStr(dateTo));

            int t;

            t = func("30.09.2019", "06.10.2019");
            Assert.IsTrue(t == 5);
            t = func("05.10.2019", "27.10.2019");
            Assert.IsTrue(t == 15);
            t = func("02.10.2019", "17.10.2019");
            Assert.IsTrue(t == 12);
            t = func("01.01.2019", "01.02.2019");
            Assert.IsTrue(t == 24);
            t = func("01.01.2019", "09.02.2019");
            Assert.IsTrue(t == 29);
            t = func("01.02.2016", "29.02.2016"); // 2016 высокосный год
            Assert.IsTrue(t == 21);
            t = func("01.02.2016", "09.03.2016"); // 2016 высокосный год
            Assert.IsTrue(t == 28);
            t = func("04.10.2019", "04.10.2019"); // 1 день, пятница
            Assert.IsTrue(t == 1);
            t = func("05.10.2019", "05.10.2019"); // 1 день, суббота
            Assert.Zero(t);
            // проверка реакции на некорректные входные данные
            try
            {
                t = func("01.01.2019", "01.01.2018");
            }
            catch (ArgumentException)
            {
                Assert.IsTrue(true);
            }
            catch
            {
                Assert.IsTrue(false);
            }
        }