### Question:
GenericGermanyKnxProjectCharacteristics extends KnxProjectCharacteristics { @Override public boolean isPrimarySwitch(GroupAddress ga) { boolean isPotentialPrimary = super.isPrimarySwitch(ga); if (!isPotentialPrimary) { LOG.debug("Not a primary switch GA due to DPT mismatch: {}", ga); return false; } GroupAddressDocument doc = groupAddressIndex.get(ga); if (doc == null) { LOG.warn("No index available for GA: {}", ga); return false; } return !containsStatusTerm(doc.nameTerms); }  @Override GroupAddress findMatchingBrightnessGroupAddress(GroupAddress primarySwitchGroupAddress); @Override GroupAddress findMatchingBrightnessStatusGroupAddress(GroupAddress primarySwitchGroupAddress); @Override GroupAddress findMatchingDimGroupAddress(GroupAddress primarySwitchGroupAddress); @Override GroupAddress findMatchingStatusGroupAddress(GroupAddress primarySwitchGroupAddress); @Override boolean isLight(GroupAddress ga); @Override boolean isPrimarySwitch(GroupAddress ga); @Override void learn(List<GroupAddress> groupAddresses);  }### Answer:
@Test public void isPrimarySwitch() throws Exception { assertTrue(characteristics.isPrimarySwitch(gaWithName("Licht Küche Ein/Aus"))); assertFalse(characteristics.isPrimarySwitch(gaWithName("Licht Küche Status Ein/Aus"))); assertFalse(characteristics.isPrimarySwitch(gaWithName("Rückmeldungen Schalten Licht"))); }