Skip to content

Commit

Permalink
Output diagrams failing to pass the syntax test
Browse files Browse the repository at this point in the history
  • Loading branch information
atextor committed Jan 19, 2024
1 parent edbba10 commit f37bf9d
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 30 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -68,10 +68,8 @@ private Try<Void> writeStreamToOutput( final InputStream in, final OutputStream
}
}

Try<Void> executeDot( final ThrowingConsumer<OutputStream, IOException> contentProvider,
final OutputStream output,
final File workingDir,
final Configuration configuration ) {
Try<Void> executeDot( final ThrowingConsumer<OutputStream, IOException> contentProvider, final OutputStream output,
final File workingDir, final Configuration configuration ) {
final String command = configuration.dotBinary + " -T" + configuration.format.getExtension();
final Process process;
try {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,10 @@
import cool.rdf.ret.diagram.owl.graph.node.ClosedClass;
import cool.rdf.ret.diagram.owl.graph.node.Complement;
import cool.rdf.ret.diagram.owl.graph.node.DataExactCardinality;
import cool.rdf.ret.diagram.owl.graph.node.DataMaximalCardinality;
import cool.rdf.ret.diagram.owl.graph.node.DataMinimalCardinality;
import cool.rdf.ret.diagram.owl.graph.node.DataProperty;
import cool.rdf.ret.diagram.owl.graph.node.Datatype;
import cool.rdf.ret.diagram.owl.graph.node.DisjointUnion;
import cool.rdf.ret.diagram.owl.graph.node.Disjointness;
import cool.rdf.ret.diagram.owl.graph.node.Equality;
Expand All @@ -43,6 +45,7 @@
import cool.rdf.ret.diagram.owl.graph.node.Literal;
import cool.rdf.ret.diagram.owl.graph.node.ObjectExactCardinality;
import cool.rdf.ret.diagram.owl.graph.node.ObjectMaximalCardinality;
import cool.rdf.ret.diagram.owl.graph.node.ObjectMinimalCardinality;
import cool.rdf.ret.diagram.owl.graph.node.ObjectProperty;
import cool.rdf.ret.diagram.owl.graph.node.ObjectQualifiedExactCardinality;
import cool.rdf.ret.diagram.owl.graph.node.ObjectQualifiedMaximalCardinality;
Expand All @@ -52,11 +55,8 @@
import cool.rdf.ret.diagram.owl.graph.node.Rule;
import cool.rdf.ret.diagram.owl.graph.node.Self;
import cool.rdf.ret.diagram.owl.graph.node.Union;
import cool.rdf.ret.diagram.owl.graph.node.ValueRestriction;
import cool.rdf.ret.diagram.owl.graph.node.DataMaximalCardinality;
import cool.rdf.ret.diagram.owl.graph.node.Datatype;
import cool.rdf.ret.diagram.owl.graph.node.ObjectMinimalCardinality;
import cool.rdf.ret.diagram.owl.graph.node.UniversalRestriction;
import cool.rdf.ret.diagram.owl.graph.node.ValueRestriction;
import org.apache.commons.text.StringEscapeUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
Expand Down Expand Up @@ -136,16 +136,11 @@ private static String escapeNodeId( final Node.Id id ) {
@SuppressWarnings( "SpellCheckingInspection" )
private Optional<String> edgeTypeToGraphviz( final Edge.Type type ) {
return switch ( type ) {
case DEFAULT_ARROW:
yield Optional.of( "arrowhead = normal" );
case DASHED_ARROW:
yield Optional.of( "arrowhead = normal, style = dashed" );
case HOLLOW_ARROW:
yield Optional.of( "arrowhead = empty" );
case DOUBLE_ENDED_HOLLOW_ARROW:
yield Optional.of( "dir = both, arrowhead = empty, arrowtail = empty" );
case NO_ARROW:
yield Optional.of( "arrowhead = none" );
case DEFAULT_ARROW -> Optional.of( "arrowhead = normal" );
case DASHED_ARROW -> Optional.of( "arrowhead = normal, style = dashed" );
case HOLLOW_ARROW -> Optional.of( "arrowhead = empty" );
case DOUBLE_ENDED_HOLLOW_ARROW -> Optional.of( "dir = both, arrowhead = empty, arrowtail = empty" );
case NO_ARROW -> Optional.of( "arrowhead = none" );
};
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,32 +19,26 @@
import cool.rdf.ret.diagram.owl.graph.Edge;
import cool.rdf.ret.diagram.owl.graph.GraphElement;
import cool.rdf.ret.diagram.owl.graph.Node;
import cool.rdf.ret.diagram.owl.graph.node.ClosedClass;
import cool.rdf.ret.diagram.owl.graph.node.DisjointUnion;
import cool.rdf.ret.diagram.owl.graph.node.Individual;
import cool.rdf.ret.diagram.owl.graph.node.Inverse;
import cool.rdf.ret.diagram.owl.graph.node.Invisible;
import cool.rdf.ret.diagram.owl.graph.node.ObjectExactCardinality;
import cool.rdf.ret.diagram.owl.graph.node.Self;
import cool.rdf.ret.diagram.owl.graph.node.ValueRestriction;
import cool.rdf.ret.diagram.owl.mappers.DefaultIdentifierMapper;
import cool.rdf.ret.diagram.owl.mappers.DefaultMappingConfiguration;
import cool.rdf.ret.diagram.owl.mappers.IdentifierMapper;
import cool.rdf.ret.diagram.owl.mappers.MappingConfiguration;
import cool.rdf.ret.diagram.owl.graph.node.AnnotationProperty;
import cool.rdf.ret.diagram.owl.graph.node.Class;
import cool.rdf.ret.diagram.owl.graph.node.ClosedClass;
import cool.rdf.ret.diagram.owl.graph.node.Complement;
import cool.rdf.ret.diagram.owl.graph.node.DataExactCardinality;
import cool.rdf.ret.diagram.owl.graph.node.DataMaximalCardinality;
import cool.rdf.ret.diagram.owl.graph.node.DataMinimalCardinality;
import cool.rdf.ret.diagram.owl.graph.node.DataProperty;
import cool.rdf.ret.diagram.owl.graph.node.Datatype;
import cool.rdf.ret.diagram.owl.graph.node.DisjointUnion;
import cool.rdf.ret.diagram.owl.graph.node.Disjointness;
import cool.rdf.ret.diagram.owl.graph.node.Equality;
import cool.rdf.ret.diagram.owl.graph.node.ExistentialRestriction;
import cool.rdf.ret.diagram.owl.graph.node.Individual;
import cool.rdf.ret.diagram.owl.graph.node.Inequality;
import cool.rdf.ret.diagram.owl.graph.node.Intersection;
import cool.rdf.ret.diagram.owl.graph.node.Inverse;
import cool.rdf.ret.diagram.owl.graph.node.Invisible;
import cool.rdf.ret.diagram.owl.graph.node.Literal;
import cool.rdf.ret.diagram.owl.graph.node.ObjectExactCardinality;
import cool.rdf.ret.diagram.owl.graph.node.ObjectMaximalCardinality;
import cool.rdf.ret.diagram.owl.graph.node.ObjectMinimalCardinality;
import cool.rdf.ret.diagram.owl.graph.node.ObjectProperty;
Expand All @@ -53,8 +47,14 @@
import cool.rdf.ret.diagram.owl.graph.node.ObjectQualifiedMinimalCardinality;
import cool.rdf.ret.diagram.owl.graph.node.PropertyChain;
import cool.rdf.ret.diagram.owl.graph.node.PropertyMarker;
import cool.rdf.ret.diagram.owl.graph.node.Self;
import cool.rdf.ret.diagram.owl.graph.node.Union;
import cool.rdf.ret.diagram.owl.graph.node.UniversalRestriction;
import cool.rdf.ret.diagram.owl.graph.node.ValueRestriction;
import cool.rdf.ret.diagram.owl.mappers.DefaultIdentifierMapper;
import cool.rdf.ret.diagram.owl.mappers.DefaultMappingConfiguration;
import cool.rdf.ret.diagram.owl.mappers.IdentifierMapper;
import cool.rdf.ret.diagram.owl.mappers.MappingConfiguration;
import io.vavr.control.Try;
import net.jqwik.api.Arbitraries;
import net.jqwik.api.Arbitrary;
Expand Down Expand Up @@ -215,6 +215,10 @@ public boolean everyGeneratedDiagramIsSyntacticallyValid( @ForAll( "anyGraph" )
.executeDot( contentProvider, output, workingDir, configuration );
if ( executionResult.isFailure() ) {
System.out.println( executionResult.getCause().getMessage() );
System.out.println( "Found invalid dot diagram" );
System.out.println( "=======" );
System.out.println( graphvizDocument );
System.out.println( "=======" );
}
return executionResult.isSuccess();
}
Expand Down

0 comments on commit f37bf9d

Please sign in to comment.