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