public void testImpliedFeatures_returnsNewSetInstance() throws Exception { Set<Feature<?>> features = Sets.<Feature<?>>newHashSet(ExampleBaseFeature.BASE_FEATURE_1); assertNotSame(features, FeatureUtil.impliedFeatures(features)); }
public void testImpliedFeatures_returnsImpliedFeatures() throws Exception { Set<Feature<?>> features; features = Sets.<Feature<?>>newHashSet(ExampleDerivedFeature.DERIVED_FEATURE_1); assertTrue(FeatureUtil.impliedFeatures(features).isEmpty()); features = Sets.<Feature<?>>newHashSet(ExampleDerivedFeature.DERIVED_FEATURE_2); assertThat(FeatureUtil.impliedFeatures(features)).contains(ExampleBaseFeature.BASE_FEATURE_1); features = Sets.<Feature<?>>newHashSet(ExampleDerivedFeature.COMPOUND_DERIVED_FEATURE); assertThat(FeatureUtil.impliedFeatures(features)) .containsExactly( ExampleDerivedFeature.DERIVED_FEATURE_1, ExampleDerivedFeature.DERIVED_FEATURE_2, ExampleBaseFeature.BASE_FEATURE_1, ExampleBaseFeature.BASE_FEATURE_2); }
/** * Given a set of features, add to it all the features directly or indirectly * implied by any of them, and return it. * @param features the set of features to expand * @return the same set of features, expanded with all implied features */ public static Set<Feature<?>> addImpliedFeatures(Set<Feature<?>> features) { // The base case of the recursion is an empty set of features, which will // occur when the previous set contained only simple features. if (!features.isEmpty()) { features.addAll(impliedFeatures(features)); } return features; }
public void testImpliedFeatures_returnsNewSetInstance() throws Exception { Set<Feature<?>> features = Sets.<Feature<?>>newHashSet(ExampleBaseFeature.BASE_FEATURE_1); assertNotSame(features, FeatureUtil.impliedFeatures(features)); }
public void testImpliedFeatures_returnsNewSetInstance() throws Exception { Set<Feature<?>> features = Sets.<Feature<?>>newHashSet( ExampleBaseFeature.BASE_FEATURE_1); assertNotSame(features, FeatureUtil.impliedFeatures(features)); }
public void testImpliedFeatures_returnsImpliedFeatures() throws Exception { Set<Feature<?>> features; features = Sets.<Feature<?>>newHashSet(ExampleDerivedFeature.DERIVED_FEATURE_1); assertTrue(FeatureUtil.impliedFeatures(features).isEmpty()); features = Sets.<Feature<?>>newHashSet(ExampleDerivedFeature.DERIVED_FEATURE_2); assertThat(FeatureUtil.impliedFeatures(features)).contains(ExampleBaseFeature.BASE_FEATURE_1); features = Sets.<Feature<?>>newHashSet(ExampleDerivedFeature.COMPOUND_DERIVED_FEATURE); assertThat(FeatureUtil.impliedFeatures(features)) .containsExactly( ExampleDerivedFeature.DERIVED_FEATURE_1, ExampleDerivedFeature.DERIVED_FEATURE_2, ExampleBaseFeature.BASE_FEATURE_1, ExampleBaseFeature.BASE_FEATURE_2); }
public void testImpliedFeatures_returnsImpliedFeatures() throws Exception { Set<Feature<?>> features; features = Sets.<Feature<?>>newHashSet( ExampleDerivedFeature.DERIVED_FEATURE_1); assertTrue(FeatureUtil.impliedFeatures(features).isEmpty()); features = Sets.<Feature<?>>newHashSet( ExampleDerivedFeature.DERIVED_FEATURE_2); ASSERT.that(FeatureUtil.impliedFeatures(features)).has().item( ExampleBaseFeature.BASE_FEATURE_1); features = Sets.<Feature<?>>newHashSet( ExampleDerivedFeature.COMPOUND_DERIVED_FEATURE); ASSERT.that(FeatureUtil.impliedFeatures(features)).has().exactly( ExampleDerivedFeature.DERIVED_FEATURE_1, ExampleDerivedFeature.DERIVED_FEATURE_2, ExampleBaseFeature.BASE_FEATURE_1, ExampleBaseFeature.BASE_FEATURE_2); }