use of org.cytoscape.filter.internal.filters.composite.CompositeFilterImpl in project cytoscape-impl by cytoscape.
the class CompositeFilterTest method testCompositeFilterEmpty.
@Test
public void testCompositeFilterEmpty() {
NetworkTestSupport networkSupport = new NetworkTestSupport();
CyNetwork network = networkSupport.getNetworkFactory().createNetwork();
network.getDefaultNodeTable().createColumn("s", String.class, false);
CyNode n1 = network.addNode();
network.getRow(n1).set("s", "abc");
CompositeFilter<CyNetwork, CyIdentifiable> composite = new CompositeFilterImpl<>(CyNetwork.class, CyIdentifiable.class);
composite.setType(Type.ANY);
assertTrue(composite.accepts(network, n1));
composite.setType(Type.ALL);
assertTrue(composite.accepts(network, n1));
}
use of org.cytoscape.filter.internal.filters.composite.CompositeFilterImpl in project cytoscape-impl by cytoscape.
the class CompositeFilterTest method testCompositeFilterString.
@Test
public void testCompositeFilterString() {
NetworkTestSupport networkSupport = new NetworkTestSupport();
CyNetwork network = networkSupport.getNetworkFactory().createNetwork();
network.getDefaultNodeTable().createColumn("s", String.class, false);
CyNode n1 = network.addNode();
CyNode n2 = network.addNode();
CyNode n3 = network.addNode();
CyNode n4 = network.addNode();
network.getRow(n1).set("s", "abc");
network.getRow(n2).set("s", "def");
network.getRow(n3).set("s", "aa");
ColumnFilter filterForA = new ColumnFilter("s", Predicate.CONTAINS, "a");
ColumnFilter filterForB = new ColumnFilter("s", Predicate.CONTAINS, "b");
ColumnFilter filterForC = new ColumnFilter("s", Predicate.CONTAINS, "c");
CompositeFilter<CyNetwork, CyIdentifiable> composite = new CompositeFilterImpl<>(CyNetwork.class, CyIdentifiable.class);
composite.append(filterForA);
composite.append(filterForB);
composite.append(filterForC);
composite.setType(Type.ANY);
assertTrue(composite.accepts(network, n1));
assertFalse(composite.accepts(network, n2));
assertTrue(composite.accepts(network, n3));
assertFalse(composite.accepts(network, n4));
composite.setType(Type.ALL);
assertTrue(composite.accepts(network, n1));
assertFalse(composite.accepts(network, n2));
assertFalse(composite.accepts(network, n3));
assertFalse(composite.accepts(network, n4));
}
use of org.cytoscape.filter.internal.filters.composite.CompositeFilterImpl in project cytoscape-impl by cytoscape.
the class CompositeFilterTest method testCompositeFilterAlwaysFalse.
@Test
public void testCompositeFilterAlwaysFalse() {
CompositeFilter<CyNetwork, CyIdentifiable> composite = new CompositeFilterImpl<>(CyNetwork.class, CyIdentifiable.class);
ColumnFilter filterForA = new ColumnFilter();
ColumnFilter filterForB = new ColumnFilter();
ColumnFilter filterForC = new ColumnFilter();
composite.append(filterForA);
composite.append(filterForB);
composite.append(filterForC);
assertTrue(filterForA.isAlwaysFalse());
assertTrue(filterForB.isAlwaysFalse());
assertTrue(filterForC.isAlwaysFalse());
composite.setType(Type.ALL);
assertTrue(composite.isAlwaysFalse());
composite.setType(Type.ANY);
assertTrue(composite.isAlwaysFalse());
filterForA.setColumnName("s");
filterForA.setPredicateAndCriterion(Predicate.CONTAINS, "a");
assertFalse(filterForA.isAlwaysFalse());
composite.setType(Type.ALL);
assertTrue(composite.isAlwaysFalse());
composite.setType(Type.ANY);
assertFalse(composite.isAlwaysFalse());
filterForB.setColumnName("s");
filterForB.setPredicateAndCriterion(Predicate.CONTAINS, "a");
filterForC.setColumnName("s");
filterForC.setPredicateAndCriterion(Predicate.CONTAINS, "a");
composite.setType(Type.ALL);
assertFalse(composite.isAlwaysFalse());
composite.setType(Type.ANY);
assertFalse(composite.isAlwaysFalse());
}
use of org.cytoscape.filter.internal.filters.composite.CompositeFilterImpl in project cytoscape-impl by cytoscape.
the class FilterIOTest method testNestedFilterRoundTrip.
@SuppressWarnings("rawtypes")
@Test
public void testNestedFilterRoundTrip() throws Exception {
DegreeFilter degreeFilter = new DegreeFilter();
degreeFilter.setCriterion(new Double[] { 0.2, 5.5 });
degreeFilter.setEdgeType(CyEdge.Type.ANY);
CompositeFilter<CyNetwork, CyIdentifiable> composite = new CompositeFilterImpl<CyNetwork, CyIdentifiable>(CyNetwork.class, CyIdentifiable.class);
composite.setType(Type.ANY);
composite.append(degreeFilter);
CyTransformerWriter writer = new CyTransformerWriterImpl();
ByteArrayOutputStream stream = new ByteArrayOutputStream();
writer.write(stream, FilterIO.createNamedTransformer("filter1", composite));
String serialized = stream.toString("utf-8");
TransformerManagerImpl transformerManager = new TransformerManagerImpl();
Map<String, String> properties = Collections.emptyMap();
transformerManager.registerFilterFactory(new DegreeFilterFactory(), properties);
transformerManager.registerFilterFactory(new CompositeFilterFactory<CyNetwork, CyIdentifiable>(CyNetwork.class, CyIdentifiable.class), properties);
CyTransformerReaderImpl reader = new CyTransformerReaderImpl();
reader.registerTransformerManager(transformerManager, null);
ByteArrayInputStream inputStream = new ByteArrayInputStream(stream.toByteArray());
NamedTransformer<?, ?>[] transformers = reader.read(inputStream);
Assert.assertNotNull(transformers);
Assert.assertEquals(1, transformers.length);
NamedTransformer<?, ?> namedTransformer = transformers[0];
Assert.assertNotNull(namedTransformer);
Assert.assertEquals("filter1", namedTransformer.getName());
List children = namedTransformer.getTransformers();
Assert.assertEquals(1, children.size());
Transformer child = (Transformer) children.get(0);
Assert.assertNotNull(child);
Assert.assertTrue(child instanceof CompositeFilter);
CompositeFilter composite2 = (CompositeFilter) child;
Assert.assertEquals(composite.getType(), composite2.getType());
Assert.assertEquals(composite.getLength(), composite2.getLength());
Filter filter = composite2.get(0);
Assert.assertTrue(filter instanceof DegreeFilter);
DegreeFilter degreeFilter2 = (DegreeFilter) filter;
Assert.assertArrayEquals((Number[]) degreeFilter.getCriterion(), (Number[]) degreeFilter2.getCriterion());
Assert.assertEquals(degreeFilter.getEdgeType(), degreeFilter2.getEdgeType());
}
Aggregations