### Question:
FeaturableConfig { @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + clazz.hashCode(); result = prime * result + setup.hashCode(); return result; } FeaturableConfig(String clazz, String setup); static void clearCache(); static FeaturableConfig imports(Configurer configurer); static FeaturableConfig imports(Xml root); static Xml exportClass(String clazz); static Xml exportSetup(String setup); static List<Feature> getFeatures(ClassLoader loader, Services services, Setup setup); String getClassName(); String getSetupName(); @Override int hashCode(); @Override boolean equals(Object object); @Override String toString(); static final String DEFAULT_FILENAME; static final String NODE_FEATURABLE; static final String ATT_CLASS; static final String ATT_SETUP; static final String NODE_FEATURES; static final String NODE_FEATURE; }### Answer:
@Test void testHashCode() { final FeaturableConfig hash = new FeaturableConfig("class", "setup"); assertHashEquals(hash, new FeaturableConfig("class", "setup")); assertHashNotEquals(hash, new FeaturableConfig("", "setup")); assertHashNotEquals(hash, new FeaturableConfig("class", "")); }