diff --git a/lib/DayCalculator.dart b/lib/DayCalculator.dart index 3be5cd5..b489374 100644 --- a/lib/DayCalculator.dart +++ b/lib/DayCalculator.dart @@ -49,4 +49,33 @@ class DayCalculator { } } } + + static int getCenturyValue(int year){ + // Returns the century code for the year + // TODO: Implement Julian calendar? + year = (year / 100).floor() * 100; + switch(year){ + case 1700:{ + return 4; + } + case 1800:{ + return 2; + } + case 1900:{ + return 0; + } + case 2000:{ + return 6; + } + case 2100:{ + return 4; + } + case 2200:{ + return 2; + } + default:{ //2300 + return 0; + } + } + } } \ No newline at end of file diff --git a/test/widget_test.dart b/test/widget_test.dart index 4192261..74115cd 100644 --- a/test/widget_test.dart +++ b/test/widget_test.dart @@ -54,4 +54,83 @@ void main() { expect(DayCalculator.getMonthValue(11), equals(5)); }); }); + group("DayCalculator getCenturyValue()", () { + group("1700s", () { + test("1700", (){ + expect(DayCalculator.getCenturyValue(1700), equals(4)); + }); + test("1799", (){ + expect(DayCalculator.getCenturyValue(1799), equals(4)); + }); + test("1777", (){ + expect(DayCalculator.getCenturyValue(1777), equals(4)); + }); + }); + group("1800s", () { + test("1800", (){ + expect(DayCalculator.getCenturyValue(1800), equals(2)); + }); + test("1899", (){ + expect(DayCalculator.getCenturyValue(1899), equals(2)); + }); + test("1843", (){ + expect(DayCalculator.getCenturyValue(1843), equals(2)); + }); + }); + group("1900s", () { + test("1900", (){ + expect(DayCalculator.getCenturyValue(1900), equals(0)); + }); + test("1999", (){ + expect(DayCalculator.getCenturyValue(1999), equals(0)); + }); + test("1938", (){ + expect(DayCalculator.getCenturyValue(1943), equals(0)); + }); + }); + group("2000s", () { + test("2000", (){ + expect(DayCalculator.getCenturyValue(2000), equals(6)); + }); + test("2099", (){ + expect(DayCalculator.getCenturyValue(2099), equals(6)); + }); + test("2064", (){ + expect(DayCalculator.getCenturyValue(2064), equals(6)); + }); + }); + group("2100s", () { + test("2100", (){ + expect(DayCalculator.getCenturyValue(2100), equals(4)); + }); + test("2199", (){ + expect(DayCalculator.getCenturyValue(2199), equals(4)); + }); + test("2158", (){ + expect(DayCalculator.getCenturyValue(2158), equals(4)); + }); + }); + group("2200s", () { + test("2200", (){ + expect(DayCalculator.getCenturyValue(2200), equals(2)); + }); + test("2299", (){ + expect(DayCalculator.getCenturyValue(2299), equals(2)); + }); + test("2249", (){ + expect(DayCalculator.getCenturyValue(2249), equals(2)); + }); + }); + group("2300s", () { + test("2300", (){ + expect(DayCalculator.getCenturyValue(2300), equals(0)); + }); + test("2399", (){ + expect(DayCalculator.getCenturyValue(2399), equals(0)); + }); + test("2304", (){ + expect(DayCalculator.getCenturyValue(23049), equals(0)); + }); + }); + }); }