В приведённом классе поле называется _mask, а значения 1, 2, 4, 8 и 16 занимают разные биты. Поэтому это стоит проверять как маску, а не как номера последовательных событий: для уже работающих 2, 4, 8 и 16 их объединение даёт 30. В таблице тестов полезно разделить отправленную маску и полученное...