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