public void IsLeapMonth() { Dictionary <int, int> d = new Dictionary <int, int> (); d [2001] = 5; d [2004] = 3; d [2006] = 8; d [2009] = 6; d [2012] = 5; d [2014] = 10; d [2017] = 7; d [2020] = 5; d [2023] = 3; d [2025] = 7; // hmm ... d [2028] = 6; d [2031] = 4; // hmmmm ... d [2033] = 12; // hmmmmmm ... d [2036] = 7; for (int y = 2000; y < 2038; y++) { for (int m = 1; m <= 12; m++) { Assert.AreEqual(d.ContainsKey(y) && d [y] == m, cn.IsLeapMonth(y, m), "cn" + y + "/" + m); } } d = new Dictionary <int, int> (); d [90] = 5; d [93] = 3; d [95] = 8; d [98] = 6; d [101] = 5; d [103] = 10; d [106] = 7; d [109] = 5; d [112] = 3; d [114] = 7; d [117] = 6; d [120] = 4; d [122] = 12; d [125] = 7; for (int y = 89; y < 127; y++) { for (int m = 1; m <= 12; m++) { Assert.AreEqual(d.ContainsKey(y) && d [y] == m, tw.IsLeapMonth(y, m), "tw" + y + "/" + m); } } d = new Dictionary <int, int> (); d [13] = 5; d [16] = 3; d [18] = 8; d [21] = 6; d [24] = 4; d [26] = 10; d [29] = 6; for (int y = 12; y < 32; y++) { for (int m = 1; m <= 12; m++) { Assert.AreEqual(d.ContainsKey(y) && d [y] == m, jp.IsLeapMonth(y, m, 4), "jp" + y + "/" + m); } } d = new Dictionary <int, int> (); d [2001] = 5; d [2004] = 3; d [2006] = 8; d [2009] = 6; d [2012] = 4; d [2014] = 10; d [2017] = 6; for (int y = 2000; y < 2020; y++) { for (int m = 1; m <= 12; m++) { Assert.AreEqual(d.ContainsKey(y) && d [y] == m, kr.IsLeapMonth(y, m), "kr" + y + "/" + m); } } }