Сегодня довольно долго искал простую ошибку. Причём ошибка возникала только на реальных данных и при реальном запуске проекта. Все тесты, которые были, и которые я пытался придумать, код проходил и с этой ошибкой. В конце концов нашёл. Оказалось, что я в одном сравнении использовал не ту переменную, которую нужно было.
Был вот такой код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
LocalDate t = daysInRowList.get(0).minusDays(1); int fullDaysInRowCounter = 1; for (int m = 0; m < daysInRowList.size(); m++) { if (daysInRowList.get(m).compareTo(t) == 0) { fullDaysInRowCounter++; t = t.minusDays(1); } else if (daysInRowList.get(m).compareTo(t) < 0) { break; } } if (fullDaysInRowCounter == tempShift.getWorkSchedule().getMaxShiftsInRow()) { result.setDaysBtwShifts(new Period(recDaysInRow, hrPlanRec .getHrPlan().getPlanTime().toLocalDate()) .toStandardDays().getDays() - 1); } |
Ошибка была в условии: if (fullDaysInRowCounter == tempShift.getWorkSchedule().getMaxShiftsInRow()). Здесь вместо tempShift нужно было использовать переменную hrPlanRec, которая имела несколько другое значение. Я долго изучал этот код, отлаживал его по шагам, пробовал писать разные тесты, но ошибка так и не поддавалась. Тут, скорее всего, воля случая. Если бы сегодня моя голова работала бы немного по-другому, то я бы запросто её нашёл. Честно говоря, уже давно не помню, чтобы так долго искал такие простые ошибки. Неудачно проснулся что-ли.
Вообще такие промедления бывают и у людей других специальностей. Какое-то не слишком удачное строение мозга. Оно вызывает вариативность принятия решений на одних и тех же данных. Воля случая, но не совсем рандом. У всех же было, что в одной и той же ситуации мозг принимал совершенно противоположные решения в зависимости от положения солнца, планет, погоды, настроения, геомагнитной обстановки и прочих вещей.
Два ребёнка за окном верёвку друг у друга перетягивают. Странно, никогда ещё не видел, чтобы в подобное играли в нашем дворе. Ладно. Что-то я совсем от темы отошёл. Дальше тут ещё про вариативность мышления нужно написать, про нестрогую алгебру и прочие кошерные вещи…