Beispiel #1
0
TEST(FlagStatus, lazy_increase) {
  FlagStatus flagStatus;

  // +1 (total 1)
  flagStatus.lazy_increase(ModifierFlag::SHIFT_L);
  EXPECT_EQ(Flags(0), flagStatus.makeFlags());

  // +0 (total 1)
  flagStatus.lazy_set_enable(true);
  EXPECT_EQ(Flags(ModifierFlag::SHIFT_L), flagStatus.makeFlags());

  // -1 (total 0)
  flagStatus.lazy_decrease(ModifierFlag::SHIFT_L);
  EXPECT_EQ(Flags(0), flagStatus.makeFlags());

  // +1 (total 1)
  flagStatus.lazy_increase(ModifierFlag::SHIFT_L);
  EXPECT_EQ(Flags(ModifierFlag::SHIFT_L), flagStatus.makeFlags());

  flagStatus.lazy_set_enable(false);
  EXPECT_EQ(Flags(0), flagStatus.makeFlags());

  // +2 (total 2)
  flagStatus.lazy_increase(ModifierFlag::SHIFT_L);
  EXPECT_EQ(Flags(0), flagStatus.makeFlags());

  // +0 (total 2)
  flagStatus.lazy_set_enable(true);
  EXPECT_EQ(Flags(ModifierFlag::SHIFT_L), flagStatus.makeFlags());

  // -1 (total 1)
  flagStatus.lazy_decrease(ModifierFlag::SHIFT_L);
  EXPECT_EQ(Flags(ModifierFlag::SHIFT_L), flagStatus.makeFlags());

  // => 0 (lazy modifier is disabled when reset.)
  flagStatus.reset();

  // +1 (total 1)
  flagStatus.lazy_increase(ModifierFlag::SHIFT_L);
  EXPECT_EQ(Flags(0), flagStatus.makeFlags());
}