use of com.baidu.hugegraph.computer.core.common.exception.ComputerException in project hugegraph-computer by hugegraph.
the class IOFactory method createGraphOutput.
public static GraphOutput createGraphOutput(ComputerContext context, OutputFormat format, RandomAccessOutput out) {
switch(format) {
case BIN:
EntryOutput entryOutput = new EntryOutputImpl(out);
return new StreamGraphOutput(context, entryOutput);
case CSV:
StructRandomAccessOutput srao;
srao = new StructRandomAccessOutput(out);
return new CsvStructGraphOutput(context, srao);
case JSON:
srao = new StructRandomAccessOutput(out);
return new JsonStructGraphOutput(context, srao);
default:
throw new ComputerException("Can't create GraphOutput for %s", format);
}
}
use of com.baidu.hugegraph.computer.core.common.exception.ComputerException in project hugegraph-computer by hugegraph.
the class EdgesInputTest method checkEdgesInput.
private void checkEdgesInput(EdgesInput edgesInput, EdgeFrequency freq) throws IOException {
for (long i = 0L; i < 200L; i += 2) {
Id id = BytesId.of(i);
ReusablePointer idPointer = idToReusablePointer(id);
Edges edges = edgesInput.edges(idPointer);
Iterator<Edge> edgesIt = edges.iterator();
Assert.assertEquals(i, edges.size());
for (int j = 0; j < edges.size(); j++) {
Assert.assertTrue(edgesIt.hasNext());
Edge edge = edgesIt.next();
switch(freq) {
case SINGLE:
Assert.assertEquals(BytesId.of(j), edge.targetId());
break;
case SINGLE_PER_LABEL:
Assert.assertEquals(BytesId.of(j), edge.targetId());
Assert.assertEquals(String.valueOf(j), edge.label());
break;
case MULTIPLE:
Assert.assertEquals(BytesId.of(j), edge.targetId());
Assert.assertEquals(String.valueOf(j), edge.label());
Assert.assertEquals(String.valueOf(j), edge.name());
break;
default:
throw new ComputerException("Illegal edge frequency %s", freq);
}
}
Assert.assertFalse(edgesIt.hasNext());
}
}
use of com.baidu.hugegraph.computer.core.common.exception.ComputerException in project hugegraph-computer by hugegraph.
the class EdgesInputTest method addEdgeBuffer.
private static void addEdgeBuffer(Consumer<NetworkBuffer> consumer, EdgeFrequency freq) throws IOException {
for (long i = 0L; i < 200L; i++) {
Vertex vertex = graphFactory().createVertex();
vertex.id(BytesId.of(i));
int count = (int) i;
if (count == 0) {
continue;
}
Edges edges = graphFactory().createEdges(count);
for (long j = 0; j < count; j++) {
Edge edge = graphFactory().createEdge();
switch(freq) {
case SINGLE:
edge.targetId(BytesId.of(j));
break;
case SINGLE_PER_LABEL:
edge.label(String.valueOf(j));
edge.targetId(BytesId.of(j));
break;
case MULTIPLE:
edge.name(String.valueOf(j));
edge.label(String.valueOf(j));
edge.targetId(BytesId.of(j));
break;
default:
throw new ComputerException("Illegal edge frequency %s", freq);
}
Properties properties = graphFactory().createProperties();
properties.put("p1", new LongValue(i));
edge.properties(properties);
edges.add(edge);
}
vertex.edges(edges);
ReceiverUtil.consumeBuffer(writeEdges(vertex, freq), consumer);
}
}
use of com.baidu.hugegraph.computer.core.common.exception.ComputerException in project hugegraph-computer by hugegraph.
the class ExceptionTest method testComputerException.
@Test
public void testComputerException() {
Assert.assertThrows(ComputerException.class, () -> {
throw new ComputerException("computer exception");
}, e -> {
Assert.assertEquals("computer exception", e.getMessage());
Assert.assertNull(e.getCause());
});
Assert.assertThrows(ComputerException.class, () -> {
throw new ComputerException("computer exception", new IOException());
}, e -> {
Assert.assertEquals("computer exception", e.getMessage());
Assert.assertEquals(IOException.class, e.getCause().getClass());
});
Assert.assertThrows(ComputerException.class, () -> {
throw new ComputerException("computer exception at step %s", 1);
}, e -> {
Assert.assertEquals("computer exception at step 1", e.getMessage());
Assert.assertNull(e.getCause());
});
Assert.assertThrows(ComputerException.class, () -> {
throw new ComputerException("computer exception at step %s", new IOException(), 1);
}, e -> {
Assert.assertEquals("computer exception at step 1", e.getMessage());
Assert.assertEquals(IOException.class, e.getCause().getClass());
});
Throwable rootCause = new IllegalCharsetNameException("invalid");
Assert.assertThrows(ComputerException.class, () -> {
throw new ComputerException("computer exception", new IOException(rootCause));
}, e -> {
Assert.assertEquals("computer exception", e.getMessage());
Assert.assertEquals(IOException.class, e.getCause().getClass());
Assert.assertEquals(rootCause, ComputerException.rootCause(e));
});
}
use of com.baidu.hugegraph.computer.core.common.exception.ComputerException in project hugegraph-computer by hugegraph.
the class ComputerContextUtil method initContext.
public static Config initContext(Map<String, String> params) {
// Set algorithm's parameters
String algorithmParamsName = params.get(ComputerOptions.ALGORITHM_PARAMS_CLASS.name());
AlgorithmParams algorithmParams;
try {
algorithmParams = (AlgorithmParams) Class.forName(algorithmParamsName).newInstance();
} catch (Exception e) {
throw new ComputerException("Can't create algorithmParams, " + "algorithmParamsName = {}", algorithmParamsName);
}
algorithmParams.setAlgorithmParameters(params);
Config config = new DefaultConfig(params);
GraphFactory graphFactory = new BuiltinGraphFactory();
Allocator allocator = new DefaultAllocator(config, graphFactory);
ComputerContext.initContext(config, graphFactory, allocator);
return config;
}
Aggregations