提交 4b9be0f9 编写于 作者: M Mathieu Bastian

Add processor tests

上级 c877d9ac
......@@ -141,4 +141,9 @@ public class ColumnDraftImpl implements ColumnDraft {
public boolean isDynamic() {
return dynamic;
}
@Override
public String toString() {
return title + " (" + typeClass.toString() + ")";
}
}
......@@ -77,6 +77,12 @@
<artifactId>org-netbeans-modules-masterfs</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.gephi</groupId>
<artifactId>graph-api</artifactId>
<scope>test</scope>
<type>test-jar</type>
</dependency>
<dependency>
<groupId>org.gephi</groupId>
<artifactId>io-exporter-plugin</artifactId>
......
package org.gephi.io.importer.plugin;
package org.gephi.io.processor.plugin;
import org.gephi.graph.api.GraphModel;
import org.gephi.graph.api.Node;
......
package org.gephi.io.processor.plugin;
import java.util.Collections;
import org.gephi.graph.GraphGenerator;
import org.gephi.graph.api.Configuration;
import org.gephi.graph.api.Edge;
import org.gephi.graph.api.TimeRepresentation;
import org.gephi.graph.api.types.TimestampDoubleMap;
import org.gephi.io.importer.impl.EdgeDraftImpl;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
public class DynamicEdgeWeightTest {
private Utils.TestProcessor processor;
private EdgeDraftImpl edgeDraft;
private Edge edge;
@Before
public void setUp() {
Configuration configuration = new Configuration();
configuration.setEdgeWeightType(TimestampDoubleMap.class);
configuration.setTimeRepresentation(TimeRepresentation.TIMESTAMP);
processor = new Utils.TestProcessor(
GraphGenerator.build(configuration).generateTinyGraph().getGraphModel()
);
edgeDraft = new EdgeDraftImpl(processor.getContainer(), GraphGenerator.FIRST_EDGE);
processor.getContainer().setTimeRepresentation(TimeRepresentation.TIMESTAMP);
edge = processor.graphModel.getGraph().getEdge(GraphGenerator.FIRST_EDGE);
}
@Test
public void testNewEdge() {
processor.getContainer().addEdgeColumn("weight", Double.class, true);
edgeDraft.setValue("weight", new TimestampDoubleMap(new double[] {2.0}, new double[] {4.0}));
processor.flushEdgeWeight(processor.getContainer(), edgeDraft, edge, true);
Assert.assertEquals(Collections.EMPTY_LIST, processor.getReport().getIssuesList(100));
Assert.assertEquals(4.0, edge.getWeight(2.0), 0.0);
}
@Test
public void testMergeWeight() {
edge.setWeight(5.0, 1.0);
processor.getContainer().addEdgeColumn("weight", Double.class, true);
edgeDraft.setValue("weight", new TimestampDoubleMap(new double[] {2.0}, new double[] {4.0}));
processor.flushEdgeWeight(processor.getContainer(), edgeDraft, edge, false);
Assert.assertEquals(Collections.EMPTY_LIST, processor.getReport().getIssuesList(100));
Assert.assertEquals(4.0, edge.getWeight(2.0), 0.0);
Assert.assertEquals(5.0, edge.getWeight(1.0), 0.0);
}
@Test
public void testPreserveEdgeWeight() {
processor.getContainer().addEdgeColumn("weight", Double.class, true);
edge.setWeight(5.0, 1.0);
processor.flushEdgeWeight(processor.getContainer(), edgeDraft, edge, false);
Assert.assertEquals(Collections.EMPTY_LIST, processor.getReport().getIssuesList(100));
Assert.assertEquals(5.0, edge.getWeight(1.0), 0.0);
}
}
package org.gephi.io.processor.plugin;
import org.gephi.graph.GraphGenerator;
import org.gephi.graph.api.Edge;
import org.gephi.io.importer.api.EdgeMergeStrategy;
import org.gephi.io.importer.impl.EdgeDraftImpl;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
public class EdgeWeightTest {
private Utils.TestProcessor processor;
private EdgeDraftImpl edgeDraft;
private Edge edge;
@Before
public void setUp() {
processor = new Utils.TestProcessor(
GraphGenerator.build().generateTinyGraph().getGraphModel()
);
edgeDraft = new EdgeDraftImpl(processor.getContainer(), GraphGenerator.FIRST_EDGE);
edge = processor.graphModel.getGraph().getEdge(GraphGenerator.FIRST_EDGE);
}
@Test
public void testSumMergeStrategy() {
edgeDraft.setWeight(42.0);
processor.flushEdgeWeight(processor.getContainer(), edgeDraft, edge, false);
Assert.assertEquals(edgeDraft.getWeight() + 1, edge.getWeight(), 0.0);
}
@Test
public void testFirstMergeStrategy() {
edgeDraft.setWeight(42.0);
processor.getContainer().setEdgesMergeStrategy(EdgeMergeStrategy.FIRST);
processor.flushEdgeWeight(processor.getContainer(), edgeDraft, edge, false);
Assert.assertEquals(1, edge.getWeight(), 0.0);
}
@Test
public void testLastMergeStrategy() {
edgeDraft.setWeight(42.0);
processor.getContainer().setEdgesMergeStrategy(EdgeMergeStrategy.LAST);
processor.flushEdgeWeight(processor.getContainer(), edgeDraft, edge, false);
Assert.assertEquals(edgeDraft.getWeight(), edge.getWeight(), 0.0);
}
@Test
public void testNoMergeStrategy() {
edgeDraft.setWeight(42.0);
processor.getContainer().setEdgesMergeStrategy(EdgeMergeStrategy.NO_MERGE);
processor.flushEdgeWeight(processor.getContainer(), edgeDraft, edge, false);
Assert.assertEquals(1, edge.getWeight(), 0.0);
}
@Test
public void testAvgMergeStrategy() {
edgeDraft.setWeight(42.0);
processor.getContainer().setEdgesMergeStrategy(EdgeMergeStrategy.AVG);
processor.flushEdgeWeight(processor.getContainer(), edgeDraft, edge, false);
Assert.assertEquals((edgeDraft.getWeight() + 1) / 2, edge.getWeight(), 0.0);
}
@Test
public void testAvgMergeStrategyWithThree() {
processor.getContainer().setEdgesMergeStrategy(EdgeMergeStrategy.AVG);
edge.setWeight(4);
edgeDraft = new EdgeDraftImpl(processor.getContainer(), GraphGenerator.FIRST_EDGE);
edgeDraft.setWeight(10.0);
processor.flushEdgeWeight(processor.getContainer(), edgeDraft, edge, false);
processor.flushEdgeWeight(processor.getContainer(), edgeDraft, edge, false);
Assert.assertEquals((24.0) / 3, edge.getWeight(), 0.0);
}
@Test
public void testMinMergeStrategy() {
edgeDraft.setWeight(42.0);
processor.getContainer().setEdgesMergeStrategy(EdgeMergeStrategy.MIN);
processor.flushEdgeWeight(processor.getContainer(), edgeDraft, edge, false);
Assert.assertEquals(1, edge.getWeight(), 0.0);
}
@Test
public void testMaxMergeStrategy() {
edgeDraft.setWeight(42.0);
processor.getContainer().setEdgesMergeStrategy(EdgeMergeStrategy.MAX);
processor.flushEdgeWeight(processor.getContainer(), edgeDraft, edge, false);
Assert.assertEquals(edgeDraft.getWeight(), edge.getWeight(), 0.0);
}
}
package org.gephi.io.processor.plugin;
import org.gephi.graph.api.GraphModel;
import org.gephi.io.importer.impl.ImportContainerImpl;
public class Utils {
protected static class TestProcessor extends AbstractProcessor {
public TestProcessor(GraphModel graphModel) {
this.graphModel = graphModel;
this.containers = new ImportContainerImpl[] {new ImportContainerImpl()};
}
public ImportContainerImpl getContainer() {
return (ImportContainerImpl) containers[0];
}
@Override
public void process() {
}
@Override
public String getDisplayName() {
return null;
}
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册