ScopeTransitiveDependencySelector implements DependencySelector { public boolean selectDependency(Dependency dependency) { switch (transitivity) { case root: return true; case direct: return true; default: { String scope = dependency.getScope(); return ((included.isEmpty() || included.contains(scope)) && (excluded.isEmpty() || !excluded.contains(scope))) && parentSelected; } } } ScopeTransitiveDependencySelector(Collection<String> included, Collection<String> excluded);  ScopeTransitiveDependencySelector(String... excluded); private  ScopeTransitiveDependencySelector(Collection<String> included, Collection<String> excluded, Transitivity transitivity, boolean parentSelected); boolean selectDependency(Dependency dependency); DependencySelector deriveChildSelector(DependencyCollectionContext context); @Override boolean equals(Object o); @Override int hashCode();  }
@Test public void compileInc() { assertThat(selector.selectDependency(compile), is(true)); }
@Test public void testInc() { assertThat(selector.selectDependency(test), is(true)); }