Как определить, какое животное китайского кругового календаря соответствует любому году? Для начала, обнаружим некоторые закономерности.
Пусть М = некоему набору исторических годов:
int[] M = { 1905,1917,1941,1953,1989,2001,2013,2025,2241 };
Тогда, для него справедлив следующий тест:
//((1))
// Набор специальных исторических годов M
static int[] GetSpecialHistoryYears() {
int[] M = { 1905,1917,1941,1953, 1989,2001,2013,2025, 2241 };
return M;
}
//((2))
// Проверяем математические закономерности годов M
[Test]
protected void SpecialHistoryYearsMath() {
int[] M = GetSpecialHistoryYears();
// A и B - индексы массива
// вкладывая A в B мы получаем возможность брать любую пару в массиве M.
for( int A = 0; A < M.Length; A++ ) {
for( int B = 0; B < M.Length; B++ ) {
// разница любой пары в наборе кратна 12
Assert.AreEqual( 0, Math.Abs(M[A]-M[B]) % 12,
"Expected 12x differrence" );
}
}
}