├── CHANGES ├── INSTALL ├── LICENSE ├── MANIFEST.SKIP ├── Makefile.PL ├── README ├── SIGNATURE ├── TODO ├── bench ├── bench.pl ├── serie.pl ├── stress.pl ├── test.dot └── test.txt ├── bin └── graph-easy ├── examples ├── as_ascii ├── as_boxart ├── as_boxart_html ├── as_graphviz ├── as_html ├── as_svg ├── as_txt ├── ascii.pl ├── base.css ├── common.pl ├── complex.txt ├── fun.tpl ├── history.txt ├── html.pl ├── parse ├── syntax.pl ├── syntax.tpl └── wikicrawl.pl ├── lib └── Graph │ ├── Easy.pm │ └── Easy │ ├── As_ascii.pm │ ├── As_graphml.pm │ ├── As_graphviz.pm │ ├── As_txt.pm │ ├── As_vcg.pm │ ├── Attributes.pm │ ├── Base.pm │ ├── Edge.pm │ ├── Edge │ └── Cell.pm │ ├── Group.pm │ ├── Group │ ├── Anon.pm │ └── Cell.pm │ ├── Layout.pm │ ├── Layout │ ├── Chain.pm │ ├── Force.pm │ ├── Grid.pm │ ├── Path.pm │ ├── Repair.pm │ └── Scout.pm │ ├── Node.pm │ ├── Node │ ├── Anon.pm │ ├── Cell.pm │ └── Empty.pm │ ├── Parser.pm │ └── Parser │ ├── Graphviz.pm │ └── VCG.pm ├── t ├── anon.t ├── anon_group.t ├── as_txt.t ├── as_vcg.t ├── ascii.t ├── astar.t ├── attributes.t ├── base.t ├── boxart.t ├── cell.t ├── chain.t ├── class.t ├── cluster.t ├── copy.t ├── custom.t ├── delete.t ├── dot │ └── 4_loose.dot ├── drop.t ├── easypm.t ├── edge.t ├── edge_cell.t ├── fb.t ├── fun │ ├── 0000.txt │ ├── 0010.txt │ ├── 0011.txt │ ├── 0020.txt │ ├── 0030.txt │ ├── 0131.txt │ ├── 0200.txt │ ├── biofuel.txt │ ├── geek_dating.txt │ └── overview.txt ├── gdl.t ├── graph-maker.t ├── graph.t ├── graphml.t ├── graphml_yed.t ├── graphviz.t ├── group.t ├── group │ ├── 0010.txt │ ├── 0131.txt │ └── 0230.txt ├── gv.t ├── heap.t ├── html.t ├── in │ ├── 0_empty_group.txt │ ├── 0_empty_groups.txt │ ├── 10_repair.txt │ ├── 10borders.txt │ ├── 18_multiples.txt │ ├── 1_bidi_loop.txt │ ├── 1_empty_group.txt │ ├── 1_selfloop.txt │ ├── 1_selfloop_2.txt │ ├── 1_selfloop_label.txt │ ├── 1_undirected_loop.txt │ ├── 1node.txt │ ├── 25_autosplit_empty.txt │ ├── 2_autolabel.txt │ ├── 2_autosplit_empty.txt │ ├── 2_autosplit_escaped.txt │ ├── 2_bidi_astar.txt │ ├── 2_bidi_endpoint.txt │ ├── 2_class.txt │ ├── 2_classes.txt │ ├── 2_cluster.txt │ ├── 2_cluster_2.txt │ ├── 2_cluster_3.txt │ ├── 2_dot.txt │ ├── 2_dot_dot_dash.txt │ ├── 2_edges.txt │ ├── 2_flow.txt │ ├── 2_graph_label.txt │ ├── 2_group.txt │ ├── 2_group_labelpos.txt │ ├── 2_group_multicell.txt │ ├── 2_group_no_border.txt │ ├── 2_invisible_left.txt │ ├── 2_invisible_right.txt │ ├── 2_label.txt │ ├── 2_label_align.txt │ ├── 2_list_attr.txt │ ├── 2_long_labels.txt │ ├── 2_newlines.txt │ ├── 2_selfloop.txt │ ├── 2_selfloop_flow_down.txt │ ├── 2_split_bug.txt │ ├── 2_wrap.txt │ ├── 2_zeros.txt │ ├── 2nodes.txt │ ├── 3_autosplit_hang.txt │ ├── 3_bend_bug.txt │ ├── 3_cache_bug.txt │ ├── 3_cluster.txt │ ├── 3_colors.txt │ ├── 3_corrupt.txt │ ├── 3_edge_labels_from_class.txt │ ├── 3_edge_repair.txt │ ├── 3_edge_start.txt │ ├── 3_empty_group.txt │ ├── 3_flow.txt │ ├── 3_group_align_center.txt │ ├── 3_inherit.txt │ ├── 3_invisible_both.txt │ ├── 3_joining.txt │ ├── 3_joint.txt │ ├── 3_joint_short.txt │ ├── 3_list_attr.txt │ ├── 3_lists.txt │ ├── 3_nodes_5_edges.txt │ ├── 3_selfloop.txt │ ├── 3_selfloop_flip.txt │ ├── 3_selfloop_flow_down.txt │ ├── 3_selfloop_flow_left.txt │ ├── 3_selfloop_flow_up.txt │ ├── 3_split_attribute.txt │ ├── 3nodes.txt │ ├── 4_2x2nodes.txt │ ├── 4_att.txt │ ├── 4_autosplit_class.txt │ ├── 4_autosplit_empty.txt │ ├── 4_autosplit_offset.txt │ ├── 4_autosplit_shape.txt │ ├── 4_bend_bug.txt │ ├── 4_bug_basename.txt │ ├── 4_bug_joint_2.txt │ ├── 4_collapse.txt │ ├── 4_comma.txt │ ├── 4_cross.txt │ ├── 4_cross_inv.txt │ ├── 4_cross_split.txt │ ├── 4_cross_split_hor.txt │ ├── 4_edge_cross.txt │ ├── 4_edge_labels.txt │ ├── 4_edge_types.txt │ ├── 4_endless_loop.txt │ ├── 4_endless_loop_2.txt │ ├── 4_flow.txt │ ├── 4_flow_chain.txt │ ├── 4_invisible.txt │ ├── 4_joint.txt │ ├── 4_joint_bug_flags.txt │ ├── 4_list_attr.txt │ ├── 4_lists.txt │ ├── 4_minlen.txt │ ├── 4_near.txt │ ├── 4_node_edge.txt │ ├── 4_nodes_5_edges.txt │ ├── 4_nodes_6_edges.txt │ ├── 4_nodes_edge.txt │ ├── 4groups.txt │ ├── 4groups_class.txt │ ├── 4nodes.txt │ ├── 5_a-star_bug.txt │ ├── 5_arrow_styles.txt │ ├── 5_flow.txt │ ├── 5_group_repair.txt │ ├── 5_group_split.txt │ ├── 5_joint.txt │ ├── 5_joint_bug2.txt │ ├── 5_joint_label.txt │ ├── 5_long_edge_labels.txt │ ├── 5_multicell.txt │ ├── 5_offsets.txt │ ├── 5_offsets_2.txt │ ├── 5_rounded.txt │ ├── 5_tree_joint.txt │ ├── 6_autosplit_class.txt │ ├── 6_chain_10_edges.txt │ ├── 6_chained.txt │ ├── 6_empty_row.txt │ ├── 6_fanout.txt │ ├── 6_group_align.txt │ ├── 6_joint.txt │ ├── 6_multicell.txt │ ├── 6_multicell_offset.txt │ ├── 6_nested_groups.txt │ ├── 6_ranks.txt │ ├── 6_split_join_loop.txt │ ├── 7_cluster.txt │ ├── 7_star.txt │ ├── 7_tree.txt │ ├── 8_align.txt │ ├── 8_basename.txt │ ├── 8_chain.txt │ ├── 8_endless_loop.txt │ ├── 8_flow.txt │ ├── 8_invisible.txt │ ├── 8_labels.txt │ ├── 8_optimize_bend.txt │ ├── 8_points.txt │ ├── 9_chain.txt │ ├── 9_cross.txt │ ├── 9_flow_south.txt │ ├── README │ ├── dot │ │ ├── 0_empty.dot │ │ ├── 10_numbers.dot │ │ ├── 16_split.dot │ │ ├── 2_bool.dot │ │ ├── 2_comment_inside_attr.dot │ │ ├── 2_graph_label_bottom.dot │ │ ├── 2_group_labelloc.dot │ │ ├── 2_ignore.dot │ │ ├── 2_linewidth.dot │ │ ├── 2_no_spaces.dot │ │ ├── 2_nospace.dot │ │ ├── 2_ports.dot │ │ ├── 2_setlinewidth.dot │ │ ├── 2_square_bracket_in_attr.dot │ │ ├── 2_strict.dot │ │ ├── 3_colors.dot │ │ ├── 3_empty_record.dot │ │ ├── 3_empty_record_LR.dot │ │ ├── 3_graph_label_long.dot │ │ ├── 3_ids.dot │ │ ├── 3_invis.dot │ │ ├── 3_node_label.dot │ │ ├── 3_output_lone.dot │ │ ├── 4_cluster_labeljust.dot │ │ ├── 4_compass.dot │ │ ├── 4_html_like.dot │ │ ├── 4_record.dot │ │ ├── 4_strings.dot │ │ ├── 4_uppercase.dot │ │ ├── 5_scope_atr.dot │ │ ├── 5_scopes.dot │ │ ├── 5_scopes_chain.dot │ │ ├── 5_scopes_uni.dot │ │ ├── 6_2_cluster.dot │ │ ├── 6_comments.dot │ │ ├── 6_group_align.dot │ │ ├── 7_record.dot │ │ ├── 9_back.dot │ │ ├── 9_edge_styles.dot │ │ ├── 9_stacking.dot │ │ └── 9_tree.dot │ └── gdl │ │ ├── 1_color_code.gdl │ │ ├── 2_bottom_to_top.gdl │ │ ├── 2_left_to_right.gdl │ │ ├── 2_right_to_left.gdl │ │ └── 2_top_to_bottom.gdl ├── layers.t ├── layout.t ├── layout_r.t ├── layouter.t ├── layouter │ ├── edge_label.txt │ ├── layouter.txt │ ├── layouter_chain.txt │ ├── layouter_loop.txt │ ├── multiples.txt │ └── state.txt ├── messages.t ├── nesting.t ├── node.t ├── node_mc.t ├── out │ ├── 0_empty_group.txt │ ├── 0_empty_groups.txt │ ├── 10_repair.txt │ ├── 10borders.txt │ ├── 18_multiples.txt │ ├── 1_bidi_loop.txt │ ├── 1_empty_group.txt │ ├── 1_selfloop.txt │ ├── 1_selfloop_2.txt │ ├── 1_selfloop_label.txt │ ├── 1_undirected_loop.txt │ ├── 1node.txt │ ├── 25_autosplit_empty.txt │ ├── 2_autolabel.txt │ ├── 2_autosplit_empty.txt │ ├── 2_autosplit_escaped.txt │ ├── 2_bidi_astar.txt │ ├── 2_bidi_endpoint.txt │ ├── 2_class.txt │ ├── 2_classes.txt │ ├── 2_cluster.txt │ ├── 2_cluster_2.txt │ ├── 2_cluster_3.txt │ ├── 2_dot.txt │ ├── 2_dot_dot_dash.txt │ ├── 2_edges.txt │ ├── 2_flow.txt │ ├── 2_graph_label.txt │ ├── 2_group.txt │ ├── 2_group_labelpos.txt │ ├── 2_group_multicell.txt │ ├── 2_group_no_border.txt │ ├── 2_invisible_left.txt │ ├── 2_invisible_right.txt │ ├── 2_label.txt │ ├── 2_label_align.txt │ ├── 2_list_attr.txt │ ├── 2_long_labels.txt │ ├── 2_newlines.txt │ ├── 2_nodes_inv.txt │ ├── 2_selfloop.txt │ ├── 2_selfloop_flow_down.txt │ ├── 2_split_bug.txt │ ├── 2_wrap.txt │ ├── 2_zeros.txt │ ├── 2nodes.txt │ ├── 3_autosplit_hang.txt │ ├── 3_bend_bug.txt │ ├── 3_cache_bug.txt │ ├── 3_cluster.txt │ ├── 3_colors.txt │ ├── 3_corrupt.txt │ ├── 3_edge_labels_from_class.txt │ ├── 3_edge_repair.txt │ ├── 3_edge_start.txt │ ├── 3_empty_group.txt │ ├── 3_flow.txt │ ├── 3_group_align_center.txt │ ├── 3_inherit.txt │ ├── 3_invisible_both.txt │ ├── 3_joining.txt │ ├── 3_joint.txt │ ├── 3_joint_short.txt │ ├── 3_list_attr.txt │ ├── 3_lists.txt │ ├── 3_nodes_5_edges.txt │ ├── 3_selfloop.txt │ ├── 3_selfloop_flip.txt │ ├── 3_selfloop_flow_down.txt │ ├── 3_selfloop_flow_left.txt │ ├── 3_selfloop_flow_up.txt │ ├── 3_split_attribute.txt │ ├── 3nodes.txt │ ├── 4_2x2nodes.txt │ ├── 4_att.txt │ ├── 4_autosplit_class.txt │ ├── 4_autosplit_empty.txt │ ├── 4_autosplit_offset.txt │ ├── 4_autosplit_shape.txt │ ├── 4_bend_bug.txt │ ├── 4_bug_basename.txt │ ├── 4_bug_joint_2.txt │ ├── 4_collapse.txt │ ├── 4_comma.txt │ ├── 4_cross.txt │ ├── 4_cross_inv.txt │ ├── 4_cross_split.txt │ ├── 4_cross_split_hor.txt │ ├── 4_edge_cross.txt │ ├── 4_edge_labels.txt │ ├── 4_edge_types.txt │ ├── 4_endless_loop.txt │ ├── 4_endless_loop_2.txt │ ├── 4_flow.txt │ ├── 4_flow_chain.txt │ ├── 4_invisible.txt │ ├── 4_joint.txt │ ├── 4_joint_bug_flags.txt │ ├── 4_list_attr.txt │ ├── 4_lists.txt │ ├── 4_minlen.txt │ ├── 4_near.txt │ ├── 4_node_edge.txt │ ├── 4_nodes_5_edges.txt │ ├── 4_nodes_6_edges.txt │ ├── 4_nodes_edge.txt │ ├── 4groups.txt │ ├── 4groups_class.txt │ ├── 4nodes.txt │ ├── 5_a-star_bug.txt │ ├── 5_arrow_styles.txt │ ├── 5_flow.txt │ ├── 5_group_repair.txt │ ├── 5_group_split.txt │ ├── 5_joint.txt │ ├── 5_joint_bug2.txt │ ├── 5_joint_label.txt │ ├── 5_long_edge_labels.txt │ ├── 5_multicell.txt │ ├── 5_offsets.txt │ ├── 5_offsets_2.txt │ ├── 5_rounded.txt │ ├── 5_tree_joint.txt │ ├── 6_autosplit_class.txt │ ├── 6_chain_10_edges.txt │ ├── 6_chained.txt │ ├── 6_empty_row.txt │ ├── 6_fanout.txt │ ├── 6_group_align.txt │ ├── 6_joint.txt │ ├── 6_multicell.txt │ ├── 6_multicell_offset.txt │ ├── 6_nested_groups.txt │ ├── 6_ranks.txt │ ├── 6_split_join_loop.txt │ ├── 7_cluster.txt │ ├── 7_star.txt │ ├── 7_tree.txt │ ├── 8_align.txt │ ├── 8_basename.txt │ ├── 8_chain.txt │ ├── 8_endless_loop.txt │ ├── 8_flow.txt │ ├── 8_invisible.txt │ ├── 8_labels.txt │ ├── 8_optimize_bend.txt │ ├── 8_points.txt │ ├── 9_chain.txt │ ├── 9_cross.txt │ ├── 9_flow_south.txt │ ├── dot │ │ ├── 0_empty.txt │ │ ├── 10_numbers.txt │ │ ├── 16_split.txt │ │ ├── 2_bool.txt │ │ ├── 2_comment_inside_attr.txt │ │ ├── 2_graph_label_bottom.txt │ │ ├── 2_group_labelloc.txt │ │ ├── 2_ignore.txt │ │ ├── 2_linewidth.txt │ │ ├── 2_no_spaces.txt │ │ ├── 2_nospace.txt │ │ ├── 2_ports.txt │ │ ├── 2_setlinewidth.txt │ │ ├── 2_square_bracket_in_attr.txt │ │ ├── 2_strict.txt │ │ ├── 3_colors.txt │ │ ├── 3_empty_record.txt │ │ ├── 3_empty_record_LR.txt │ │ ├── 3_graph_label_long.txt │ │ ├── 3_ids.txt │ │ ├── 3_invis.txt │ │ ├── 3_node_label.txt │ │ ├── 3_output_lone.txt │ │ ├── 4_cluster_labeljust.txt │ │ ├── 4_compass.txt │ │ ├── 4_html_like.txt │ │ ├── 4_loose.txt │ │ ├── 4_record.txt │ │ ├── 4_strings.txt │ │ ├── 4_uppercase.txt │ │ ├── 5_scope_atr.txt │ │ ├── 5_scopes.txt │ │ ├── 5_scopes_chain.txt │ │ ├── 5_scopes_uni.txt │ │ ├── 6_2_cluster.txt │ │ ├── 6_comments.txt │ │ ├── 6_group_align.txt │ │ ├── 7_record.txt │ │ ├── 9_back.txt │ │ ├── 9_edge_styles.txt │ │ ├── 9_stacking.txt │ │ └── 9_tree.txt │ ├── drop_result.txt │ └── gdl │ │ ├── 1_color_code.txt │ │ ├── 2_bottom_to_top.txt │ │ ├── 2_left_to_right.txt │ │ ├── 2_right_to_left.txt │ │ └── 2_top_to_bottom.txt ├── parse_att.t ├── parse_edge.t ├── parser.t ├── parser_dot.t ├── parser_dot_html.t ├── path.t ├── pod.t ├── pod_cov.t ├── re_layout.t ├── split.t ├── stress │ ├── 0001.txt │ ├── 0002.txt │ ├── 0003.txt │ ├── 0004.txt │ ├── 0005.txt │ ├── 0006.txt │ ├── 0010.txt │ ├── 0011.txt │ ├── 0012.txt │ ├── 0020.txt │ ├── anon.txt │ └── drop.txt ├── syntax │ ├── 0000.txt │ ├── 0001.txt │ ├── 0002.txt │ ├── 0003.txt │ ├── 0010.txt │ ├── 0011.txt │ ├── 0020.txt │ ├── 0021.txt │ ├── 0030.txt │ ├── 0040.txt │ ├── 0050.txt │ ├── 0060.txt │ ├── 0061.txt │ ├── 0062.txt │ ├── 0063.txt │ ├── 0070.txt │ ├── 0080.txt │ ├── 0090.txt │ ├── 0100.txt │ ├── 0102.txt │ ├── 0110.txt │ ├── 0120.txt │ ├── 0130.txt │ ├── 0131.txt │ ├── 0140.txt │ ├── 0150.txt │ ├── 0160.txt │ ├── 0170.txt │ ├── 0171.txt │ ├── 0180.txt │ ├── 0190.txt │ ├── 0200.txt │ ├── 0210.txt │ ├── 0220.txt │ ├── 0230.txt │ ├── 0240.txt │ ├── 0250.txt │ ├── 0251.txt │ ├── 0252.txt │ └── 0254.txt ├── txt │ ├── 0_empty_group.txt │ ├── 0_empty_groups.txt │ ├── 10_repair.txt │ ├── 10borders.txt │ ├── 18_multiples.txt │ ├── 1_empty_group.txt │ ├── 1_undirected_loop.txt │ ├── 25_autosplit_empty.txt │ ├── 2_autolabel.txt │ ├── 2_autosplit_empty.txt │ ├── 2_autosplit_escaped.txt │ ├── 2_class.txt │ ├── 2_classes.txt │ ├── 2_cluster.txt │ ├── 2_cluster_2.txt │ ├── 2_cluster_3.txt │ ├── 2_dot.txt │ ├── 2_dot_dot_dash.txt │ ├── 2_graph_label.txt │ ├── 2_group.txt │ ├── 2_group_labelpos.txt │ ├── 2_group_multicell.txt │ ├── 2_group_no_border.txt │ ├── 2_invisible_left.txt │ ├── 2_invisible_right.txt │ ├── 2_label.txt │ ├── 2_list_attr.txt │ ├── 2_newlines.txt │ ├── 2_split_bug.txt │ ├── 2_wrap.txt │ ├── 2_zeros.txt │ ├── 3_autosplit_hang.txt │ ├── 3_cache_bug.txt │ ├── 3_cluster.txt │ ├── 3_colors.txt │ ├── 3_corrupt.txt │ ├── 3_edge_labels_from_class.txt │ ├── 3_edge_repair.txt │ ├── 3_edge_start.txt │ ├── 3_empty_group.txt │ ├── 3_group_align_center.txt │ ├── 3_inherit.txt │ ├── 3_invisible_both.txt │ ├── 3_joint.txt │ ├── 3_joint_short.txt │ ├── 3_list_attr.txt │ ├── 3_lists.txt │ ├── 3_nodes_5_edges.txt │ ├── 3_selfloop.txt │ ├── 3_selfloop_flip.txt │ ├── 3_split_attribute.txt │ ├── 4_2x2nodes.txt │ ├── 4_att.txt │ ├── 4_autosplit_class.txt │ ├── 4_autosplit_empty.txt │ ├── 4_autosplit_offset.txt │ ├── 4_autosplit_shape.txt │ ├── 4_bug_basename.txt │ ├── 4_bug_joint_2.txt │ ├── 4_collapse.txt │ ├── 4_comma.txt │ ├── 4_cross.txt │ ├── 4_cross_inv.txt │ ├── 4_cross_split.txt │ ├── 4_cross_split_hor.txt │ ├── 4_edge_cross.txt │ ├── 4_edge_labels.txt │ ├── 4_endless_loop.txt │ ├── 4_endless_loop_2.txt │ ├── 4_flow.txt │ ├── 4_flow_chain.txt │ ├── 4_invisible.txt │ ├── 4_joint.txt │ ├── 4_joint_bug_flags.txt │ ├── 4_list_attr.txt │ ├── 4_lists.txt │ ├── 4_minlen.txt │ ├── 4_near.txt │ ├── 4_node_edge.txt │ ├── 4_nodes_5_edges.txt │ ├── 4_nodes_6_edges.txt │ ├── 4groups.txt │ ├── 4groups_class.txt │ ├── 5_arrow_styles.txt │ ├── 5_flow.txt │ ├── 5_group_split.txt │ ├── 5_joint.txt │ ├── 5_joint_bug2.txt │ ├── 5_joint_label.txt │ ├── 5_long_edge_labels.txt │ ├── 5_multicell.txt │ ├── 5_offsets.txt │ ├── 5_offsets_2.txt │ ├── 5_rounded.txt │ ├── 5_tree_joint.txt │ ├── 6_autosplit_class.txt │ ├── 6_chain_10_edges.txt │ ├── 6_chained.txt │ ├── 6_empty_row.txt │ ├── 6_fanout.txt │ ├── 6_group_align.txt │ ├── 6_joint.txt │ ├── 6_multicell.txt │ ├── 6_multicell_offset.txt │ ├── 6_nested_groups.txt │ ├── 6_ranks.txt │ ├── 6_split_join_loop.txt │ ├── 7_cluster.txt │ ├── 7_star.txt │ ├── 7_tree.txt │ ├── 8_align.txt │ ├── 8_basename.txt │ ├── 8_chain.txt │ ├── 8_endless_loop.txt │ ├── 8_flow.txt │ ├── 8_invisible.txt │ ├── 8_labels.txt │ ├── 8_optimize_bend.txt │ ├── 8_points.txt │ ├── 9_chain.txt │ ├── 9_cross.txt │ ├── 9_flow_south.txt │ ├── dot │ │ ├── 0_empty.txt │ │ ├── 10_numbers.txt │ │ ├── 16_split.txt │ │ ├── 2_bool.txt │ │ ├── 2_comment_inside_attr.txt │ │ ├── 2_graph_label_bottom.txt │ │ ├── 2_group_labelloc.txt │ │ ├── 2_ignore.txt │ │ ├── 2_linewidth.txt │ │ ├── 2_no_spaces.txt │ │ ├── 2_nospace.txt │ │ ├── 2_ports.txt │ │ ├── 2_setlinewidth.txt │ │ ├── 2_square_bracket_in_attr.txt │ │ ├── 2_strict.txt │ │ ├── 3_colors.txt │ │ ├── 3_empty_record.txt │ │ ├── 3_empty_record_LR.txt │ │ ├── 3_graph_label_long.txt │ │ ├── 3_ids.txt │ │ ├── 3_invis.txt │ │ ├── 3_node_label.txt │ │ ├── 3_output_lone.txt │ │ ├── 4_cluster_labeljust.txt │ │ ├── 4_compass.txt │ │ ├── 4_html_like.txt │ │ ├── 4_loose.txt │ │ ├── 4_record.txt │ │ ├── 4_strings.txt │ │ ├── 4_uppercase.txt │ │ ├── 5_scope_atr.txt │ │ ├── 5_scopes.txt │ │ ├── 5_scopes_chain.txt │ │ ├── 5_scopes_uni.txt │ │ ├── 6_2_cluster.txt │ │ ├── 6_comments.txt │ │ ├── 6_group_align.txt │ │ ├── 7_record.txt │ │ ├── 9_back.txt │ │ ├── 9_edge_styles.txt │ │ ├── 9_stacking.txt │ │ └── 9_tree.txt │ └── gdl │ │ ├── 1_color_code.txt │ │ ├── 2_bottom_to_top.txt │ │ ├── 2_left_to_right.txt │ │ ├── 2_right_to_left.txt │ │ └── 2_top_to_bottom.txt ├── use_class.t └── vcg.t └── tag-release.pl /MANIFEST.SKIP: -------------------------------------------------------------------------------- 1 | ^blib.* 2 | ^fun\z 3 | ^gdl 4 | ^Graph-Easy-[0-9] 5 | ^Makefile.(old|bak)\z 6 | ^Makefile\z 7 | ^[^\\\/]*\.pl 8 | pm_to_blib 9 | \.svn 10 | .*\.tar\.gz 11 | tmon.out 12 | ^todos[\\\/] 13 | ^[\w\._-]+\.(html|txt|png|gif|dot|pl|svg|old|bak|org|vcg|gdl|ps|graphml) 14 | ^wikicrawl 15 | ~\z 16 | .*\.swp 17 | -------------------------------------------------------------------------------- /bench/test.dot: -------------------------------------------------------------------------------- 1 | digraph GRAPH_0 { 2 | 3 | // Generated by Graph::Easy 0.38 at Sat Dec 31 16:13:04 2005 4 | 5 | edge [ arrowhead=open ]; 6 | graph [ rankdir=LR ]; 7 | node [ 8 | fontsize=11, 9 | fillcolor=white, 10 | style=filled, 11 | shape=box ]; 12 | 13 | Berlin [ URL="/wiki/index.php/Berlin" ] 14 | Bonn [ URL="/wiki/index.php/Bonn" ] 15 | 16 | Bonn -> Berlin 17 | 18 | } 19 | -------------------------------------------------------------------------------- /bench/test.txt: -------------------------------------------------------------------------------- 1 | graph { autolink: name; } 2 | [ Bonn ] -> [ Berlin ] 3 | -------------------------------------------------------------------------------- /examples/history.txt: -------------------------------------------------------------------------------- 1 | [ Bonn ] -> [ Berlin ] 2 | [ Berlin ] -> [ Frankfurt ] 3 | [ Frankfurt ] -> [ Dresden ] 4 | [ Berlin ] -> [ Potsdam ] 5 | [ Potsdam ] -> [ Cottbus ] { border-color: red; } 6 | [ Cottbus ] -> [ Frankfurt ] 7 | -------------------------------------------------------------------------------- /t/dot/4_loose.dot: -------------------------------------------------------------------------------- 1 | graph { 2 | A--B 3 | B--C 4 | C--D 5 | D--A 6 | } 7 | -------------------------------------------------------------------------------- /t/fun/0000.txt: -------------------------------------------------------------------------------- 1 | # Example from Graphviz extension 2 | # http://www.wickle.com/wiki/index.php/Graphviz_extension 3 | 4 | node.red { background: red; } 5 | 6 | [ ns ] { class: red } -> [ addons ] 7 | -> [ metamod ] { class: red } 8 | -> [ dlls2 ] { label: dlls } 9 | 10 | [ metamod ] -> [ doc ] -> [html ] 11 | 12 | [ ns ] -> [ logs ] 13 | [ ns ] -> [ gfx ] -> [ vgui ] 14 | [ addons ] -> [ amxmodx ] -> [ configs ] { class: red } 15 | 16 | [ amxmodx ] -> [ data ] -> [ lang ] 17 | [ amxmodx ] -> [ dlls ] 18 | [ amxmodx ] -> [ plugins ] { class: red } 19 | 20 | [ doc ] -> [ txt ] 21 | 22 | 23 | -------------------------------------------------------------------------------- /t/fun/0010.txt: -------------------------------------------------------------------------------- 1 | # Elan and Roy on Teamwork 2 | # http://www.cafepress.com/orderofthestick.10272636?zoom=yes#zoom 3 | 4 | [ Teamwork ] { fill: yellow; title: Elan; } 5 | -- is the key to --> [ Victory ] { fill: red; title: Roy; } 6 | -------------------------------------------------------------------------------- /t/fun/0011.txt: -------------------------------------------------------------------------------- 1 | # Elan and Roy on Teamwork 2 | # http://www.cafepress.com/orderofthestick.10272636?zoom=yes#zoom 3 | 4 | [ Teamwork ] { fill: yellow; title: Elan; } 5 | -- is the key to --> [ Victory ] { fill: red; title: Roy; } 6 | 7 | [ Victory ] -- the order of the --> [ Stick ] { fill: #ff80a0; } 8 | [ Victory ] -- Treasure --> [ Haley ] { fill: lightblue; } 9 | -------------------------------------------------------------------------------- /t/fun/0020.txt: -------------------------------------------------------------------------------- 1 | # Enlightment 2 | # http://bloodgate.com/perl/graph/ 3 | 4 | [ Textual description ] { fill: #804020; } 5 | -> [ Parser ] { fill: #a06040; } 6 | -> [ Layouter ] { fill: #d08060; } 7 | -> [ Output (ASCII/HTML) ] { fill: #ffa090; } 8 | -------------------------------------------------------------------------------- /t/fun/0030.txt: -------------------------------------------------------------------------------- 1 | # Example from Graphviz extension 2 | # http://www.wickle.com/wiki/index.php/Graphviz_extension 3 | 4 | node { shape: circle; } 5 | 6 | [ main ] { shape: rect; } # this is a comment 7 | -> [ parse ] 8 | -> [ execute ] 9 | -> [ make_string ] { label: make a\n string; } 10 | 11 | [ main ] ..> [ init ] 12 | [ main ] -- Testlabel --> [ cleanup ] 13 | 14 | [ init ] -> [ make_string ] 15 | 16 | [ main ] == 100 times ==> { color: red; style: bold; } [ printf ] # bold red edge! 17 | 18 | [ execute ] -> { color: red; } [ compare ] { shape: rect; background: #c1b2ff; } 19 | -------------------------------------------------------------------------------- /t/fun/0131.txt: -------------------------------------------------------------------------------- 1 | # Three non-overlapping groups 2 | 3 | group.dmz { fill: #ffa070; } 4 | group.outer { fill: #f07070; } 5 | 6 | ( Internal Network: 7 | [ Workstation ] 8 | ) { fill: #70b070; } 9 | 10 | [ Workstation ] --> [ Inner Firewall ] 11 | 12 | ( DMZ: 13 | [ Inner Firewall ] -> [ Proxy ] 14 | --> [ Outer Firewall ] 15 | [ Proxy ] --> [ Database\n Server ] 16 | ) { class: dmz; } 17 | 18 | ( Outer: 19 | [ Internet ] 20 | ) { class: outer } 21 | 22 | [ Outer Firewall ] --> [ Internet ] 23 | 24 | -------------------------------------------------------------------------------- /t/fun/0200.txt: -------------------------------------------------------------------------------- 1 | # Example from: http://wiki.debian.org.hk/w/Generate_SSL_cert 2 | # http://wiki.debian.org.hk/w/Generate_SSL_cert 3 | 4 | [ Start ] { shape: rounded; } 5 | -- openssl\n genrsa --> [ key ] 6 | -- openssl\n req --> [ Certificate\n Signing\n Request\n (CSR) ] 7 | -> [ CA ] { label: "Certificate\n Authority\n (CA)"; shape: circle; } 8 | -> [ Certificate\n (CRT) ] 9 | 10 | [ CA ] -> [ Certificate\n Revocation\n List\n (CRL) ] 11 | 12 | [ CA Key ] -> [ CA ] 13 | 14 | -------------------------------------------------------------------------------- /t/group/0010.txt: -------------------------------------------------------------------------------- 1 | # Elan and Roy on Teamwork 2 | # http://www.cafepress.com/orderofthestick.10272636?zoom=yes#zoom 3 | 4 | [ Teamwork ] { background: yellow; title: Elan; } 5 | -is the key to --> [ Victory ] { background: red; title: Roy; } 6 | --> [ Order of the Stick ] { background: #f080a0; } 7 | [ Victory ] -Treasure--> [ Haley ] { background: lightblue; } 8 | -------------------------------------------------------------------------------- /t/group/0131.txt: -------------------------------------------------------------------------------- 1 | # Three non-overlapping groups 2 | 3 | group.dmz { background: #ffa070; } 4 | group.outer { background: #f07070; } 5 | 6 | ( Internal Network 7 | [ Workstation ] 8 | ) { background: #70b070; } 9 | 10 | [ Workstation ] --> [ Inner Firewall ] 11 | 12 | ( DMZ 13 | [ Inner Firewall ] -> [ Proxy ] 14 | --> [ Outer Firewall ] 15 | ) { class: dmz; } 16 | 17 | ( Outer 18 | [ Internet ] 19 | ) { class: outer } 20 | 21 | [ Outer Firewall ] --> [ Internet ] 22 | 23 | [ Proxy ] --> [ Database ] 24 | -------------------------------------------------------------------------------- /t/group/0230.txt: -------------------------------------------------------------------------------- 1 | # groups (with border none) 2 | group.cities { label: Cities; } 3 | 4 | ( Cities 5 | [ Ulm ] -> [ Lahn ] -> [ Bonn ] 6 | -> [ Trier ] 7 | ) { class: cities; background: #ff80a0; border: none; } 8 | 9 | [ Koblenz ] -> [ Berlin ] 10 | [ Frankfurt ] 11 | -------------------------------------------------------------------------------- /t/in/0_empty_group.txt: -------------------------------------------------------------------------------- 1 | (Group without a name) 2 | -------------------------------------------------------------------------------- /t/in/0_empty_groups.txt: -------------------------------------------------------------------------------- 1 | ()->()->() 2 | -------------------------------------------------------------------------------- /t/in/10borders.txt: -------------------------------------------------------------------------------- 1 | # Different border styles 2 | [ Solid ] ..> [ Dotted ] { border: dotted; } 3 | [ Dashed ] { border: dashed; } ==> [ none ] { border: none; } 4 | [ dot-dash ] { border: dot-dash; } - > [ Bold ] { border: bold; } 5 | [ dot-dot-dash ] { border: dot-dot-dash; } .-> [ wave ] { border: wave; } 6 | [ double-dash ] { border: double-dash; } ~~> [ Double ] { border: double; } 7 | 8 | -------------------------------------------------------------------------------- /t/in/18_multiples.txt: -------------------------------------------------------------------------------- 1 | node { background: yellow; } 2 | 3 | 4 | [ Bonn ] ..> [ Berlin ] -> [ Kassel ] 5 | [ Bonn ] .-> [ Koblenz ] 6 | [ Bonn ] -> [ Ulm ] -> [ Koblenz ] 7 | [ Ulm ] -> [ Bautzen ] -> [ Berlin ] 8 | 9 | [ 1Bonn ] ..> [ 1Berlin ] -> [ 1Kassel ] 10 | [ 1Bonn ] .-> [ 1Koblenz ] 11 | [ 1Bonn ] -> [ 1Ulm ] -> [ 1Koblenz ] 12 | [ 1Ulm ] -> [ 1Bautzen ] -> [ 1Berlin ] 13 | 14 | 15 | [ 2Bonn ] ..> [ 2Berlin ] -> [ 2Kassel ] 16 | [ 2Bonn ] .-> [ 2Koblenz ] 17 | [ 2Bonn ] -> [ 2Ulm ] -> [ 2Koblenz ] 18 | [ 2Ulm ] -> [ 2Bautzen ] -> [ 2Berlin ] 19 | 20 | -------------------------------------------------------------------------------- /t/in/1_bidi_loop.txt: -------------------------------------------------------------------------------- 1 | [ Hamm ] <--> [ Hamm ] 2 | [ Hamm ] <--> [ Hamm ] 3 | [ Hamm ] <--> [ Hamm ] 4 | [ Hamm ] <--> [ Hamm ] 5 | -------------------------------------------------------------------------------- /t/in/1_empty_group.txt: -------------------------------------------------------------------------------- 1 | ( Group 2 | ) { background: yellow; } 3 | 4 | [ Outside ] 5 | -------------------------------------------------------------------------------- /t/in/1_selfloop.txt: -------------------------------------------------------------------------------- 1 | [ One ] --> [ One ] 2 | -------------------------------------------------------------------------------- /t/in/1_selfloop_2.txt: -------------------------------------------------------------------------------- 1 | [ Main ] -- Until not done --> [ Main ] 2 | [ Main ] -- Until not done --> [ Main ] 3 | [ Main ] -- Until not done --> [ Main ] 4 | [ Main ] -- Until not done --> [ Main ] 5 | -------------------------------------------------------------------------------- /t/in/1_selfloop_label.txt: -------------------------------------------------------------------------------- 1 | [ Freiburg ] -- Alle Jahre Wieder --> [ Freiburg ] 2 | -------------------------------------------------------------------------------- /t/in/1_undirected_loop.txt: -------------------------------------------------------------------------------- 1 | [A] -- [A ] -- [ A ] -- [ A ] -- [A] 2 | -------------------------------------------------------------------------------- /t/in/1node.txt: -------------------------------------------------------------------------------- 1 | [ One ] 2 | -------------------------------------------------------------------------------- /t/in/25_autosplit_empty.txt: -------------------------------------------------------------------------------- 1 | [ | C | ] 2 | [ | D | ] 3 | [ | E | ] 4 | [ | F | ] 5 | [|G|] 6 | [ |H| |] 7 | 8 | [ C.2 ] -> [ A1 ] 9 | [ D.2 ] -> [ A2 ] 10 | [ E.2 ] -> [ A3 ] 11 | [ F.2 ] -> [ A4 ] 12 | [ G.2 ] -> [ A5 ] 13 | [ H.3 ] -> [ A6 ] 14 | -------------------------------------------------------------------------------- /t/in/2_autolabel.txt: -------------------------------------------------------------------------------- 1 | graph { autolabel: name, 20; autotitle: name; } 2 | 3 | [ Bonn ] { label: Bonn (ehemalige Bundeshauptstadt); } -- Acme Travels Incorporated --> [ Frankfurt (Main) / Flughafen ] 4 | 5 | -------------------------------------------------------------------------------- /t/in/2_autosplit_empty.txt: -------------------------------------------------------------------------------- 1 | [ Siegen | Siegburg ] 2 | -------------------------------------------------------------------------------- /t/in/2_autosplit_escaped.txt: -------------------------------------------------------------------------------- 1 | 2 | [ A \| B | C ] 3 | -------------------------------------------------------------------------------- /t/in/2_bidi_astar.txt: -------------------------------------------------------------------------------- 1 | [ Bad Schandau ] { offset: 3,0; origin: Erfurt; } 2 | [ Erfurt ] { size: 2,3; } 3 | 4 | [ Erfurt ] <--> [ Bad Schandau ] 5 | -------------------------------------------------------------------------------- /t/in/2_bidi_endpoint.txt: -------------------------------------------------------------------------------- 1 | [ Bad Schandau ] { offset: 3,0; origin: Erfurt; } 2 | 3 | [ Erfurt ] <--> [ Bad Schandau ] 4 | -------------------------------------------------------------------------------- /t/in/2_class.txt: -------------------------------------------------------------------------------- 1 | node.second { border: double; } 2 | 3 | [ A ] { class: SECOND; } --> [ B ] { class: Second; } 4 | -------------------------------------------------------------------------------- /t/in/2_classes.txt: -------------------------------------------------------------------------------- 1 | .red { color: red; } 2 | .green, .blue, group { color: blue; } 3 | 4 | [ Red ] { class: red; } -- red --> { class: red; } [ Black ] { class: green; } 5 | -------------------------------------------------------------------------------- /t/in/2_cluster.txt: -------------------------------------------------------------------------------- 1 | [ Hamburg ] { size: 2,2; } --> [ Altona ] { rows: 2; columns: 3; } 2 | -------------------------------------------------------------------------------- /t/in/2_cluster_2.txt: -------------------------------------------------------------------------------- 1 | [ Hamburg ] { size: 2,2; } --> [ Altona ] { rows: 2; columns: 3; } 2 | [ Hamburg ] --> [ Altona ] 3 | -------------------------------------------------------------------------------- /t/in/2_cluster_3.txt: -------------------------------------------------------------------------------- 1 | [ Hamburg ] { size: 2,2; } --> [ Altona ] { rows: 2; columns: 3; } 2 | [ Hamburg ] --> [ Altona ] 3 | [ Hamburg ] --> [ Altona ] 4 | -------------------------------------------------------------------------------- /t/in/2_dot.txt: -------------------------------------------------------------------------------- 1 | 2 | # the following should not confuse the parser 3 | #digraph G { 4 | # a -> b 5 | #} 6 | 7 | # neither should this 8 | graph { label: 9 | // digraph G { 10 | } 11 | 12 | [ Kummersbach ] -> [ Düsburg ] 13 | -------------------------------------------------------------------------------- /t/in/2_dot_dot_dash.txt: -------------------------------------------------------------------------------- 1 | [ Test\n Test\n Test test test\n test ] { border: dot-dot-dash; } ..-> [ B ] { border: dot-dash; } 2 | -------------------------------------------------------------------------------- /t/in/2_edges.txt: -------------------------------------------------------------------------------- 1 | [ One ] --> [ Two ] 2 | [ One ] --> [ Two ] 3 | -------------------------------------------------------------------------------- /t/in/2_flow.txt: -------------------------------------------------------------------------------- 1 | graph { flow: 90; } 2 | 3 | [ Left ] --> { end: left; start: left; } [ Right ] 4 | 5 | -------------------------------------------------------------------------------- /t/in/2_graph_label.txt: -------------------------------------------------------------------------------- 1 | graph { label: My Graph; label-pos: top; } 2 | 3 | [ Regensburg ] --> [ Passau ] 4 | -------------------------------------------------------------------------------- /t/in/2_group.txt: -------------------------------------------------------------------------------- 1 | ( Test\n group 2 | 3 | [ Bonn ] -> [ Berlin ] 4 | 5 | ) 6 | -------------------------------------------------------------------------------- /t/in/2_group_labelpos.txt: -------------------------------------------------------------------------------- 1 | ( Bergtour: 2 | 3 | [ Zugspitze ] --> [ Wasserkuppe ] 4 | 5 | ) { labelpos: bottom; } 6 | -------------------------------------------------------------------------------- /t/in/2_group_multicell.txt: -------------------------------------------------------------------------------- 1 | 2 | ( Some group: 3 | [ Frankfurt a. Main\n (Flughafen) ] { size: 2,2; } -> [ Berlin ] 4 | 5 | ) 6 | -------------------------------------------------------------------------------- /t/in/2_group_no_border.txt: -------------------------------------------------------------------------------- 1 | ( Test\n group 2 | 3 | [ Bonn ] -> [ Berlin ] 4 | 5 | ) { border: none; } 6 | -------------------------------------------------------------------------------- /t/in/2_invisible_left.txt: -------------------------------------------------------------------------------- 1 | [] --> [ Berlin ] 2 | -------------------------------------------------------------------------------- /t/in/2_invisible_right.txt: -------------------------------------------------------------------------------- 1 | [ Bonn ] --> [ ] 2 | -------------------------------------------------------------------------------- /t/in/2_label.txt: -------------------------------------------------------------------------------- 1 | node { label: A; } 2 | 3 | [ B ] -> [ C ] { link: http://bloodgate.com; } 4 | -------------------------------------------------------------------------------- /t/in/2_label_align.txt: -------------------------------------------------------------------------------- 1 | [ Long Node Label\l left\r right\c center ] -- A\r long\n edge label --> [ B ] 2 | -------------------------------------------------------------------------------- /t/in/2_list_attr.txt: -------------------------------------------------------------------------------- 1 | [ Bonn ] { border-style: dotted; }, [ Berlin ] { border-style: dashed; } 2 | -------------------------------------------------------------------------------- /t/in/2_long_labels.txt: -------------------------------------------------------------------------------- 1 | [ My\n long\n node\n name ] -- A\n long\n label --> [ B ] 2 | -------------------------------------------------------------------------------- /t/in/2_newlines.txt: -------------------------------------------------------------------------------- 1 | 2 | [ Berlin\n (W) ] -> [ Berlin\n (O) ] { border: dotted 1px black; } 3 | 4 | -------------------------------------------------------------------------------- /t/in/2_selfloop.txt: -------------------------------------------------------------------------------- 1 | graph { flow: 180; } 2 | 3 | [ Start ] --> [ Main ] 4 | [ Main ] -- Until not done --> [ Main ] 5 | [ Main ] -- Until not done --> [ Main ] 6 | [ Main ] -- Until not done --> [ Main ] 7 | -------------------------------------------------------------------------------- /t/in/2_selfloop_flow_down.txt: -------------------------------------------------------------------------------- 1 | graph { flow: 180; } 2 | 3 | [ Start ] --> [ Main ] 4 | [ Main ] -- Until not done --> [ Main ] 5 | [ Main ] -- Until done --> [ Main ] 6 | -------------------------------------------------------------------------------- /t/in/2_split_bug.txt: -------------------------------------------------------------------------------- 1 | [ Some \[\] || 2 | Autosplit ] 3 | -------------------------------------------------------------------------------- /t/in/2_wrap.txt: -------------------------------------------------------------------------------- 1 | graph { textwrap: 6; } 2 | 3 | [ Frankfurt Oder\n Flughafen-Terminal ] 4 | -- Drive a car to the destination --> 5 | [ Small city near a beautyfull river ] { text-wrap: 10; align: right; } 6 | -------------------------------------------------------------------------------- /t/in/2_zeros.txt: -------------------------------------------------------------------------------- 1 | [0] -- 0 --> [10] { label: 0; } --> { label: 0; } [ 0 ] 2 | -------------------------------------------------------------------------------- /t/in/2nodes.txt: -------------------------------------------------------------------------------- 1 | [ One ] ==> [ Two ] 2 | -------------------------------------------------------------------------------- /t/in/3_autosplit_hang.txt: -------------------------------------------------------------------------------- 1 | 2 | [ 1 ] -> [ 23.0 ] 3 | [ 2|3 ] 4 | 5 | 6 | -------------------------------------------------------------------------------- /t/in/3_bend_bug.txt: -------------------------------------------------------------------------------- 1 | [ Berlin ] { offset: 2,0; origin: Bonn; } 2 | [ Frankfurt ] { offset: 2,2; origin: Bonn; } 3 | 4 | [ Bonn ] --> [ Frankfurt ] 5 | -------------------------------------------------------------------------------- /t/in/3_cache_bug.txt: -------------------------------------------------------------------------------- 1 | [ A ] { flow: east; } 2 | [ B ] { offset: 2,2; origin: A; } 3 | 4 | (G 5 | [ A ] 6 | ) 7 | [ A ] -- C --> { start: east; end: north; } [ B ] -> [ ] 8 | 9 | -------------------------------------------------------------------------------- /t/in/3_cluster.txt: -------------------------------------------------------------------------------- 1 | # A node-cluster (autosplit into three single nodes) 2 | [ Husum | Schleswig | Flensburg ] { background: #ddaaff; } 3 | -------------------------------------------------------------------------------- /t/in/3_colors.txt: -------------------------------------------------------------------------------- 1 | graph 2 | { 3 | fill: rgb(0.1, 100, 10%); 4 | color: 3; # mention color "3" before colorscheme 5 | colorscheme: paired12; 6 | } 7 | 8 | [ Colors ] { fill: w3c/grey; } 9 | [ Preserve ] { color: cornflowerblue; } 10 | [ The ] { color: #ff00ff; } 11 | 12 | [ Preserve ] --> { color: rgb(33,44,55); } [ The ] 13 | [ The ] --> { color: hsv(1.0,1.0,0.5); } [ Colors ] { color: hsl(300, 1.0, 1.0); } 14 | -------------------------------------------------------------------------------- /t/in/3_corrupt.txt: -------------------------------------------------------------------------------- 1 | 2 | [ A ] { label: AB%00%0d%0a } --> [ B ] { label: AB%0aCB; } 3 | -> [ C ] { label: AB%be%f7%01%7f%91; } 4 | -------------------------------------------------------------------------------- /t/in/3_edge_labels_from_class.txt: -------------------------------------------------------------------------------- 1 | edge.yes { label: Yes; } 2 | edge { label: MyLabel; } 3 | 4 | [ A ] --> { class: yes; } [ B ] --> [ C ] 5 | -------------------------------------------------------------------------------- /t/in/3_edge_repair.txt: -------------------------------------------------------------------------------- 1 | ( Router: [ Input ] --> [ Output ] ) 2 | 3 | [ Output ] ==> { start: south; end: north; } 4 | [ Network ] 5 | -------------------------------------------------------------------------------- /t/in/3_edge_start.txt: -------------------------------------------------------------------------------- 1 | 2 | [ A ] --> { start: front; } [ B ], [ C ] 3 | -------------------------------------------------------------------------------- /t/in/3_empty_group.txt: -------------------------------------------------------------------------------- 1 | ([A]->[B])[C] 2 | -------------------------------------------------------------------------------- /t/in/3_flow.txt: -------------------------------------------------------------------------------- 1 | graph { flow: down; } 2 | 3 | [ Enschede ] { flow: left; } 4 | 5 | [ Enschede ] --> [ Bielefeld ] 6 | [ Bielefeld ] --> [ Wolfsburg ] 7 | -------------------------------------------------------------------------------- /t/in/3_group_align_center.txt: -------------------------------------------------------------------------------- 1 | graph { label: My Graph; font-size: 2em; } 2 | node.left { align: left; font-size: 1.5em; } 3 | edge { align: right; } 4 | 5 | ( Nodes: 6 | [ Right\nAligned ] { align: right; } -- label\n text --> { align: right; } 7 | [ Left\naligned ] { class: left; } --> 8 | [ Center\n aligned ] 9 | ) { align: center; border: none; } 10 | 11 | -------------------------------------------------------------------------------- /t/in/3_inherit.txt: -------------------------------------------------------------------------------- 1 | node { align: left; } 2 | node.right { align: right; } 3 | graph { flow: down; } 4 | 5 | [ Left ] --> [ Lefty, too ] --> [ Right ] 6 | [ Left ], [ Lefty, too ] { class: none; } 7 | [ Right ] { class: right; } 8 | -------------------------------------------------------------------------------- /t/in/3_invisible_both.txt: -------------------------------------------------------------------------------- 1 | [] --> [ Bonn ] --> [ ] 2 | -------------------------------------------------------------------------------- /t/in/3_joining.txt: -------------------------------------------------------------------------------- 1 | [ A ] --> { start: south,0; } [ B ] 2 | [ A ] --> { start: north,0; } [ B ] 3 | [ A ] --> { start: south,0; } [ C ] 4 | [ A ] --> { start: north,0; } [ C ] 5 | -------------------------------------------------------------------------------- /t/in/3_joint.txt: -------------------------------------------------------------------------------- 1 | 2 | [ Potsdam ], [ Mannheim ] --> { end: back,0; } [ Weimar ] 3 | 4 | # [ Weimar ] --> { start: front,0; } [ Finsterwalde ], [ Aschersleben ] 5 | -------------------------------------------------------------------------------- /t/in/3_joint_short.txt: -------------------------------------------------------------------------------- 1 | 2 | [ B ] { offset: 2,0; origin: A; }, [ A ] --> { start: south; end: south, 0; } [ C ] { offset: 2,-2; origin: B; } 3 | -------------------------------------------------------------------------------- /t/in/3_list_attr.txt: -------------------------------------------------------------------------------- 1 | [ Bonn ] { border-style: dotted; }, [ Berlin ] { border-style: dashed; } 2 | -- test --> [ Frankfurt ] { border-style: dot-dash; } 3 | -------------------------------------------------------------------------------- /t/in/3_lists.txt: -------------------------------------------------------------------------------- 1 | [ Bonn ], [ Ulm ] -> [ Berlin ] 2 | -------------------------------------------------------------------------------- /t/in/3_nodes_5_edges.txt: -------------------------------------------------------------------------------- 1 | [ Default Page ] --> [ Sign Up ] 2 | [ Sign Up ] --> [ Main Page ] 3 | [ Default Page ] .-> [ Main Page ] 4 | [ Default Page ] = > [ Main Page ] 5 | [ Default Page ] - > [ Main Page ] 6 | 7 | -------------------------------------------------------------------------------- /t/in/3_selfloop.txt: -------------------------------------------------------------------------------- 1 | [ Start ] --> [ Main ] 2 | 3 | [ Main ] -- Until not done --> [ Main ] 4 | [ Main ] --> [ End ] 5 | -------------------------------------------------------------------------------- /t/in/3_selfloop_flip.txt: -------------------------------------------------------------------------------- 1 | [ Adenau ] -> [ Monschau ] 2 | [ Monschau ] -> [ Monschau ] 3 | [ Nideggen ] -> [ Monschau ] 4 | -------------------------------------------------------------------------------- /t/in/3_selfloop_flow_down.txt: -------------------------------------------------------------------------------- 1 | graph { flow: 180; } 2 | 3 | [ Start ] --> [ Main ] 4 | [ Main ] -- Until not done --> [ Main ] 5 | [ Main ] --> [ End ] 6 | -------------------------------------------------------------------------------- /t/in/3_selfloop_flow_left.txt: -------------------------------------------------------------------------------- 1 | graph { flow: 270; } 2 | 3 | [ Start ] --> [ Main ] 4 | [ Main ] -- Until not done --> [ Main ] 5 | [ Main ] --> [ End ] 6 | -------------------------------------------------------------------------------- /t/in/3_selfloop_flow_up.txt: -------------------------------------------------------------------------------- 1 | graph { flow: 0; } 2 | 3 | [ Start ] --> [ Main ] 4 | [ Main ] -- Until not done --> [ Main ] 5 | [ Main ] --> [ End ] 6 | -------------------------------------------------------------------------------- /t/in/3_split_attribute.txt: -------------------------------------------------------------------------------- 1 | node { color: silver; } 2 | 3 | [ Some || 4 | Autosplit || 5 | Node ] 6 | 7 | { 8 | 9 | basename: u; border: dashed|; color: red|blue; 10 | } 11 | -------------------------------------------------------------------------------- /t/in/3nodes.txt: -------------------------------------------------------------------------------- 1 | [ One ] ==> [ Two ] 2 | [ Two ] - > [ Three ] 3 | -------------------------------------------------------------------------------- /t/in/4_2x2nodes.txt: -------------------------------------------------------------------------------- 1 | [ Hamburg ] --> [ Altona ] 2 | [ Frankfurt ] --> [ Hof ] 3 | -------------------------------------------------------------------------------- /t/in/4_att.txt: -------------------------------------------------------------------------------- 1 | node { title: 100%25; } 2 | 3 | [ 1 ] { label: $a = %229%22%3b\nmy $b = 1%3b; } 4 | [ 3 ] { label: $a = %22%3b%25; } 5 | 6 | [ 1 ] --> [ 2 ] 7 | [ 3 ] --> [ 4 ] 8 | -------------------------------------------------------------------------------- /t/in/4_autosplit_class.txt: -------------------------------------------------------------------------------- 1 | 2 | node.B { border: dotted; } 3 | node.C { border: dashed; } 4 | node { border: double; } 5 | 6 | [ A|B ] { class: |B; } 7 | [ C|D ] { class: C|; } 8 | -------------------------------------------------------------------------------- /t/in/4_autosplit_empty.txt: -------------------------------------------------------------------------------- 1 | 2 | [ 1 ] -> [ 23.1 ] 3 | 4 | [ 2| |3 ] 5 | 6 | -------------------------------------------------------------------------------- /t/in/4_autosplit_offset.txt: -------------------------------------------------------------------------------- 1 | [ 1 ] { size: 1,2; } 2 | [ 2|3 ] { origin: 1; offset: 2,1; } 3 | 4 | [ 1 ] -> [ 23.1 ] --> [ 3 ] 5 | -------------------------------------------------------------------------------- /t/in/4_autosplit_shape.txt: -------------------------------------------------------------------------------- 1 | [ A|B ] { shape: |none; } 2 | [ C|D ] { shape: none|; } 3 | -------------------------------------------------------------------------------- /t/in/4_bend_bug.txt: -------------------------------------------------------------------------------- 1 | [ Berlin ] { offset: 0,2; origin: Bonn; } 2 | [ Frankfurt ] { offset: 2,2; origin: Bonn; } 3 | [ Ulm ] { offset: 2,0; origin: Bonn; } 4 | 5 | [ Bonn ] --> [ Frankfurt ] 6 | -------------------------------------------------------------------------------- /t/in/4_bug_basename.txt: -------------------------------------------------------------------------------- 1 | [ u ] --> [ a | b | c ] 2 | # putting the attributes on an extra line failed prior to v0.55 due to 3 | # the basename being wrong: 4 | { basename: pv; } 5 | 6 | [ pv.0 ] 7 | -------------------------------------------------------------------------------- /t/in/4_bug_joint_2.txt: -------------------------------------------------------------------------------- 1 | edge { arrow-style: none; } 2 | 3 | [ B ], [ C ], [ D ] 4 | 5 | <--> { start: west; end: south, 0; } [ E ] { origin: B; offset: -2,-2; } 6 | 7 | [ C ] { origin: B; offset: 0,2; } 8 | [ D ] { origin: C; offset: 0,2; } 9 | 10 | -------------------------------------------------------------------------------- /t/in/4_collapse.txt: -------------------------------------------------------------------------------- 1 | [ A B C ] - A B C D -> [ X Z Y ] 2 | 3 | node.i { label: "S P A C Y"; } 4 | 5 | [ A ] { label: "S P A C E"; } --> { label: "S P A C E"; } [ B ] { class: i; } 6 | -------------------------------------------------------------------------------- /t/in/4_comma.txt: -------------------------------------------------------------------------------- 1 | 2 | [ 1 ], [ 2 ], [ 3 ] -> [ 4 ] 3 | -------------------------------------------------------------------------------- /t/in/4_cross.txt: -------------------------------------------------------------------------------- 1 | [ A ] 2 | --> { style: solid; } 3 | [ B ] { origin: A; offset: 40,0; } 4 | [ C ] { offset: 20,-20; origin: A; } 5 | --> { style: dashed; } 6 | [ D ] { origin: C; offset: 0,40; } 7 | -------------------------------------------------------------------------------- /t/in/4_cross_inv.txt: -------------------------------------------------------------------------------- 1 | [ A ] 2 | --> { style: invisible; } 3 | [ B ] { origin: A; offset: 40,0; } 4 | [ C ] { offset: 20,-20; origin: A; } 5 | --> { style: dashed; } 6 | [ D ] { origin: C; offset: 0,40; } 7 | -------------------------------------------------------------------------------- /t/in/4_cross_split.txt: -------------------------------------------------------------------------------- 1 | 2 | ( Cross: [A],[B],[C],[D] ) 3 | 4 | [ A ] --> [ B ] { offset: 4,0; origin: A; } 5 | [ C ] { offset: 2,-2; origin: A; } --> [ D ] { offset: 2,2; origin: A; } 6 | 7 | -------------------------------------------------------------------------------- /t/in/4_cross_split_hor.txt: -------------------------------------------------------------------------------- 1 | 2 | ( Cross: [A],[B],[C],[D] ) 3 | 4 | [ A ] --> [ B ] { offset: 0,4; origin: A; } 5 | [ C ] { offset: -2,2; origin: A; } --> [ D ] { offset: 2,2; origin: A; } 6 | 7 | -------------------------------------------------------------------------------- /t/in/4_edge_cross.txt: -------------------------------------------------------------------------------- 1 | [E1] --> [S1] 2 | [E1] --> [S2] 3 | [E1] --> [E2] 4 | [E2] --> [S1] 5 | [E2] --> [S2] 6 | [S1] --> [S2] 7 | -------------------------------------------------------------------------------- /t/in/4_edge_labels.txt: -------------------------------------------------------------------------------- 1 | [ Bonn ] == train ==> [ Berlin ] .. bus ..> [ Potsdam ] 2 | [ Berlin ] .- bike .-> [ Ulm ] 3 | [ Bonn ] -- car --> [ Potsdam ] 4 | -------------------------------------------------------------------------------- /t/in/4_edge_types.txt: -------------------------------------------------------------------------------- 1 | [ Bingen ] <--> [ Mainz ] 2 | [ Bischofswerde ] -- test-text --> [ Finsterwalde ] 3 | -------------------------------------------------------------------------------- /t/in/4_endless_loop.txt: -------------------------------------------------------------------------------- 1 | 2 | [ 1 ] -> [ 2 ] { fill: red; } 3 | 4 | [ 3|4 ] { fill: red; } 5 | 6 | -------------------------------------------------------------------------------- /t/in/4_endless_loop_2.txt: -------------------------------------------------------------------------------- 1 | 2 | [ 1 ] -> [ 2 ] 3 | 4 | [ 3 ] [ 4 ] { origin: 3; offset: 1,0; } 5 | -------------------------------------------------------------------------------- /t/in/4_flow.txt: -------------------------------------------------------------------------------- 1 | [ Passau ] 2 | -> { flow: down; } [ Siegen ] 3 | -> { flow: right; } [ Regensburg ] 4 | 5 | [ Siegen ] -> { flow: left; } [ Aschaffenburg ] 6 | -------------------------------------------------------------------------------- /t/in/4_flow_chain.txt: -------------------------------------------------------------------------------- 1 | 2 | [ Bonn ] 3 | -> { flow: forward; } [ Berlin ] 4 | [ Bonn ] -> [ Cottbus ] --> [ Ulm ] 5 | -------------------------------------------------------------------------------- /t/in/4_invisible.txt: -------------------------------------------------------------------------------- 1 | [ Bischofswerda ] -> [ You don't see me! ] { shape: invisible; } 2 | -> [ Borna ] { shape: point; point-style: invisible; } 3 | -> [ Bremen ] 4 | 5 | [ You don't see me! ] -> [ Bischofswerda ] 6 | 7 | -------------------------------------------------------------------------------- /t/in/4_joint.txt: -------------------------------------------------------------------------------- 1 | 2 | [ B ] { offset: 2,0; origin: A; size: 2,1; }, [ A ] --> { start: south; end: south, 0; } [ C ] { offset: 2,-2; origin: B; } 3 | 4 | [ B ] --> [ U ] 5 | -------------------------------------------------------------------------------- /t/in/4_joint_bug_flags.txt: -------------------------------------------------------------------------------- 1 | 2 | [ B ], [ C ], [ D ] 3 | 4 | <--> { start: west; end: south, 0; } [ E ] { origin: B; offset: -2,-2; } 5 | 6 | [ C ] { origin: B; offset: 0,2; } 7 | [ D ] { origin: C; offset: 0,2; } 8 | 9 | -------------------------------------------------------------------------------- /t/in/4_list_attr.txt: -------------------------------------------------------------------------------- 1 | [ Bonn ] { border-style: dotted; }, [ Berlin ] { border-style: dashed; } 2 | -- test --> [ Frankfurt ] { border-style: dot-dash; }, [ Frankfurt (Oder) ] { border-style: dot-dot-dash; } 3 | -------------------------------------------------------------------------------- /t/in/4_lists.txt: -------------------------------------------------------------------------------- 1 | [ Bonn ], [ Ulm ] -> [ Berlin ], [ Frankfurt ] 2 | -------------------------------------------------------------------------------- /t/in/4_minlen.txt: -------------------------------------------------------------------------------- 1 | 2 | [ Berlin ] --> { minlen: 4; } [ Potsdam ], [ Cottbus ], [ Leipzig ] 3 | -------------------------------------------------------------------------------- /t/in/4_near.txt: -------------------------------------------------------------------------------- 1 | # near placement 2 | 3 | [ Bonn ] --> [ Berlin ] 4 | [ Berlin ] --> [ Koeln ] 5 | [ Essen ] --> [ Berlin ] 6 | -------------------------------------------------------------------------------- /t/in/4_node_edge.txt: -------------------------------------------------------------------------------- 1 | [A ] -- [ test ] { shape: edge; } -- [ ] { shape: edge; } --> [ B ] 2 | -------------------------------------------------------------------------------- /t/in/4_nodes_5_edges.txt: -------------------------------------------------------------------------------- 1 | # Testcase courtesy of Scott Beuker: 2 | 3 | [ Default Page ] -> [ Test Search ] 4 | [ Test Search ] -> [ Sign Up ] 5 | [ Default Page ] -> [ Sign Up ] 6 | [ Default Page ] ..> [ Main Page ] 7 | [ Sign Up ] -> [ Main Page ] 8 | 9 | -------------------------------------------------------------------------------- /t/in/4_nodes_6_edges.txt: -------------------------------------------------------------------------------- 1 | # Testcase courtesy of Scott Beuker: 2 | 3 | [ Default Page ] -> [ Test Search ] 4 | [ Test Search ] -> [ Sign Up ] 5 | [ Default Page ] -> [ Sign Up ] 6 | [ Default Page ] -> [ Main Page ] 7 | [ Sign Up ] -> [ Main Page ] 8 | [ Default Page ] -> [ Main Page ] 9 | 10 | -------------------------------------------------------------------------------- /t/in/4_nodes_edge.txt: -------------------------------------------------------------------------------- 1 | [ test ] { shape: edge; } 2 | 3 | [ A ] -- [ test ] 4 | [ C ] --> [ test ] 5 | [ test ] --> [ B ] 6 | -------------------------------------------------------------------------------- /t/in/4groups.txt: -------------------------------------------------------------------------------- 1 | ( German Cities 2 | [ Cuxhaven ] -> [ Bremen ] 3 | [ Hamburg ], [ Flensburg ] 4 | ) 5 | 6 | -------------------------------------------------------------------------------- /t/in/4groups_class.txt: -------------------------------------------------------------------------------- 1 | node.city { color: #801010; } 2 | 3 | ( German Cities 4 | [ Cuxhaven ] -> [ Bremen ] 5 | [ Hamburg ], [ Flensburg ] 6 | ) { nodeclass: city; border-style: dot-dash; } 7 | 8 | -------------------------------------------------------------------------------- /t/in/4nodes.txt: -------------------------------------------------------------------------------- 1 | [ Bonn ] --> [ Berlin ] 2 | [ Bonn ] --> [ Frankfurt ] 3 | [ Berlin ] ..> [ Cottbus ] 4 | -------------------------------------------------------------------------------- /t/in/5_a-star_bug.txt: -------------------------------------------------------------------------------- 1 | [ 1 ] { size: 1,2; } 2 | [ 2 ] { offset: 2,0; origin: 1; } 3 | [ 3 ] { offset: 1,0; origin: 2; } 4 | [ 4 ] { offset: 1,0; origin: 3; } 5 | [ 5 ] { offset: 0,-1; origin: 1; } 6 | 7 | [ 4 ] --> [ 1 ] 8 | -------------------------------------------------------------------------------- /t/in/5_arrow_styles.txt: -------------------------------------------------------------------------------- 1 | edge { arrow-style: none; } 2 | 3 | # the arrow is not drawn 4 | [ Mainau ] --> [ Unteruhlingen ] { border-style: dotted; } 5 | # there is no arrow, so the style is ignored 6 | [ Mainau ] -- { arrow-style: closed; } [ Unteruhlingen ] 7 | 8 | # these override the class default: 9 | [ Oberuhlingen ] <--> { arrow-style: closed; } [ Unteruhlingen ] 10 | [ Uhlingen ] <--> { arrow-style: filled; } [ Oberuhlingen ] 11 | 12 | # arrows are again not rendered 13 | [ Hagnau ] { flow: down; } <--> [ Uhlingen ] 14 | [ Hagnau ] <--> [ Oberuhlingen ] 15 | 16 | -------------------------------------------------------------------------------- /t/in/5_flow.txt: -------------------------------------------------------------------------------- 1 | 2 | [ Bonn ] 3 | -> { flow: forward; } [ Berlin ] 4 | [ Bonn ] -> [ Cottbus ] --> [ Moselkern ] --> [ Ulm ] 5 | -------------------------------------------------------------------------------- /t/in/5_group_repair.txt: -------------------------------------------------------------------------------- 1 | ( DMZ: 2 | [ Backend ] 3 | [ Database ] 4 | [ Proxy ] 5 | [ Server ] 6 | ) 7 | 8 | [ Proxy ] --> [ Check ] 9 | [ Proxy ] --> { flow: south; } [ Database ] 10 | [ Proxy ] --> [ Server ] 11 | [ Check ] --> [ Backend ] 12 | [ Database ] --> [ Backend ] 13 | -------------------------------------------------------------------------------- /t/in/5_group_split.txt: -------------------------------------------------------------------------------- 1 | 2 | ( test: 3 | 4 | [ Bonn ] -> [ Berlin ] -> [ Frankfurt ] { flow: down; } -> [ Hagen ] 5 | 6 | ) 7 | 8 | [ Bonn ] -> [ Ulm ] { origin: Bonn; offset: 6,2; } 9 | 10 | -------------------------------------------------------------------------------- /t/in/5_joint.txt: -------------------------------------------------------------------------------- 1 | 2 | [ Hannover ] { flow: down; } --> { start: south; } [ Aachen ], [ Berlin ], [ Cuxhaven ] 3 | --> { start: south; end: south, 0 } [ Zwickau ] { origin: Hannover; offset: 2,-2; } 4 | 5 | [ Aachen ] { origin : Hannover; offset: 0,2; } 6 | [ Berlin ] { origin : Aachen; offset: 2,0; } 7 | [ Cuxhaven ] { origin : Aachen; offset: 4,0; } 8 | 9 | 10 | -------------------------------------------------------------------------------- /t/in/5_joint_bug2.txt: -------------------------------------------------------------------------------- 1 | 2 | [ A ] { flow: south; size: 5,1; } <--> [ B ], [ C ], [ D ] { origin: A; } 3 | 4 | 5 | <--> { start: south; end: south, 0; } [ E ] { origin: A; offset: 2,0; } 6 | 7 | [ B ] { offset: 0,2; } 8 | [ C ] { origin: B; offset: 2,0; } 9 | [ D ] { origin: C; offset: 2,0; } 10 | 11 | -------------------------------------------------------------------------------- /t/in/5_joint_label.txt: -------------------------------------------------------------------------------- 1 | 2 | [ Aachen ], [ Cottbus ], [ Buxtehude ], [ Dachau ] 3 | -- travel --> { end: back, 0 ; } 4 | [ Zittau ] 5 | -------------------------------------------------------------------------------- /t/in/5_long_edge_labels.txt: -------------------------------------------------------------------------------- 1 | 2 | [ A ] -> [ B ] -> [ C ] -> [ D ] -> [ E ] 3 | 4 | [ A ] -- very long edge label --> [ E ] 5 | -- another very long edge label --> [ A ] 6 | -------------------------------------------------------------------------------- /t/in/5_multicell.txt: -------------------------------------------------------------------------------- 1 | graph { flow: up; } 2 | 3 | [ Client ] { origin: Proxy; offset: 0,2; } <--> [ Proxy ] { size: 3,2; } 4 | [ Client1 ] { origin: Proxy; offset: 0,-2; } <--> [ Proxy ] 5 | [ Client2 ] { origin: Proxy; offset: 2,0; } <--> [ Proxy ] 6 | [ Client3 ] { origin: Proxy; offset: -2,0; } <--> [ Proxy ] 7 | -------------------------------------------------------------------------------- /t/in/5_offsets.txt: -------------------------------------------------------------------------------- 1 | [ A ] { origin: B; offset: 2,1; } 2 | 3 | -> [ B ] { origin: C; offset: 1,1; } 4 | -> [ C ] { origin: D; offset: 1,1; } 5 | -> [ D ] 6 | -> [ E ] 7 | 8 | -------------------------------------------------------------------------------- /t/in/5_offsets_2.txt: -------------------------------------------------------------------------------- 1 | [ A ] { origin: B; offset: 2,1; } 2 | 3 | [ B ] { origin: C; offset: 1,1; } 4 | [ C ] { origin: D; offset: 1,1; } 5 | [ D ] 6 | 7 | [ E ] --> [ D ] --> [ C ] 8 | [ B ] --> [ A ] 9 | 10 | [ D ] --> [ C ] 11 | [ B ] --> [ C ] 12 | [ B ] --> [ C ] 13 | [ A ] --> [ B ] 14 | 15 | -------------------------------------------------------------------------------- /t/in/5_rounded.txt: -------------------------------------------------------------------------------- 1 | node { shape: rounded; } 2 | 3 | [ Pullach ] { border: dotted; } 4 | -> [ Parsing ] { border: dashed; } 5 | -> [ Pankow\n (Berlin) ] { border: double; } 6 | -> [ Pullheim ] { border: bold; } 7 | -> [ Paderborn ] 8 | -------------------------------------------------------------------------------- /t/in/5_tree_joint.txt: -------------------------------------------------------------------------------- 1 | 2 | [ A ] 3 | [ A ] -> { start: south, 0; } [ A1 ] { origin: A; offset: 2,1; } 4 | [ A ] -> { start: south, 0; } [ A2 ] { origin: A; offset: 2,2; } 5 | [ A ] -> { start: south, 0; } [ A3 ] { origin: A; offset: 2,3; } 6 | [ A ] -> { start: south, 0; } [ A4 ] { origin: A; offset: 2,4; } 7 | -------------------------------------------------------------------------------- /t/in/6_autosplit_class.txt: -------------------------------------------------------------------------------- 1 | # test that columns on a class works, also test that B is 2 | # properly offset from A (A with the label is 2 columns 3 | # wide!) and displays "D" as label. 4 | 5 | node.red { color: red; label: D; columns: 2; } 6 | 7 | [ A|B|C ] { basename: A; } 8 | 9 | [ 1 ] -> [ A.0 ] { class: red; } 10 | [ 2 ] -> [ A.0 ] 11 | [ 2 ] -> [ 3 ] 12 | 13 | -------------------------------------------------------------------------------- /t/in/6_chain_10_edges.txt: -------------------------------------------------------------------------------- 1 | [ Bonn ] -> [ Berlin ] -> [ Kassel ] 2 | [ Bonn ] -> [ Koblenz ] -> [ Berlin ] 3 | [ Bonn ] -> [ Ulm ] -> [ Koblenz ] 4 | [ Ulm ] -> [ Bautzen ] -> [ Berlin ] 5 | 6 | [ Ulm ] -> [ Bautzen ] -> [ Berlin ] 7 | -------------------------------------------------------------------------------- /t/in/6_chained.txt: -------------------------------------------------------------------------------- 1 | [ Bonn ] -> [ Berlin ] -> [ Kassel ] 2 | [ Bonn ] -> [ Koblenz ] 3 | [ Bonn ] -> [ Ulm ] -> [ Koblenz ] 4 | [ Ulm ] -> [ Bautzen ] -> [ Berlin ] 5 | -------------------------------------------------------------------------------- /t/in/6_empty_row.txt: -------------------------------------------------------------------------------- 1 | [A|| || 2 | B] 3 | [C|| 4 | || 5 | D] 6 | 7 | [AB.0]->[CD.0] 8 | -------------------------------------------------------------------------------- /t/in/6_fanout.txt: -------------------------------------------------------------------------------- 1 | [ Hello World ] --> [ middle ] { label: /dev/fanout; fill: #ccccff; } 2 | --> { start: front,0; } [ A ], [ B ], [ C ], [ D ] { label: Hello World!; } 3 | -------------------------------------------------------------------------------- /t/in/6_group_align.txt: -------------------------------------------------------------------------------- 1 | ( Left: [ A ] -> [ B ]) { align: left; } 2 | ( Right: [ C ] -> [ D ]) { align: right; } 3 | ( Center: [ E ] -> [ F ]) { align: center; } 4 | -------------------------------------------------------------------------------- /t/in/6_joint.txt: -------------------------------------------------------------------------------- 1 | 2 | [ Hanau ], [ Hagen ], [ Hannover ], [ Hamburg ] --> { end: back, 0; } [ Bonn ] 3 | 4 | --> [ Prag ] 5 | -------------------------------------------------------------------------------- /t/in/6_multicell.txt: -------------------------------------------------------------------------------- 1 | [ A ] { size: 2,2; } 2 | -> [ B ] { rows: 2; } 3 | -> [ C ] { columns: 3; } 4 | 5 | [ A ] -> [ B ] 6 | -> [ C ] 7 | -> [ D ] 8 | 9 | [ D ] -> [ C ] 10 | [ B ] -> [ C ] 11 | 12 | [ A ] -> [ F ] 13 | [ A ] -> [ G ] 14 | -------------------------------------------------------------------------------- /t/in/6_multicell_offset.txt: -------------------------------------------------------------------------------- 1 | 2 | [ Wide ] { size: 4,1; } -> [ B ] { offset: 2,0; origin: Wide; } 3 | [ Wide ] -> [ C ] { offset: -2,0; origin: Wide; } 4 | 5 | [ High ] { size: 1,4; } -> [ D ] { offset: 0,2; origin: High; } 6 | [ High ] -> [ E ] { offset: 0,-2; origin: High; } 7 | -------------------------------------------------------------------------------- /t/in/6_nested_groups.txt: -------------------------------------------------------------------------------- 1 | ( Outer 2 | ( Inner 1 3 | [ A ] -> [ B ] 4 | ) 5 | ( Inner 2 6 | [ C ] -> [ D ] 7 | ) 8 | [ E ] -> [ F ] 9 | ) 10 | -------------------------------------------------------------------------------- /t/in/6_ranks.txt: -------------------------------------------------------------------------------- 1 | [ A ] 2 | --> [ B ] --> [ C ] 3 | --> [ D ] { rank: 0; } 4 | --> [ E ] --> { end: north; } [ F ] { rank: 0; } 5 | -------------------------------------------------------------------------------- /t/in/6_split_join_loop.txt: -------------------------------------------------------------------------------- 1 | [ A ] --> [ B ] --> [ C ] 2 | --> { start: front, 0; } [ X ], [ Y ] 3 | --> { end: back, 0; } [ I ] 4 | --> [ A ] 5 | -------------------------------------------------------------------------------- /t/in/7_cluster.txt: -------------------------------------------------------------------------------- 1 | # 6-node cluster 2 | [ A | BCD | E | F || 3 | G | | H ] 4 | -------------------------------------------------------------------------------- /t/in/7_star.txt: -------------------------------------------------------------------------------- 1 | 2 | [ Dachau ] -> 3 | [ Berlin ], [ Ulm ], [ Frankfurt ], [ Chemnitz ], [ Weimar ], [ Kiel ] 4 | -------------------------------------------------------------------------------- /t/in/7_tree.txt: -------------------------------------------------------------------------------- 1 | edge { start: south, 0; } 2 | 3 | [ A ] 4 | [ A ] -> [ A1 ] { origin: A; offset: 2,1; } 5 | [ A ] -> [ A2 ] 6 | [ A ] -> [ A3 ] 7 | 8 | [ A2 ] -> [ A23 ] { origin: A2; offset: 2,1 } 9 | [ A2 ] -> [ A22 ] 10 | [ A2 ] -> [ A21 ] 11 | -------------------------------------------------------------------------------- /t/in/8_align.txt: -------------------------------------------------------------------------------- 1 | graph { label: My Graph; font-size: 2em; } 2 | node.left { align: left; font-size: 1.5em; } 3 | edge { align: right; } 4 | 5 | ( Nodes: 6 | [ Right\nAligned ] { align: right; } -- label\n text --> 7 | { align: right; } 8 | [ Left\naligned ] { class: left; }) { align: right; } 9 | 10 | [ Center\n aligned text] -- aligned\n left --> { align: left; } [ Rightmost ] { align: right; } 11 | [ B ] 12 | --> [ Left\n align\n no border ] { border: none; align: left; } 13 | --> [ center\n align\n no border ] { border: none; align: center; } 14 | --> [ A ] 15 | 16 | -------------------------------------------------------------------------------- /t/in/8_basename.txt: -------------------------------------------------------------------------------- 1 | [ A|B|C ] { basename: A } [ 1 ] -> [ A.2 ] 2 | [ A|B|C ] [ 2 ] -> [ ABC.2 ] 3 | -------------------------------------------------------------------------------- /t/in/8_chain.txt: -------------------------------------------------------------------------------- 1 | # a chain with branches. Despite the branches defined first, 2 | # the output should create one chain with branches going up/down 3 | 4 | [ Bonn ] --> [ Berlin ] 5 | [ Berlin ] --> [ Koeln ] 6 | [ Koeln ] --> [ Frankfurt ] 7 | [ Frankfurt ] --> [ Chemnitz ] 8 | [ Frankfurt ] --> [ Dresden ] 9 | [ Frankfurt ] --> [ Hannover ] 10 | [ Hannover ] --> [ Hamburg ] 11 | -------------------------------------------------------------------------------- /t/in/8_endless_loop.txt: -------------------------------------------------------------------------------- 1 | 2 | [ 1 ], [ 2 ] -> [ 3 ] 3 | 4 | [ 1 ] -> [ 2 ] 5 | 6 | [ 3|4 ] 7 | 8 | [ 5|6|7 ] 9 | 10 | -------------------------------------------------------------------------------- /t/in/8_flow.txt: -------------------------------------------------------------------------------- 1 | 2 | [ East ] -> [ South ] { flow: south; } -> [ West ] -> { flow: west; } [ South Too ] 3 | --> { flow: down; } [ right (west) ] 4 | --> { flow: right; } [ left (south) ] 5 | --> { flow: left; } [ east (default) ] -> [ final ] 6 | #[ east (default) ] -> [ second ] 7 | #[ east (default) ] -> [ third ] 8 | -------------------------------------------------------------------------------- /t/in/8_invisible.txt: -------------------------------------------------------------------------------- 1 | graph { 2 | border: 1px solid black; 3 | background: oldlace; 4 | label: My sample graph; 5 | } 6 | edge { label-color: green; color: blue; style: invisible; } 7 | 8 | [ One ] { fill: seagreen; color: white; } -- label --> [ Two ] { shape: triangle; } 9 | [ One ] => [ Three ] 10 | [ Five ] { fill: maroon; color: yellow; } <=> [ Three ] 11 | [ One ] .. Test\n label ..> [ Four ] 12 | [ Three ] <.. Test label ..> [ Six ] 13 | [ Five ] - Test label - > { label-color: darkslategrey; color: red; } [ Seven ] 14 | [ Seven ] -- [ Eight ] 15 | [ Five ] --> [ Eight ] 16 | [ Five ] --> [ Seven ] 17 | 18 | -------------------------------------------------------------------------------- /t/in/8_labels.txt: -------------------------------------------------------------------------------- 1 | graph { 2 | border: 1px solid black; 3 | background: oldlace; 4 | label: My sample graph; 5 | } 6 | edge { label-color: green; color: blue; } 7 | 8 | [ One ] { fill: seagreen; color: white; } -- label --> [ Two ] { shape: triangle; } 9 | [ One ] => [ Three ] 10 | [ Five ] { fill: maroon; color: yellow; } <=> [ Three ] 11 | [ One ] .. Test\n label ..> [ Four ] 12 | [ Three ] <.. Test label ..> [ Six ] 13 | [ Five ] - Test label - > { label-color: darkslategrey; color: red; } [ Seven ] 14 | [ Seven ] -- [ Eight ] 15 | [ Five ] --> [ Eight ] 16 | [ Five ] --> [ Seven ] 17 | 18 | -------------------------------------------------------------------------------- /t/in/8_optimize_bend.txt: -------------------------------------------------------------------------------- 1 | # Example from Graphviz extension 2 | # http://www.wickle.com/wiki/index.php/Graphviz_extension 3 | 4 | node { shape: circle; } 5 | 6 | [ main ] { shape: rect; } # this is a comment 7 | -> [ parse ] 8 | -> [ execute ] 9 | -> [ make_string ] { label: make a\n string; } 10 | 11 | [ main ] ..> [ init ] 12 | [ main ] -- Testlabel --> [ cleanup ] 13 | 14 | [ init ] -> [ make_string ] 15 | 16 | [ main ] == 100 times ==> { color: red; style: dashed; } [ printf ] # dashed red edge! 17 | 18 | [ execute ] -> { color: red; } [ compare ] { shape: rect; background: #c1b2ff; } 19 | -------------------------------------------------------------------------------- /t/in/8_points.txt: -------------------------------------------------------------------------------- 1 | node { shape: point; } 2 | 3 | [ A ] 4 | -> [ B ] { point-style: square; } 5 | -> [ C ] { point-style: dot; } 6 | -> [ D ] { point-style: circle; } 7 | -> [ E ] { point-style: diamond; } 8 | -> [ F ] { point-style: cross; } 9 | -> [ G ] { shape: invisible; } 10 | -> [ H ] { point-style: star; } 11 | 12 | -------------------------------------------------------------------------------- /t/in/9_chain.txt: -------------------------------------------------------------------------------- 1 | # a chain with branches. Despite the branches defined first, 2 | # the output should create one chain with branches going up/down 3 | 4 | [ Bonn ] --> [ Berlin ] 5 | [ Berlin ] --> [ Koeln ] 6 | [ Berlin ] --> [ Cottbus ] 7 | [ Koeln ] --> [ Frankfurt ] 8 | [ Frankfurt ] --> [ Chemnitz ] 9 | [ Frankfurt ] --> [ Dresden ] 10 | [ Frankfurt ] --> [ Hannover ] 11 | [ Hannover ] --> [ Hamburg ] 12 | -------------------------------------------------------------------------------- /t/in/9_cross.txt: -------------------------------------------------------------------------------- 1 | 2 | [ U ] --> 3 | [ A ] { origin: U; offset: 4,0; } --> [ B|I] { origin: A; offset: 32, 0; } 4 | 5 | [ BI.1] --> [ I ] -> [ Z ] 6 | 7 | 8 | [ C | D||E ] { origin: A; offset: 0,1; } 9 | 10 | #[ CDE.0 ] --> [ BI.0 ] 11 | 12 | [ U ] --> { start: north; } [ I ] 13 | 14 | -------------------------------------------------------------------------------- /t/in/9_flow_south.txt: -------------------------------------------------------------------------------- 1 | graph { flow: down; } 2 | edge { start: south; } 3 | 4 | [A] --> [A1], [A2], [A3], [A4], [A5], [A6], [A7], [A8] 5 | -------------------------------------------------------------------------------- /t/in/README: -------------------------------------------------------------------------------- 1 | These files are used as input by t/ascii.t, and the ASCII output is compared to 2 | the files in t/out. 3 | 4 | The subdirectories t/dot, t/in/dot, t/out/dot and t/txt/dot contain input 5 | files for t/gv.t. 6 | -------------------------------------------------------------------------------- /t/in/dot/0_empty.dot: -------------------------------------------------------------------------------- 1 | strict/*comment*/digraph/*comment*/{ 2 | // test comments 3 | 4 | } 5 | -------------------------------------------------------------------------------- /t/in/dot/10_numbers.dot: -------------------------------------------------------------------------------- 1 | digraph G { 2 | 3 | // test parsing of numbers as node names 4 | 5 | 0.99 -> 12.88 6 | 7 | -100 -> 123.1230 8 | 9 | 00019.1001 -> 1000. 10 | 11 | .99 -> 0. 12 | 13 | .1 -> -1. 14 | } 15 | -------------------------------------------------------------------------------- /t/in/dot/16_split.dot: -------------------------------------------------------------------------------- 1 | digraph SPLIT { 2 | 3 | 0 [ shape=record, label="nil| | | 0" ] 4 | 1 [ shape=record, label="nil| | | 1" ] 5 | 2 [ shape=record, label="nil| | | 2" ] 6 | 3 [ shape=record, label="nil| | | 3" ] 7 | 8 | "0":f1 -> "1":f2; 9 | "0":"f2" -> "1":"f1"; 10 | 2:"f1" -> 3:"f2"; 11 | 2:f2 -> 3:f1; 12 | } 13 | -------------------------------------------------------------------------------- /t/in/dot/2_bool.dot: -------------------------------------------------------------------------------- 1 | digraph G { 2 | node [ center 3 | compound 4 | concentrate 5 | constraint 6 | decorate 7 | diredgeconstraints 8 | fixedsize 9 | headclip 10 | labelfloat 11 | landscape 12 | mosek 13 | nojustify 14 | normalize 15 | overlap 16 | pack 17 | pin 18 | regular 19 | remincross 20 | root 21 | splines 22 | tailclip 23 | truecolor 24 | ] 25 | "Bonn" -> "Berlin" 26 | 27 | } 28 | -------------------------------------------------------------------------------- /t/in/dot/2_comment_inside_attr.dot: -------------------------------------------------------------------------------- 1 | digraph G { 2 | a [ label = "a" /* color=red */ ] 3 | 4 | a -> b; 5 | } /* digraph */ 6 | -------------------------------------------------------------------------------- /t/in/dot/2_graph_label_bottom.dot: -------------------------------------------------------------------------------- 1 | digraph GRAPH_0 { 2 | graph [ labelloc=b, label="Deutsche Städte" ] 3 | "Köln" -> "Stralsund" 4 | } 5 | -------------------------------------------------------------------------------- /t/in/dot/2_group_labelloc.dot: -------------------------------------------------------------------------------- 1 | digraph GRAPH_0 { 2 | subgraph "cluster0" { 3 | label="Bergtour:"; 4 | style="filled,dashed"; 5 | labelloc=bottom; 6 | labeljust=l; 7 | 8 | Zugspitze -> Wasserkuppe 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /t/in/dot/2_ignore.dot: -------------------------------------------------------------------------------- 1 | strict digraph G { 2 | node [ pname=123, foo=9, bar=baz ] 3 | 4 | node1 [ fname=o ] 5 | node2 [ bar=zup ] 6 | 7 | node1 -> node2 [ brabble=bramble ] 8 | } 9 | -------------------------------------------------------------------------------- /t/in/dot/2_linewidth.dot: -------------------------------------------------------------------------------- 1 | digraph G {size="11,8.5"; ratio=fill; overlap=false; node[fontsize=10,shape=plaintext];edge[dir=none,style="setlinewidth(0.1)"]; 2 | "123"->"foo"[]; 3 | } 4 | -------------------------------------------------------------------------------- /t/in/dot/2_no_spaces.dot: -------------------------------------------------------------------------------- 1 | strict graph{bonn--berlin} 2 | -------------------------------------------------------------------------------- /t/in/dot/2_nospace.dot: -------------------------------------------------------------------------------- 1 | digraph mike{ 2 | mike -> michael 3 | } 4 | -------------------------------------------------------------------------------- /t/in/dot/2_ports.dot: -------------------------------------------------------------------------------- 1 | digraph ports { 2 | north -> south [ headport=west tailport=east ] 3 | } 4 | -------------------------------------------------------------------------------- /t/in/dot/2_setlinewidth.dot: -------------------------------------------------------------------------------- 1 | digraph { 2 | "Bonn" [ style="setlinewidth(4)" ] 3 | "Berlin" [ style="filled, setlinewidth(5)" ] 4 | 5 | "Bonn" -> "Berlin" 6 | 7 | } 8 | -------------------------------------------------------------------------------- /t/in/dot/2_square_bracket_in_attr.dot: -------------------------------------------------------------------------------- 1 | digraph G { 2 | a [ label = < ] > ] 3 | 4 | a -> b; 5 | } 6 | -------------------------------------------------------------------------------- /t/in/dot/2_strict.dot: -------------------------------------------------------------------------------- 1 | strict digraph G { 2 | Wolfsbüttel -> Köln 3 | } 4 | -------------------------------------------------------------------------------- /t/in/dot/3_colors.dot: -------------------------------------------------------------------------------- 1 | # Differen ways to write colors, all of them should result in "red", 2 | # except "/accent4/4": 3 | digraph G { 4 | subgraph cluster_1 { 5 | pencolor="#ff 00 00"; 6 | # "//" means empty color scheme and is equivalen to "" 7 | node [ color=red fontcolor="//red" ] 8 | 9 | A -> B [ color="#ff0000ff" ] 10 | } 11 | C [ color="0 1.0 1.0" fontcolor="/x11/red" ] 12 | B -> C [ color="1.0,1.0,1.0" ] 13 | // results in "#ffff99" 14 | B [ color="/accent4/4" ] 15 | } 16 | -------------------------------------------------------------------------------- /t/in/dot/3_empty_record.dot: -------------------------------------------------------------------------------- 1 | digraph G { 2 | "Compositor" [shape="record", label="{Compositor||Compose()}"] 3 | } 4 | -------------------------------------------------------------------------------- /t/in/dot/3_empty_record_LR.dot: -------------------------------------------------------------------------------- 1 | digraph G { 2 | rankdir=LR; 3 | "Compositor" [shape="record", label="{Compositor||Compose()}"] 4 | } 5 | -------------------------------------------------------------------------------- /t/in/dot/3_graph_label_long.dot: -------------------------------------------------------------------------------- 1 | digraph GRAPH_0 { 2 | graph [ labelloc=b, label="Deutsche Städte am Rhein" ] 3 | "Köln" -> "Bonn" -> "Koblenz" 4 | } 5 | -------------------------------------------------------------------------------- /t/in/dot/3_ids.dot: -------------------------------------------------------------------------------- 1 | digraph G { 2 | 123abc -> test 3 | } 4 | -------------------------------------------------------------------------------- /t/in/dot/3_invis.dot: -------------------------------------------------------------------------------- 1 | digraph G { 2 | node [ style=invis ] 3 | 4 | { node [ style=filled ] a; c; } 5 | 6 | a -> b -> c; 7 | } 8 | -------------------------------------------------------------------------------- /t/in/dot/3_node_label.dot: -------------------------------------------------------------------------------- 1 | digraph Graphname { 2 | graph [ label="\G" ] 3 | node [ label="\G \N" ] 4 | 5 | 0 -> 1 [ label="\E \G \T \H" ] 6 | 2 [ label="Name: \N \G" ] 7 | } 8 | -------------------------------------------------------------------------------- /t/in/dot/3_output_lone.dot: -------------------------------------------------------------------------------- 1 | digraph G { 2 | output = html; 3 | c:w; /* a node named "c" with port "w" */ 4 | a -> b; 5 | } 6 | -------------------------------------------------------------------------------- /t/in/dot/4_cluster_labeljust.dot: -------------------------------------------------------------------------------- 1 | digraph G { 2 | subgraph cluster_0 { 3 | aaaaaaaaaaaaaaaaaaa -> b; 4 | 5 | labeljust=r; 6 | label="Right aligned"; 7 | } 8 | subgraph cluster_1 { 9 | c -> ddddddddddddddd; 10 | 11 | labeljust=l; 12 | label="Left aligned"; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /t/in/dot/4_compass.dot: -------------------------------------------------------------------------------- 1 | // Test compass directions and port names 2 | // Note: This graph does not have a name, as the ID is optional 3 | digraph { 4 | 5 | bonn [ label=" bonn N | S" shape=record] 6 | berlin [ label=" berlin N | w" shape=record] 7 | 8 | bonn:S -> berlin:w 9 | bonn:s -> berlin:N:w 10 | 11 | } 12 | -------------------------------------------------------------------------------- /t/in/dot/4_html_like.dot: -------------------------------------------------------------------------------- 1 | # these are all invalid HTML-like labels. The should not result 2 | # in errors and the "<>" should be stripped, leaving only the inner 3 | # text as the label text: 4 | digraph G { 5 | first [ label = <> ] 6 | second [ label =<> ] 7 | third [ label =< > ] 8 | fourth [ label = ] 9 | } 10 | -------------------------------------------------------------------------------- /t/in/dot/4_record.dot: -------------------------------------------------------------------------------- 1 | digraph G { 2 | 3 | node1 [ label = " test | split", shape=record ] 4 | node2 [ label = " record | test", shape=record ] 5 | 6 | node1:a1 -> node2:b2 7 | } 8 | -------------------------------------------------------------------------------- /t/in/dot/4_strings.dot: -------------------------------------------------------------------------------- 1 | strict digraph graph0 { 2 | 3 | // test continuation lines (ending in \) 4 | berlin [ label="Berlin\ 5 | Ost" ] 6 | 7 | bonn [ label="Bonn\ 8 | am\ 9 | Rhein" ] 10 | 11 | // test double quoted string continuation "foo" + "bar" in attributes 12 | bonn -> berlin [ label="train" + " (ICE)" ] 13 | 14 | // and nodes 15 | "bonn" + "test" [ label="Bonn" + " (Rhei \ 16 | n)" ] 17 | 18 | // test more than one concat, more than one space plus empty parts 19 | "Cottbus" [ label= "Cot" + "" + "tb" +"" +"" + "us" ] 20 | 21 | "bonntest" -> "Cottbus" 22 | } 23 | -------------------------------------------------------------------------------- /t/in/dot/4_uppercase.dot: -------------------------------------------------------------------------------- 1 | STRICT DIGRAPH "graph" { 2 | EDGE [ label=foo ] 3 | NODE [ style=dotted ] 4 | SUBGRAPH cluster_me { 5 | a -> b 6 | } 7 | c -> d 8 | } 9 | -------------------------------------------------------------------------------- /t/in/dot/5_scope_atr.dot: -------------------------------------------------------------------------------- 1 | digraph GRAPH_0 { 2 | 3 | b [ style=rounded ] 4 | 5 | a -> { node [ shape=plaintext ] b c d } 6 | { b c d } -> u 7 | } 8 | -------------------------------------------------------------------------------- /t/in/dot/5_scopes.dot: -------------------------------------------------------------------------------- 1 | digraph GRAPH_0 { 2 | 3 | a -> { b c d } 4 | { b c d } -> u 5 | } 6 | -------------------------------------------------------------------------------- /t/in/dot/5_scopes_chain.dot: -------------------------------------------------------------------------------- 1 | digraph GRAPH_0 { 2 | a -> { b c d } -> o 3 | } 4 | -------------------------------------------------------------------------------- /t/in/dot/5_scopes_uni.dot: -------------------------------------------------------------------------------- 1 | digraph GRAPH_0 { 2 | a -- { b c d } -- o 3 | } 4 | -------------------------------------------------------------------------------- /t/in/dot/6_2_cluster.dot: -------------------------------------------------------------------------------- 1 | digraph G { 2 | 3 | subgraph cluster_first { 4 | a -> b; 5 | label=first; 6 | } 7 | 8 | subgraph cluster_second { 9 | p -> q -> r -> s 10 | label=second; 11 | s -> p; 12 | } 13 | 14 | r -> a [ style=bold ]; 15 | b -> q; 16 | } 17 | -------------------------------------------------------------------------------- /t/in/dot/6_comments.dot: -------------------------------------------------------------------------------- 1 | /* this is a 2 | * multi line 3 | * comment 4 | */ 5 | /* comment */ digraph /* one comment */ GRAPH_0 /* another */ /* comment */ { // comment 6 | // comment 7 | a -> /* comment */ { b c /* comment */ d } 8 | { b /* comment */ c d } /* comment */ -> u 9 | " my node /* not a comment */ " -> b 10 | } 11 | -------------------------------------------------------------------------------- /t/in/dot/6_group_align.dot: -------------------------------------------------------------------------------- 1 | ( Left: [ A ] -> [ B ]) { align: left; } 2 | ( Right: [ C ] -> [ D ]) { align: right; } 3 | ( Center: [ E ] -> [ F ]) { align: center; } 4 | -------------------------------------------------------------------------------- /t/in/dot/7_record.dot: -------------------------------------------------------------------------------- 1 | digraph gaph { 2 | graph [ labeljust=l, label="Left aligned label" ] 3 | 4 | " Aa | Bb | Cc" [ shape=rect ]; 5 | 6 | node [ shape=record ] 7 | 8 | a [ label = " AA | BB | CC" ] 9 | " A | B | C"; 10 | } 11 | -------------------------------------------------------------------------------- /t/in/dot/9_back.dot: -------------------------------------------------------------------------------- 1 | digraph G { 2 | graph [rankdir=LR]; 3 | "11" -> "1" 4 | "1" -> "2" 5 | "2" -> "3" 6 | "1" -> "10" 7 | "3" -> "8" 8 | "8" -> "5" [ dir=back; ] 9 | "5" -> "6" 10 | "10" -> "6" 11 | "0" -> "11" 12 | } 13 | -------------------------------------------------------------------------------- /t/in/dot/9_stacking.dot: -------------------------------------------------------------------------------- 1 | digraph G { 2 | graph [rankdir=LR]; 3 | "11" -> "1" 4 | "1" -> "2" 5 | "2" -> "3" 6 | "1" -> "10" 7 | "3" -> "8" 8 | "8" -> "5" 9 | "5" -> "6" 10 | "10" -> "6" 11 | "0" -> "11" 12 | } 13 | -------------------------------------------------------------------------------- /t/in/dot/9_tree.dot: -------------------------------------------------------------------------------- 1 | digraph G { 2 | node [ shape=record ]; 3 | node0 [label = " | A| "]; 4 | node1 [label = " | B| "]; 5 | node2 [label = " | C| "]; 6 | "node0":f0 -> "node1":f1; 7 | "node1":f0 -> "node2":f1; 8 | "node0":f2 -> "node2":f2; 9 | } 10 | -------------------------------------------------------------------------------- /t/in/gdl/1_color_code.gdl: -------------------------------------------------------------------------------- 1 | graph: { 2 | title: "Graph of sub_105D40F" 3 | // contains ^M as line-ends and ^L[0-9]+ as color codes 4 | node: { title: "0" label: " 58sub_105D40F 31: 5 | mov edi, esi 6 | push ebp 7 | jz short loc_105D27B" vertical_order: 0 } 8 | } 9 | -------------------------------------------------------------------------------- /t/in/gdl/2_bottom_to_top.gdl: -------------------------------------------------------------------------------- 1 | graph: { 2 | orientation: "bottom_to_top" 3 | 4 | node: { title: "A" } 5 | node: { title: "B" } 6 | edge: { source: "A" target: "B" } 7 | } 8 | -------------------------------------------------------------------------------- /t/in/gdl/2_left_to_right.gdl: -------------------------------------------------------------------------------- 1 | graph: { 2 | orientation: "left_to_right" 3 | 4 | node: { title: "A" } 5 | node: { title: "B" } 6 | edge: { source: "A" target: "B" } 7 | } 8 | -------------------------------------------------------------------------------- /t/in/gdl/2_right_to_left.gdl: -------------------------------------------------------------------------------- 1 | graph: { 2 | orientation: "right_to_left" 3 | 4 | node: { title: "A" } 5 | node: { title: "B" } 6 | edge: { source: "A" target: "B" } 7 | } 8 | -------------------------------------------------------------------------------- /t/in/gdl/2_top_to_bottom.gdl: -------------------------------------------------------------------------------- 1 | graph: { 2 | orientation: "top_to_bottom" 3 | 4 | node: { title: "A" } 5 | node: { title: "B" } 6 | edge: { source: "A" target: "B" } 7 | } 8 | -------------------------------------------------------------------------------- /t/layouter/edge_label.txt: -------------------------------------------------------------------------------- 1 | [ Bonn ] -- train --> [ Berlin ] -> [ Potsdam ] 2 | [ Berlin ] -> [ Ulm ] 3 | [ Bonn ] -> [ Potsdam ] 4 | -------------------------------------------------------------------------------- /t/layouter/layouter.txt: -------------------------------------------------------------------------------- 1 | [ Bonn ] -> [ Berlin ] -> [ Kassel ] 2 | [ Bonn ] -> [ Koblenz ] 3 | [ Bonn ] -> [ Ulm ] -> [ Koblenz ] 4 | [ Ulm ] -> [ Bautzen ] -> [ Berlin ] 5 | -------------------------------------------------------------------------------- /t/layouter/layouter_chain.txt: -------------------------------------------------------------------------------- 1 | [ Bonn ] -> [ Berlin ] -> [ Kassel ] 2 | [ Bonn ] -> [ Koblenz ] -> [ Berlin ] 3 | [ Bonn ] -> [ Ulm ] -> [ Koblenz ] 4 | [ Ulm ] -> [ Bautzen ] -> [ Berlin ] 5 | -------------------------------------------------------------------------------- /t/layouter/layouter_loop.txt: -------------------------------------------------------------------------------- 1 | [ Bonn ] -> [ Berlin ] -> [ Kassel ] 2 | [ Bonn ] -> [ Koblenz ] -> [ Berlin ] 3 | [ Bonn ] -> [ Ulm ] -> [ Koblenz ] 4 | [ Ulm ] -> [ Bautzen ] -> [ Berlin ] 5 | [ Bautzen ] -> [ Bonn ] 6 | -------------------------------------------------------------------------------- /t/layouter/multiples.txt: -------------------------------------------------------------------------------- 1 | node { background: yellow; } 2 | 3 | 4 | [ Bonn ] ..> [ Berlin ] -> [ Kassel ] 5 | [ Bonn ] .-> [ Koblenz ] 6 | [ Bonn ] -> [ Ulm ] -> [ Koblenz ] 7 | [ Ulm ] -> [ Bautzen ] -> [ Berlin ] 8 | 9 | [ 1Bonn ] ..> [ 1Berlin ] -> [ 1Kassel ] 10 | [ 1Bonn ] .-> [ 1Koblenz ] 11 | [ 1Bonn ] -> [ 1Ulm ] -> [ 1Koblenz ] 12 | [ 1Ulm ] -> [ 1Bautzen ] -> [ 1Berlin ] 13 | 14 | 15 | [ 2Bonn ] ..> [ 2Berlin ] -> [ 2Kassel ] 16 | [ 2Bonn ] .-> [ 2Koblenz ] 17 | [ 2Bonn ] -> [ 2Ulm ] -> [ 2Koblenz ] 18 | [ 2Ulm ] -> [ 2Bautzen ] -> [ 2Berlin ] 19 | 20 | -------------------------------------------------------------------------------- /t/layouter/state.txt: -------------------------------------------------------------------------------- 1 | [ Start ] --> [ Main ] 2 | 3 | [ Main ] -- Until not done --> [ Main ] 4 | [ Main ] --> [ End ] 5 | -------------------------------------------------------------------------------- /t/out/0_empty_group.txt: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /t/out/0_empty_groups.txt: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /t/out/10borders.txt: -------------------------------------------------------------------------------- 1 | + - - - - - - -+ 2 | ' Dashed ' ==> none 3 | + - - - - - - -+ 4 | +--------------+ .......... 5 | | Solid | ..> : Dotted : 6 | +--------------+ :........: 7 | +-.-.-.-.-.-.-.+ ########## 8 | ! dot-dash ! - > # Bold # 9 | +-.-.-.-.-.-.-.+ ########## 10 | +.-..-..-..-..-+ +~~~~~~~~+ 11 | | dot-dot-dash | .-> { wave { 12 | +.-..-..-..-..-+ +~~~~~~~~+ 13 | # = = = = = = =# #========# 14 | " double-dash " ~~> H Double H 15 | # = = = = = = =# #========# 16 | -------------------------------------------------------------------------------- /t/out/1_bidi_loop.txt: -------------------------------------------------------------------------------- 1 | 2 | +--+ 3 | v v 4 | +------+ 5 | +--> | | <--+ 6 | | | Hamm | | 7 | +--> | | <--+ 8 | +------+ 9 | ^ ^ 10 | +--+ 11 | -------------------------------------------------------------------------------- /t/out/1_empty_group.txt: -------------------------------------------------------------------------------- 1 | +---------+ 2 | | Outside | 3 | +---------+ 4 | -------------------------------------------------------------------------------- /t/out/1_selfloop.txt: -------------------------------------------------------------------------------- 1 | 2 | +--+ 3 | v | 4 | +------+ 5 | | One | 6 | +------+ 7 | -------------------------------------------------------------------------------- /t/out/1_selfloop_2.txt: -------------------------------------------------------------------------------- 1 | Until not done 2 | +----------------+ 3 | v | 4 | Until not done +--------------------+ Until not done 5 | +----------------- | | -----------------+ 6 | | | Main | | 7 | +----------------> | | <----------------+ 8 | +--------------------+ 9 | ^ Until not done | 10 | +----------------+ 11 | -------------------------------------------------------------------------------- /t/out/1_selfloop_label.txt: -------------------------------------------------------------------------------- 1 | Alle Jahre Wieder 2 | +-------------------+ 3 | v | 4 | +-----------------------+ 5 | | Freiburg | 6 | +-----------------------+ 7 | -------------------------------------------------------------------------------- /t/out/1_undirected_loop.txt: -------------------------------------------------------------------------------- 1 | 2 | +--+ 3 | | | 4 | +------+ 5 | +--- | | ---+ 6 | | | A | | 7 | +--- | | ---+ 8 | +------+ 9 | | | 10 | +--+ 11 | -------------------------------------------------------------------------------- /t/out/1node.txt: -------------------------------------------------------------------------------- 1 | +-----+ 2 | | One | 3 | +-----+ 4 | -------------------------------------------------------------------------------- /t/out/25_autosplit_empty.txt: -------------------------------------------------------------------------------- 1 | +--+----+-----+ +----+ 2 | | | C | | --> | A1 | 3 | +--+----+-----+ +----+ 4 | +---+---+ +----+ 5 | | D | | --> | A2 | 6 | +---+---+ +----+ 7 | +--+----+ +----+ 8 | | | E | --> | A3 | 9 | +--+----+ +----+ 10 | +---+ +----+ 11 | | F | --> | A4 | 12 | +---+ +----+ 13 | +---+ +----+ 14 | | G | --> | A5 | 15 | +---+ +----+ 16 | +--+---+ +----+ 17 | | | H | --> | A6 | 18 | +--+---+ +----+ 19 | -------------------------------------------------------------------------------- /t/out/2_autolabel.txt: -------------------------------------------------------------------------------- 1 | +---------------------+ Acme Tr ... porated +---------------------+ 2 | | Bonn (e ... tstadt) | ---------------------> | Frankfu ... ughafen | 3 | +---------------------+ +---------------------+ 4 | -------------------------------------------------------------------------------- /t/out/2_autosplit_empty.txt: -------------------------------------------------------------------------------- 1 | +--------+----------+ 2 | | Siegen | Siegburg | 3 | +--------+----------+ 4 | -------------------------------------------------------------------------------- /t/out/2_autosplit_escaped.txt: -------------------------------------------------------------------------------- 1 | +-------+---+ 2 | | A | B | C | 3 | +-------+---+ 4 | -------------------------------------------------------------------------------- /t/out/2_bidi_astar.txt: -------------------------------------------------------------------------------- 1 | +--------+ +--------------+ 2 | | Erfurt | <--------> | Bad Schandau | 3 | +--------+ +--------------+ 4 | -------------------------------------------------------------------------------- /t/out/2_bidi_endpoint.txt: -------------------------------------------------------------------------------- 1 | +--------+ +--------------+ 2 | | Erfurt | <--------> | Bad Schandau | 3 | +--------+ +--------------+ 4 | -------------------------------------------------------------------------------- /t/out/2_class.txt: -------------------------------------------------------------------------------- 1 | #===# #===# 2 | H A H --> H B H 3 | #===# #===# 4 | -------------------------------------------------------------------------------- /t/out/2_classes.txt: -------------------------------------------------------------------------------- 1 | +-----+ red +-------+ 2 | | Red | -----> | Black | 3 | +-----+ +-------+ 4 | -------------------------------------------------------------------------------- /t/out/2_cluster.txt: -------------------------------------------------------------------------------- 1 | +---------+ +--------+ 2 | | Hamburg | --> | Altona | 3 | +---------+ +--------+ 4 | -------------------------------------------------------------------------------- /t/out/2_cluster_2.txt: -------------------------------------------------------------------------------- 1 | +---------+ +--------+ 2 | | | --> | | 3 | | Hamburg | | Altona | 4 | | | | | 5 | | | --> | | 6 | +---------+ +--------+ 7 | -------------------------------------------------------------------------------- /t/out/2_cluster_3.txt: -------------------------------------------------------------------------------- 1 | 2 | +---------+ 3 | | v 4 | +---------+ +--------+ 5 | | | --> | | 6 | | Hamburg | | Altona | 7 | | | | | 8 | | | --> | | 9 | +---------+ +--------+ 10 | -------------------------------------------------------------------------------- /t/out/2_dot.txt: -------------------------------------------------------------------------------- 1 | 2 | // digraph G { 3 | 4 | +-------------+ +---------+ 5 | | Kummersbach | --> | Düsburg | 6 | +-------------+ +---------+ 7 | -------------------------------------------------------------------------------- /t/out/2_dot_dot_dash.txt: -------------------------------------------------------------------------------- 1 | +.-..-..-..-..-..+ +-.-+ 2 | | Test | ! ! 3 | : Test : ! B ! 4 | | Test test test | ! ! 5 | : test : ..-> ! ! 6 | +.-..-..-..-..-..+ +-.-+ 7 | -------------------------------------------------------------------------------- /t/out/2_edges.txt: -------------------------------------------------------------------------------- 1 | 2 | +-----------+ 3 | | v 4 | +-----+ +-----+ 5 | | One | --> | Two | 6 | +-----+ +-----+ 7 | -------------------------------------------------------------------------------- /t/out/2_flow.txt: -------------------------------------------------------------------------------- 1 | 2 | +------------+ 3 | | v 4 | +------+ +-------+ 5 | | Left | | Right | 6 | +------+ +-------+ 7 | -------------------------------------------------------------------------------- /t/out/2_graph_label.txt: -------------------------------------------------------------------------------- 1 | 2 | My Graph 3 | 4 | +------------+ +--------+ 5 | | Regensburg | --> | Passau | 6 | +------------+ +--------+ 7 | -------------------------------------------------------------------------------- /t/out/2_group.txt: -------------------------------------------------------------------------------- 1 | + - - - - - - - - - - - - + 2 | ' Test ' 3 | ' group ' 4 | ' ' 5 | ' +------+ +--------+ ' 6 | ' | Bonn | --> | Berlin | ' 7 | ' +------+ +--------+ ' 8 | ' ' 9 | + - - - - - - - - - - - - + 10 | -------------------------------------------------------------------------------- /t/out/2_group_labelpos.txt: -------------------------------------------------------------------------------- 1 | + - - - - - - - - - - - - - - - - - + 2 | ' ' 3 | ' +-----------+ +-------------+ ' 4 | ' | Zugspitze | --> | Wasserkuppe | ' 5 | ' +-----------+ +-------------+ ' 6 | ' ' 7 | ' Bergtour: ' 8 | + - - - - - - - - - - - - - - - - - + 9 | -------------------------------------------------------------------------------- /t/out/2_group_multicell.txt: -------------------------------------------------------------------------------- 1 | + - - - - - - - - - - - - - - - - - - - -+ 2 | ' Some group: ' 3 | ' ' 4 | ' +-------------------+ +--------+ ' 5 | ' | Frankfurt a. Main | ----> | Berlin | ' 6 | ' | (Flughafen) | +--------+ ' 7 | ' | | ' 8 | ' +-------------------+ - - - - - - - -+ 9 | ' ' 10 | + - - - - - - - - - - - + 11 | -------------------------------------------------------------------------------- /t/out/2_group_no_border.txt: -------------------------------------------------------------------------------- 1 | Test 2 | group 3 | 4 | +------+ +--------+ 5 | | Bonn | --> | Berlin | 6 | +------+ +--------+ 7 | -------------------------------------------------------------------------------- /t/out/2_invisible_left.txt: -------------------------------------------------------------------------------- 1 | +--------+ 2 | --> | Berlin | 3 | +--------+ 4 | -------------------------------------------------------------------------------- /t/out/2_invisible_right.txt: -------------------------------------------------------------------------------- 1 | +------+ 2 | | Bonn | --> 3 | +------+ 4 | -------------------------------------------------------------------------------- /t/out/2_label.txt: -------------------------------------------------------------------------------- 1 | +---+ +---+ 2 | | A | --> | A | 3 | +---+ +---+ 4 | -------------------------------------------------------------------------------- /t/out/2_label_align.txt: -------------------------------------------------------------------------------- 1 | +-----------------+ +---+ 2 | | Long Node Label | A | | 3 | | left | long | B | 4 | | right | edge label | | 5 | | center | ------------> | | 6 | +-----------------+ +---+ 7 | -------------------------------------------------------------------------------- /t/out/2_list_attr.txt: -------------------------------------------------------------------------------- 1 | + - - - -+ 2 | ' Berlin ' 3 | + - - - -+ 4 | + - - - -+ 5 | ' Bonn ' 6 | + - - - -+ 7 | -------------------------------------------------------------------------------- /t/out/2_long_labels.txt: -------------------------------------------------------------------------------- 1 | +------+ +---+ 2 | | My | A | | 3 | | long | long | B | 4 | | node | label | | 5 | | name | -------> | | 6 | +------+ +---+ 7 | -------------------------------------------------------------------------------- /t/out/2_newlines.txt: -------------------------------------------------------------------------------- 1 | +--------+ .......... 2 | | Berlin | : Berlin : 3 | | (W) | --> : (O) : 4 | +--------+ :........: 5 | -------------------------------------------------------------------------------- /t/out/2_nodes_inv.txt: -------------------------------------------------------------------------------- 1 | +---+ +---+ 2 | | A | ~~> | B | 3 | +---+ +---+ 4 | -------------------------------------------------------------------------------- /t/out/2_selfloop.txt: -------------------------------------------------------------------------------- 1 | +--------------------+ 2 | | Start | 3 | +--------------------+ 4 | | 5 | | 6 | v 7 | Until not done +--------------------+ Until not done 8 | +----------------- | | -----------------+ 9 | | | Main | | 10 | +----------------> | | <----------------+ 11 | +--------------------+ 12 | ^ Until not done | 13 | +----------------+ 14 | -------------------------------------------------------------------------------- /t/out/2_selfloop_flow_down.txt: -------------------------------------------------------------------------------- 1 | +-------+ 2 | | Start | 3 | +-------+ 4 | | 5 | | 6 | v 7 | Until not done +-------+ Until done 8 | +----------------- | | -------------+ 9 | | | Main | | 10 | +----------------> | | <------------+ 11 | +-------+ 12 | -------------------------------------------------------------------------------- /t/out/2_split_bug.txt: -------------------------------------------------------------------------------- 1 | +-----------+ 2 | | Some [] | 3 | +-----------+ 4 | | Autosplit | 5 | +-----------+ 6 | -------------------------------------------------------------------------------- /t/out/2_wrap.txt: -------------------------------------------------------------------------------- 1 | +------------+ Drive +------------+ 2 | | Frankfurt | a car | Small | 3 | | Oder | to | city near | 4 | | Flughafen- | the | a | 5 | | Terminal | destination | beautyfull | 6 | | | -------------> | river | 7 | +------------+ +------------+ 8 | -------------------------------------------------------------------------------- /t/out/2_zeros.txt: -------------------------------------------------------------------------------- 1 | 0 2 | +----------+ 3 | v | 4 | +---+ 0 +---+ 5 | | 0 | ---> | 0 | 6 | +---+ +---+ 7 | -------------------------------------------------------------------------------- /t/out/2nodes.txt: -------------------------------------------------------------------------------- 1 | +-----+ +-----+ 2 | | One | ==> | Two | 3 | +-----+ +-----+ 4 | -------------------------------------------------------------------------------- /t/out/3_autosplit_hang.txt: -------------------------------------------------------------------------------- 1 | +---+ +---+---+ 2 | | 1 | --> | 2 | 3 | 3 | +---+ +---+---+ 4 | -------------------------------------------------------------------------------- /t/out/3_bend_bug.txt: -------------------------------------------------------------------------------- 1 | +------+ +-----------+ 2 | | Bonn | | Berlin | 3 | +------+ +-----------+ 4 | | 5 | | 6 | | 7 | | +-----------+ 8 | +--------> | Frankfurt | 9 | +-----------+ 10 | -------------------------------------------------------------------------------- /t/out/3_cache_bug.txt: -------------------------------------------------------------------------------- 1 | + - - - + 2 | ' G ' 3 | ' ' 4 | ' +---+ ' 5 | ' | A | ' ------+ 6 | ' +---+ ' | 7 | ' ' | 8 | + - - - + | 9 | | 10 | | C 11 | v 12 | +----+ 13 | | B | --> 14 | +----+ 15 | -------------------------------------------------------------------------------- /t/out/3_cluster.txt: -------------------------------------------------------------------------------- 1 | +-------+-----------+-----------+ 2 | | Husum | Schleswig | Flensburg | 3 | +-------+-----------+-----------+ 4 | -------------------------------------------------------------------------------- /t/out/3_colors.txt: -------------------------------------------------------------------------------- 1 | +----------+ +-----+ +--------+ 2 | | Preserve | --> | The | --> | Colors | 3 | +----------+ +-----+ +--------+ 4 | -------------------------------------------------------------------------------- /t/out/3_corrupt.txt: -------------------------------------------------------------------------------- 1 | +----+ +------+ +----+ 2 | | AB | --> | ABCB | --> | AB | 3 | +----+ +------+ +----+ 4 | -------------------------------------------------------------------------------- /t/out/3_edge_labels_from_class.txt: -------------------------------------------------------------------------------- 1 | +---+ Yes +---+ MyLabel +---+ 2 | | A | -----> | B | ---------> | C | 3 | +---+ +---+ +---+ 4 | -------------------------------------------------------------------------------- /t/out/3_edge_repair.txt: -------------------------------------------------------------------------------- 1 | 2 | #====# 3 | H H 4 | + - - - - - - - - - - - - -+ H H 5 | ' Router: ' H H 6 | ' ' H v 7 | ' +-------+ +--------+ ' H +---------+ 8 | ' | Input | --> | Output | ' H | Network | 9 | ' +-------+ +--------+ ' H +---------+ 10 | ' ' H 11 | + - - - - - - - - - - - - -+ H 12 | H H 13 | #===========# 14 | -------------------------------------------------------------------------------- /t/out/3_edge_start.txt: -------------------------------------------------------------------------------- 1 | +---+ +---+ 2 | | | --> | C | 3 | | A | +---+ 4 | | | +---+ 5 | | | --> | B | 6 | +---+ +---+ 7 | -------------------------------------------------------------------------------- /t/out/3_empty_group.txt: -------------------------------------------------------------------------------- 1 | 2 | +---+ +---+ 3 | | A | --> | B | 4 | +---+ +---+ 5 | +---+ 6 | | C | 7 | +---+ 8 | -------------------------------------------------------------------------------- /t/out/3_flow.txt: -------------------------------------------------------------------------------- 1 | +-----------+ +-----------+ 2 | | Wolfsburg | <-- | Bielefeld | 3 | +-----------+ +-----------+ 4 | ^ 5 | | 6 | | 7 | +-----------+ 8 | | Enschede | 9 | +-----------+ 10 | -------------------------------------------------------------------------------- /t/out/3_group_align_center.txt: -------------------------------------------------------------------------------- 1 | 2 | My Graph 3 | 4 | Nodes: 5 | 6 | +---------+ label +---------+ +---------+ 7 | | Right | text | Left | | Center | 8 | | Aligned | -------> | aligned | --> | aligned | 9 | +---------+ +---------+ +---------+ 10 | -------------------------------------------------------------------------------- /t/out/3_inherit.txt: -------------------------------------------------------------------------------- 1 | +------------+ 2 | | Left | 3 | +------------+ 4 | | 5 | | 6 | v 7 | +------------+ 8 | | Lefty, too | 9 | +------------+ 10 | | 11 | | 12 | v 13 | +------------+ 14 | | Right | 15 | +------------+ 16 | -------------------------------------------------------------------------------- /t/out/3_invisible_both.txt: -------------------------------------------------------------------------------- 1 | +------+ 2 | --> | Bonn | --> 3 | +------+ 4 | -------------------------------------------------------------------------------- /t/out/3_joining.txt: -------------------------------------------------------------------------------- 1 | 2 | +---------+----+ 3 | | v | 4 | +---+ +---+ | 5 | | A | | C | | 6 | +---+ +---+ | 7 | | ^ | 8 | | | | 9 | +---------+ | 10 | | | 11 | | | 12 | | | 13 | v | 14 | +---+ | 15 | | B | <+ 16 | +---+ 17 | -------------------------------------------------------------------------------- /t/out/3_joint.txt: -------------------------------------------------------------------------------- 1 | +----------+ +--------+ 2 | | Mannheim | ------+-> | Weimar | 3 | +----------+ | +--------+ 4 | | 5 | | 6 | | 7 | +----------+ | 8 | | Potsdam | ------+ 9 | +----------+ 10 | -------------------------------------------------------------------------------- /t/out/3_joint_short.txt: -------------------------------------------------------------------------------- 1 | +---+ 2 | | C | 3 | +---+ 4 | ^ 5 | | 6 | | 7 | +---++---+ | 8 | | A || B | | 9 | +---++---+ | 10 | | | | 11 | +----+----+ 12 | -------------------------------------------------------------------------------- /t/out/3_list_attr.txt: -------------------------------------------------------------------------------- 1 | + - - - -+ test +-.-.-.-.-.-+ test + - - -+ 2 | ' Berlin ' ------> ! Frankfurt ! <------ ' Bonn ' 3 | + - - - -+ +-.-.-.-.-.-+ + - - -+ 4 | -------------------------------------------------------------------------------- /t/out/3_lists.txt: -------------------------------------------------------------------------------- 1 | +------+ +--------+ +-----+ 2 | | Bonn | --> | Berlin | <-- | Ulm | 3 | +------+ +--------+ +-----+ 4 | -------------------------------------------------------------------------------- /t/out/3_nodes_5_edges.txt: -------------------------------------------------------------------------------- 1 | 2 | +- - - - - - - - - - - - - - - - - - + 3 | ' v 4 | +--------------+ +---------+ +-----------+ 5 | +- | Default Page | --> | Sign Up | --> | | 6 | ! +--------------+ +---------+ | | 7 | ! " | | 8 | ! #= = = = = = = = = = = = = = = = > | Main Page | 9 | ! | | 10 | ! | | 11 | +-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-> | | 12 | +-----------+ 13 | -------------------------------------------------------------------------------- /t/out/3_selfloop.txt: -------------------------------------------------------------------------------- 1 | Until not done 2 | +----------------+ 3 | v | 4 | +-------+ +--------------------+ +-----+ 5 | | Start | --> | Main | --> | End | 6 | +-------+ +--------------------+ +-----+ 7 | -------------------------------------------------------------------------------- /t/out/3_selfloop_flip.txt: -------------------------------------------------------------------------------- 1 | 2 | +------+ 3 | v | 4 | +--------+ +----------+ +----------+ 5 | | Adenau | --> | Monschau | <-- | Nideggen | 6 | +--------+ +----------+ +----------+ 7 | -------------------------------------------------------------------------------- /t/out/3_selfloop_flow_down.txt: -------------------------------------------------------------------------------- 1 | +-------+ 2 | | Start | 3 | +-------+ 4 | | 5 | | 6 | v 7 | +-------+ Until not done 8 | | | -----------------+ 9 | | Main | | 10 | | | <----------------+ 11 | +-------+ 12 | | 13 | | 14 | v 15 | +-------+ 16 | | End | 17 | +-------+ 18 | -------------------------------------------------------------------------------- /t/out/3_selfloop_flow_left.txt: -------------------------------------------------------------------------------- 1 | +-----+ +--------------------+ +-------+ 2 | | End | <-- | Main | <-- | Start | 3 | +-----+ +--------------------+ +-------+ 4 | ^ Until not done | 5 | +----------------+ 6 | -------------------------------------------------------------------------------- /t/out/3_selfloop_flow_up.txt: -------------------------------------------------------------------------------- 1 | +-------+ 2 | | End | 3 | +-------+ 4 | ^ 5 | | 6 | | 7 | Until not done +-------+ 8 | +----------------- | | 9 | | | Main | 10 | +----------------> | | 11 | +-------+ 12 | ^ 13 | | 14 | | 15 | +-------+ 16 | | Start | 17 | +-------+ 18 | -------------------------------------------------------------------------------- /t/out/3_split_attribute.txt: -------------------------------------------------------------------------------- 1 | + - - - - - + 2 | ' Some ' 3 | +-----------+ 4 | | Autosplit | 5 | +-----------+ 6 | | Node | 7 | +-----------+ 8 | -------------------------------------------------------------------------------- /t/out/3nodes.txt: -------------------------------------------------------------------------------- 1 | +-----+ +-----+ +-------+ 2 | | One | ==> | Two | - > | Three | 3 | +-----+ +-----+ +-------+ 4 | -------------------------------------------------------------------------------- /t/out/4_2x2nodes.txt: -------------------------------------------------------------------------------- 1 | # XXX TODO There should be a space between the rows 2 | +-----------+ +--------+ 3 | | Frankfurt | --> | Hof | 4 | +-----------+ +--------+ 5 | +-----------+ +--------+ 6 | | Hamburg | --> | Altona | 7 | +-----------+ +--------+ 8 | -------------------------------------------------------------------------------- /t/out/4_att.txt: -------------------------------------------------------------------------------- 1 | +------------+ +---+ 2 | | $a = "9"; | | 2 | 3 | | my $b = 1; | --> | | 4 | +------------+ +---+ 5 | +------------+ +---+ 6 | | $a = ";% | --> | 4 | 7 | +------------+ +---+ 8 | -------------------------------------------------------------------------------- /t/out/4_autosplit_class.txt: -------------------------------------------------------------------------------- 1 | #===#.... 2 | H A H B : 3 | #===#...: 4 | + - +===# 5 | ' C H D H 6 | + - +===# 7 | -------------------------------------------------------------------------------- /t/out/4_autosplit_empty.txt: -------------------------------------------------------------------------------- 1 | 2 | +---------+ 3 | | v 4 | +---+----+----+---+ 5 | | 1 | 2 | | 3 | 6 | +---+----+----+---+ 7 | -------------------------------------------------------------------------------- /t/out/4_autosplit_offset.txt: -------------------------------------------------------------------------------- 1 | +---+ 2 | | 1 | -----------+ 3 | +---+ v 4 | +---+----+ +---+ 5 | | 2 | 3 | --> | 3 | 6 | +---+----+ +---+ 7 | -------------------------------------------------------------------------------- /t/out/4_autosplit_shape.txt: -------------------------------------------------------------------------------- 1 | +---+ 2 | | A | B 3 | +---+ 4 | |---+ 5 | C | D | 6 | ---+ 7 | -------------------------------------------------------------------------------- /t/out/4_bend_bug.txt: -------------------------------------------------------------------------------- 1 | +--------+ +-----------+ 2 | | Bonn | -+ | Ulm | 3 | +--------+ | +-----------+ 4 | | 5 | | 6 | | 7 | +--------+ | +-----------+ 8 | | Berlin | +> | Frankfurt | 9 | +--------+ +-----------+ 10 | -------------------------------------------------------------------------------- /t/out/4_bug_basename.txt: -------------------------------------------------------------------------------- 1 | +---+ 2 | +------ | u | -+ 3 | | +---+ | 4 | | | | 5 | | | | 6 | v v | 7 | +---+----+----+ | 8 | | a | b | c | | 9 | +---+----+----+ | 10 | ^ | 11 | +---------+ 12 | -------------------------------------------------------------------------------- /t/out/4_bug_joint_2.txt: -------------------------------------------------------------------------------- 1 | +---+ 2 | | E | 3 | +---+ 4 | | 5 | | 6 | | 7 | | 8 | | +---+ 9 | +----+-- | B | 10 | | +---+ 11 | | 12 | | 13 | | 14 | | +---+ 15 | +-- | C | 16 | | +---+ 17 | | +---+ 18 | +-- | D | 19 | +---+ 20 | -------------------------------------------------------------------------------- /t/out/4_collapse.txt: -------------------------------------------------------------------------------- 1 | +-----------+ S P A C E +-----------+ 2 | | S P A C E | -----------> | S P A C Y | 3 | +-----------+ +-----------+ 4 | +-----------+ A B C D +-----------+ 5 | | A B C | -----------> | X Z Y | 6 | +-----------+ +-----------+ 7 | -------------------------------------------------------------------------------- /t/out/4_comma.txt: -------------------------------------------------------------------------------- 1 | +---+ +---+ +---+ 2 | | 1 | --> | 4 | <-- | 3 | 3 | +---+ +---+ +---+ 4 | ^ 5 | | 6 | | 7 | +---+ 8 | | 2 | 9 | +---+ 10 | -------------------------------------------------------------------------------- /t/out/4_cross.txt: -------------------------------------------------------------------------------- 1 | +---+ 2 | | C | 3 | +---+ 4 | ' 5 | ' 6 | ' 7 | +---+ ' +---+ 8 | | A | ------+-----> | B | 9 | +---+ ' +---+ 10 | ' 11 | ' 12 | v 13 | +---+ 14 | | D | 15 | +---+ 16 | -------------------------------------------------------------------------------- /t/out/4_cross_inv.txt: -------------------------------------------------------------------------------- 1 | +---+ 2 | | C | 3 | +---+ 4 | ' 5 | ' 6 | ' 7 | +---+ ' +---+ 8 | | A | ' | B | 9 | +---+ ' +---+ 10 | ' 11 | ' 12 | v 13 | +---+ 14 | | D | 15 | +---+ 16 | -------------------------------------------------------------------------------- /t/out/4_edge_cross.txt: -------------------------------------------------------------------------------- 1 | 2 | +---------------------+ 3 | | | 4 | | | 5 | +----------+----------+ | 6 | | | v v 7 | +----+ +----+ +----+ +----+ 8 | | E1 | --> | E2 | --> | S1 | --> | S2 | 9 | +----+ +----+ +----+ +----+ 10 | | ^ 11 | +--------------------------------+ 12 | -------------------------------------------------------------------------------- /t/out/4_edge_labels.txt: -------------------------------------------------------------------------------- 1 | car 2 | +-----------------------------------+ 3 | | v 4 | +------+ train +--------+ bus +---------+ 5 | | Bonn | =======> | Berlin | .....> | Potsdam | 6 | +------+ +--------+ +---------+ 7 | ! 8 | ! bike 9 | v 10 | +--------+ 11 | | Ulm | 12 | +--------+ 13 | -------------------------------------------------------------------------------- /t/out/4_edge_types.txt: -------------------------------------------------------------------------------- 1 | +---------------+ +--------------+ 2 | | Bingen | <----------> | Mainz | 3 | +---------------+ +--------------+ 4 | +---------------+ test-text +--------------+ 5 | | Bischofswerde | -----------> | Finsterwalde | 6 | +---------------+ +--------------+ 7 | -------------------------------------------------------------------------------- /t/out/4_endless_loop.txt: -------------------------------------------------------------------------------- 1 | +---+ +---+ 2 | | 1 | --> | 2 | 3 | +---+ +---+ 4 | +---+----+ 5 | | 3 | 4 | 6 | +---+----+ 7 | -------------------------------------------------------------------------------- /t/out/4_endless_loop_2.txt: -------------------------------------------------------------------------------- 1 | +---+ +---+ 2 | | 1 | --> | 2 | 3 | +---+ +---+ 4 | +---+----+ 5 | | 3 | 4 | 6 | +---+----+ 7 | -------------------------------------------------------------------------------- /t/out/4_flow.txt: -------------------------------------------------------------------------------- 1 | +--------+ 2 | | Passau | 3 | +--------+ 4 | | 5 | | 6 | v 7 | +------------+ +--------+ +---------------+ 8 | | Regensburg | <-- | Siegen | --> | Aschaffenburg | 9 | +------------+ +--------+ +---------------+ 10 | -------------------------------------------------------------------------------- /t/out/4_flow_chain.txt: -------------------------------------------------------------------------------- 1 | +---------+ +--------+ 2 | | Bonn | --> | Berlin | 3 | +---------+ +--------+ 4 | | 5 | | 6 | v 7 | +---------+ +--------+ 8 | | Cottbus | --> | Ulm | 9 | +---------+ +--------+ 10 | -------------------------------------------------------------------------------- /t/out/4_invisible.txt: -------------------------------------------------------------------------------- 1 | 2 | +---------------------+ 3 | v | 4 | +---------------+ +--------+ 5 | | Bischofswerda | --> --> --> | Bremen | 6 | +---------------+ +--------+ 7 | -------------------------------------------------------------------------------- /t/out/4_joint.txt: -------------------------------------------------------------------------------- 1 | +---++---+ 2 | | U || C | 3 | +---++---+ 4 | ^ ^ 5 | | | 6 | | | 7 | +---++---+ | 8 | | A || B | | 9 | +---++---+ | 10 | | | | 11 | +----+----+ 12 | -------------------------------------------------------------------------------- /t/out/4_joint_bug_flags.txt: -------------------------------------------------------------------------------- 1 | +---+ 2 | | E | 3 | +---+ 4 | ^ 5 | | 6 | | 7 | | 8 | | +---+ 9 | +----+-> | B | 10 | | +---+ 11 | | 12 | | 13 | | 14 | | +---+ 15 | +-> | C | 16 | | +---+ 17 | | +---+ 18 | +-> | D | 19 | +---+ 20 | -------------------------------------------------------------------------------- /t/out/4_list_attr.txt: -------------------------------------------------------------------------------- 1 | test 2 | +---------------------------------------------------------+ 3 | | v 4 | + - - - -+ test +.-..-..-..-+ test + - - -+ test +.-..-..-..-..-..-.+ 5 | ' Berlin ' ------> | Frankfurt | <------ ' Bonn ' ------> | Frankfurt (Oder) | 6 | + - - - -+ +.-..-..-..-+ + - - -+ +.-..-..-..-..-..-.+ 7 | -------------------------------------------------------------------------------- /t/out/4_lists.txt: -------------------------------------------------------------------------------- 1 | +--------+ +-----------+ 2 | | Bonn | --> | Frankfurt | 3 | +--------+ +-----------+ 4 | | ^ 5 | | | 6 | v | 7 | +--------+ +-----------+ 8 | | Berlin | <-- | Ulm | 9 | +--------+ +-----------+ 10 | -------------------------------------------------------------------------------- /t/out/4_minlen.txt: -------------------------------------------------------------------------------- 1 | +---------+ +---------+ +---------+ 2 | | Potsdam | <------- | Berlin | -------> | Cottbus | 3 | +---------+ +---------+ +---------+ 4 | | 5 | | 6 | | 7 | | 8 | | 9 | v 10 | +---------+ 11 | | Leipzig | 12 | +---------+ 13 | -------------------------------------------------------------------------------- /t/out/4_near.txt: -------------------------------------------------------------------------------- 1 | +------+ +--------+ +-------+ 2 | | Bonn | --> | Berlin | --> | Koeln | 3 | +------+ +--------+ +-------+ 4 | ^ 5 | | 6 | | 7 | +--------+ 8 | | Essen | 9 | +--------+ 10 | -------------------------------------------------------------------------------- /t/out/4_node_edge.txt: -------------------------------------------------------------------------------- 1 | +---+ test +---+ 2 | | A | -----------------------> | B | 3 | +---+ +---+ 4 | -------------------------------------------------------------------------------- /t/out/4_nodes_5_edges.txt: -------------------------------------------------------------------------------- 1 | 2 | +----------------------------------------+ 3 | | v 4 | +--------------+ +-------------+ +---------+ +-----------+ 5 | | Default Page | --> | Test Search | --> | Sign Up | --> | Main Page | 6 | +--------------+ +-------------+ +---------+ +-----------+ 7 | : ^ 8 | .......................................................... 9 | 10 | -------------------------------------------------------------------------------- /t/out/4_nodes_edge.txt: -------------------------------------------------------------------------------- 1 | +---+ test +---+ 2 | | A | ---------------> | B | 3 | +---+ +---+ 4 | ^ 5 | | 6 | | 7 | +------+ 8 | | C | 9 | +------+ 10 | -------------------------------------------------------------------------------- /t/out/4groups.txt: -------------------------------------------------------------------------------- 1 | + - - - - - - - - - - - - - - - - -+ 2 | ' German Cities ' 3 | ' ' 4 | ' +-------------+ +--------+ ' 5 | ' | Cuxhaven | ----> | Bremen | ' 6 | ' +-------------+ +--------+ ' 7 | ' ' 8 | ' - - - - - - - -+ 9 | ' +-------------+ ' 10 | ' | Flensburg | ' 11 | ' +-------------+ ' 12 | ' +-------------+ ' 13 | ' | Hamburg | ' 14 | ' +-------------+ ' 15 | ' ' 16 | + - - - - - - - - + 17 | -------------------------------------------------------------------------------- /t/out/4groups_class.txt: -------------------------------------------------------------------------------- 1 | +-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.+ 2 | ! German Cities ! 3 | ! ! 4 | ! +-------------+ +--------+ ! 5 | ! | Cuxhaven | ----> | Bremen | ! 6 | ! +-------------+ +--------+ ! 7 | ! ! 8 | ! -.-.-.-.-.-.-.-.+ 9 | ! +-------------+ ! 10 | ! | Flensburg | ! 11 | ! +-------------+ ! 12 | ! +-------------+ ! 13 | ! | Hamburg | ! 14 | ! +-------------+ ! 15 | ! ! 16 | +-.-.-.-.-.-.-.-.-+ 17 | -------------------------------------------------------------------------------- /t/out/4nodes.txt: -------------------------------------------------------------------------------- 1 | +-----------+ +--------+ +---------+ 2 | | Bonn | --> | Berlin | ..> | Cottbus | 3 | +-----------+ +--------+ +---------+ 4 | | 5 | | 6 | v 7 | +-----------+ 8 | | Frankfurt | 9 | +-----------+ 10 | -------------------------------------------------------------------------------- /t/out/5_a-star_bug.txt: -------------------------------------------------------------------------------- 1 | +---+ 2 | | 5 | 3 | +---+ 4 | | | +---+---+----+ 5 | | | | 2 | 3 | 4 | 6 | | 1 | +---+---+----+ 7 | | | | 8 | | | <--------------+ 9 | +---+ 10 | -------------------------------------------------------------------------------- /t/out/5_arrow_styles.txt: -------------------------------------------------------------------------------- 1 | +----------+ 2 | | Hagnau | -------+ 3 | +----------+ | 4 | | | 5 | | | 6 | | | +---------------------+ 7 | | | | | 8 | +----------+ +--------------+ ................. +--------+ 9 | | Uhlingen | <--> | Oberuhlingen | <--> : Unteruhlingen : --- | Mainau | 10 | +----------+ +--------------+ :...............: +--------+ 11 | -------------------------------------------------------------------------------- /t/out/5_flow.txt: -------------------------------------------------------------------------------- 1 | +---------+ +-----------+ 2 | | Bonn | --> | Berlin | 3 | +---------+ +-----------+ 4 | | 5 | | 6 | v 7 | +---------+ +-----------+ +-----+ 8 | | Cottbus | --> | Moselkern | --> | Ulm | 9 | +---------+ +-----------+ +-----+ 10 | -------------------------------------------------------------------------------- /t/out/5_joint.txt: -------------------------------------------------------------------------------- 1 | +---------+ 2 | | Zwickau | 3 | +---------+ 4 | ^ 5 | | 6 | | 7 | +------------------------------+ | 8 | | Hannover | | 9 | +------------------------------+ | 10 | | | | | 11 | | | | | 12 | v v v | 13 | +--------++--------++----------+ | 14 | | Aachen || Berlin || Cuxhaven | | 15 | +--------++--------++----------+ | 16 | | | | | 17 | +---------+---------+-----------+ 18 | -------------------------------------------------------------------------------- /t/out/5_joint_bug2.txt: -------------------------------------------------------------------------------- 1 | +-------------++---+ 2 | | A || E | 3 | +-------------++---+ 4 | ^ ^ ^ ^ 5 | | | | | 6 | | | | | 7 | v v v | 8 | +---++---++---+ | 9 | | B || C || D | | 10 | +---++---++---+ | 11 | ^ ^ ^ | 12 | +----+----+----+ 13 | -------------------------------------------------------------------------------- /t/out/5_joint_label.txt: -------------------------------------------------------------------------------- 1 | +-----------+ travel +--------+ 2 | | Aachen | ------+-----------------> | Zittau | 3 | +-----------+ | +--------+ 4 | | 5 | | travel 6 | | 7 | +-----------+ | 8 | | Dachau | ------+ 9 | +-----------+ | 10 | | 11 | | travel 12 | | 13 | +-----------+ | 14 | | Buxtehude | ------+ 15 | +-----------+ | 16 | | 17 | | travel 18 | | 19 | +-----------+ | 20 | | Cottbus | ------+ 21 | +-----------+ 22 | -------------------------------------------------------------------------------- /t/out/5_long_edge_labels.txt: -------------------------------------------------------------------------------- 1 | very long edge label 2 | +---------------------------------------+ 3 | | v 4 | +---+ +---+ +---+ +---+ +---+ 5 | | A | --> | B | --> | C | --> | D | --> | E | 6 | +---+ +---+ +---+ +---+ +---+ 7 | ^ another very long edge label | 8 | +---------------------------------------+ 9 | -------------------------------------------------------------------------------- /t/out/5_multicell.txt: -------------------------------------------------------------------------------- 1 | +---------+ 2 | | Client1 | 3 | +---------+ 4 | ^ 5 | | 6 | | 7 | v 8 | +---------+ +---------+ +---------+ 9 | | Client3 | <--> | Proxy | <--> | Client2 | 10 | +---------+ +---------+ +---------+ 11 | ^ 12 | | 13 | | 14 | v 15 | +---------+ 16 | | Client | 17 | +---------+ 18 | -------------------------------------------------------------------------------- /t/out/5_offsets.txt: -------------------------------------------------------------------------------- 1 | +---+ +---+ 2 | | E | <-- | D | 3 | +---+ +---+ 4 | ^ +---+ 5 | +- | C | 6 | +---+ 7 | ^ +---+ 8 | +- | B | 9 | +---+ 10 | ^ +---+ 11 | +------ | A | 12 | +---+ 13 | -------------------------------------------------------------------------------- /t/out/5_offsets_2.txt: -------------------------------------------------------------------------------- 1 | +---+ +---+ 2 | | E | --> | D | -+ 3 | +---+ +---+ v 4 | | +---+ 5 | +> | C | <+ 6 | +---+ | 7 | ^ +---+ 8 | +- | B | ------+ 9 | +---+ v 10 | ^ +---+ 11 | +------ | A | 12 | +---+ 13 | -------------------------------------------------------------------------------- /t/out/5_rounded.txt: -------------------------------------------------------------------------------- 1 | ......... - - - - ========== ########## ----------- 2 | : Pullach : ' Parsing ' H Pankow H # Pullheim # | Paderborn | 3 | : : --> ' ' --> H (Berlin) H --> # # --> | | 4 | ......... - - - - ========== ########## ----------- 5 | -------------------------------------------------------------------------------- /t/out/5_tree_joint.txt: -------------------------------------------------------------------------------- 1 | +---+ 2 | | A | 3 | +---+ 4 | | +----+ 5 | +-----> | A1 | 6 | | +----+ 7 | | | | 8 | +-----> | A2 | 9 | | +----+ 10 | | | | 11 | +-----> | A3 | 12 | | +----+ 13 | | | | 14 | +-----> | A4 | 15 | +----+ 16 | -------------------------------------------------------------------------------- /t/out/6_autosplit_class.txt: -------------------------------------------------------------------------------- 1 | +---+ +--------+----+---+ 2 | | 1 | --> | D | B | C | 3 | +---+ +--------+----+---+ 4 | ^ 5 | | 6 | | 7 | +---+ +---+ 8 | | 2 | --> | 3 | 9 | +---+ +---+ 10 | -------------------------------------------------------------------------------- /t/out/6_chained.txt: -------------------------------------------------------------------------------- 1 | 2 | +-------------------------------------------+ 3 | | v 4 | +---------+ +-----+ +---------+ +--------+ +--------+ 5 | | Bonn | --> | Ulm | --> | Bautzen | --> | Berlin | --> | Kassel | 6 | +---------+ +-----+ +---------+ +--------+ +--------+ 7 | | | 8 | | | 9 | v | 10 | +---------+ | 11 | | Koblenz | <-----+ 12 | +---------+ 13 | -------------------------------------------------------------------------------- /t/out/6_empty_row.txt: -------------------------------------------------------------------------------- 1 | +---+ +---+ 2 | | A | --> | C | 3 | +---+ +---+ 4 | | | | | 5 | +---+ +---+ 6 | | B | | D | 7 | +---+ +---+ 8 | -------------------------------------------------------------------------------- /t/out/6_joint.txt: -------------------------------------------------------------------------------- 1 | +----------+ +------+ +------+ 2 | | Hagen | ------+-> | Bonn | --> | Prag | 3 | +----------+ | +------+ +------+ 4 | | 5 | | 6 | | 7 | +----------+ | 8 | | Hannover | ------+ 9 | +----------+ | 10 | | 11 | | 12 | | 13 | +----------+ | 14 | | Hamburg | ------+ 15 | +----------+ | 16 | | 17 | | 18 | | 19 | +----------+ | 20 | | Hanau | ------+ 21 | +----------+ 22 | -------------------------------------------------------------------------------- /t/out/6_multicell.txt: -------------------------------------------------------------------------------- 1 | 2 | +---------+ +---------+ 3 | | v v | 4 | +---+ +---+ +---+ +--------+ +---+ 5 | | G | <-- | | --> | | --> | C | --> | D | 6 | +---+ | A | | B | +--------+ +---+ 7 | | | | | ^ 8 | | | --> | | ------+ 9 | +---+ +---+ 10 | | 11 | | 12 | v 13 | +---+ 14 | | F | 15 | +---+ 16 | -------------------------------------------------------------------------------- /t/out/6_multicell_offset.txt: -------------------------------------------------------------------------------- 1 | +------+ 2 | | E | 3 | +------+ 4 | ^ 5 | | 6 | | 7 | +------+ 8 | | High | 9 | +------+ 10 | | 11 | | 12 | v 13 | +------+ 14 | | D | 15 | +------+ 16 | +---+ +------+ +---+ 17 | | C | <-- | Wide | --> | B | 18 | +---+ +------+ +---+ 19 | -------------------------------------------------------------------------------- /t/out/6_nested_groups.txt: -------------------------------------------------------------------------------- 1 | + - - - - - - - - - - + 2 | ' Inner 1 ' 3 | ' ' 4 | ' +-------+ +---+ ' 5 | ' | A | --> | B | ' 6 | ' +-------+ +---+ ' 7 | ' ' 8 | + - - - - - - - - - - + 9 | + - - - - - - - - - - + 10 | ' Inner 2 ' 11 | ' ' 12 | ' +-------+ +---+ ' 13 | ' | C | --> | D | ' 14 | ' +-------+ +---+ ' 15 | ' ' 16 | + - - - - - - - - - - + 17 | + - - - - - - - - - - + 18 | ' Outer ' 19 | ' ' 20 | ' +-------+ +---+ ' 21 | ' | E | --> | F | ' 22 | ' +-------+ +---+ ' 23 | ' ' 24 | + - - - - - - - - - - + 25 | -------------------------------------------------------------------------------- /t/out/6_ranks.txt: -------------------------------------------------------------------------------- 1 | +---+ +---+ +---+ 2 | | A | --> | B | --> | C | 3 | +---+ +---+ +---+ 4 | | 5 | +-------------------+ 6 | v 7 | +---+ +---+ 8 | | D | --> | E | 9 | +---+ +---+ 10 | | 11 | +---------+ 12 | v 13 | +---+ 14 | | F | 15 | +---+ 16 | -------------------------------------------------------------------------------- /t/out/6_split_join_loop.txt: -------------------------------------------------------------------------------- 1 | 2 | +--------------------------------------------------+ 3 | v | 4 | +---+ +---+ +---+ +---+ +---+ 5 | | A | --> | B | --> | C | -+-----> | X | ------+-> | I | 6 | +---+ +---+ +---+ | +---+ | +---+ 7 | | | 8 | | | 9 | | | 10 | | +---+ | 11 | +-----> | Y | ------+ 12 | +---+ 13 | -------------------------------------------------------------------------------- /t/out/7_cluster.txt: -------------------------------------------------------------------------------- 1 | +---+-----+---+---+ 2 | | A | BCD | E | F | 3 | +---+-----+---+---+ 4 | | G | | H | 5 | +---+-----+---+ 6 | -------------------------------------------------------------------------------- /t/out/7_star.txt: -------------------------------------------------------------------------------- 1 | +----------+ 2 | | Weimar | 3 | +----------+ 4 | ^ 5 | | 6 | | 7 | +------+ +----------+ +-----------+ 8 | | Kiel | <-- | | --> | Frankfurt | 9 | +------+ | Dachau | +-----------+ 10 | +------+ | | +-----------+ 11 | | Ulm | <-- | | --> | Berlin | 12 | +------+ +----------+ +-----------+ 13 | | 14 | | 15 | v 16 | +----------+ 17 | | Chemnitz | 18 | +----------+ 19 | -------------------------------------------------------------------------------- /t/out/7_tree.txt: -------------------------------------------------------------------------------- 1 | +---+ 2 | | A | 3 | +---+ 4 | | +----+ 5 | +-----> | A1 | 6 | | +----+ 7 | | +----+ 8 | +-----> | A2 | 9 | | +----+ 10 | | | +-----+ 11 | | +------> | A23 | 12 | | | +-----+ 13 | | | +-----+ 14 | | +------> | A22 | 15 | | | +-----+ 16 | | | +-----+ 17 | | +------> | A21 | 18 | | +-----+ 19 | | +----+ 20 | +-----> | A3 | 21 | +----+ 22 | -------------------------------------------------------------------------------- /t/out/8_basename.txt: -------------------------------------------------------------------------------- 1 | +---+ 2 | | 1 | 3 | +---+ 4 | | 5 | | 6 | v 7 | +---+---+----+ 8 | | A | B | C | 9 | +---+---+----+ 10 | +---+ 11 | | 2 | 12 | +---+ 13 | | 14 | | 15 | v 16 | +---+---+----+ 17 | | A | B | C | 18 | +---+---+----+ 19 | -------------------------------------------------------------------------------- /t/out/8_endless_loop.txt: -------------------------------------------------------------------------------- 1 | 2 | +-------------------+ 3 | | v 4 | +---+ +---+ +---+ 5 | | 1 | --> | 2 | --> | 3 | 6 | +---+ +---+ +---+ 7 | +---+----+ 8 | | 3 | 4 | 9 | +---+----+ 10 | +---+----+----+ 11 | | 5 | 6 | 7 | 12 | +---+----+----+ 13 | -------------------------------------------------------------------------------- /t/out/8_points.txt: -------------------------------------------------------------------------------- 1 | 2 | * --> # --> . --> o --> <> --> + --> --> * 3 | -------------------------------------------------------------------------------- /t/out/9_cross.txt: -------------------------------------------------------------------------------- 1 | 2 | +------------------------+ 3 | | | 4 | | | 5 | +---------+ +----+-------------------+ | 6 | | v | | | | 7 | +---+ +---+ | +---+ +---+----+ | 8 | | U | | I | <+ | A | -------> | B | I | <+ 9 | +---+ +---+ +---+ +---+----+ 10 | | | |----+ 11 | | | C | D | 12 | v +---+----+ 13 | +---+ | | 14 | | Z | | E | 15 | +---+ +---+ 16 | -------------------------------------------------------------------------------- /t/out/9_flow_south.txt: -------------------------------------------------------------------------------- 1 | +----------------------------------------------+ 2 | | A | 3 | +----------------------------------------------+ 4 | | | | | | | | | 5 | | | | | | | | | 6 | v v v v v v v v 7 | +----++----++----++----++----++----++----++----+ 8 | | A1 || A2 || A3 || A4 || A5 || A6 || A7 || A8 | 9 | +----++----++----++----++----++----++----++----+ 10 | -------------------------------------------------------------------------------- /t/out/dot/0_empty.txt: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /t/out/dot/16_split.txt: -------------------------------------------------------------------------------- 1 | 2 | +-------------------------+ 3 | | | 4 | | +-----+--+--+----+ 5 | | | nil | | | 0 | 6 | | +-----+--+--+----+ 7 | | | 8 | | | 9 | v v 10 | +-----+--+--+------+ 11 | | nil | | | 1 | 12 | +-----+--+--+------+ 13 | 14 | +-------------------------+ 15 | | | 16 | | +-----+--+--+----+ 17 | | | nil | | | 2 | 18 | | +-----+--+--+----+ 19 | | | 20 | | | 21 | v v 22 | +-----+--+--+------+ 23 | | nil | | | 3 | 24 | +-----+--+--+------+ 25 | -------------------------------------------------------------------------------- /t/out/dot/2_bool.txt: -------------------------------------------------------------------------------- 1 | +--------+ 2 | | Bonn | 3 | +--------+ 4 | | 5 | | 6 | v 7 | +--------+ 8 | | Berlin | 9 | +--------+ 10 | -------------------------------------------------------------------------------- /t/out/dot/2_comment_inside_attr.txt: -------------------------------------------------------------------------------- 1 | +---+ 2 | | a | 3 | +---+ 4 | | 5 | | 6 | v 7 | +---+ 8 | | b | 9 | +---+ 10 | -------------------------------------------------------------------------------- /t/out/dot/2_graph_label_bottom.txt: -------------------------------------------------------------------------------- 1 | +-----------+ 2 | | Köln | 3 | +-----------+ 4 | | 5 | | 6 | v 7 | +-----------+ 8 | | Stralsund | 9 | +-----------+ 10 | 11 | Deutsche Städte 12 | -------------------------------------------------------------------------------- /t/out/dot/2_group_labelloc.txt: -------------------------------------------------------------------------------- 1 | + - - - - - - - - + 2 | ' ' 3 | ' +-------------+ ' 4 | ' | Zugspitze | ' 5 | ' +-------------+ ' 6 | ' | ' 7 | ' | ' 8 | ' v ' 9 | ' +-------------+ ' 10 | ' | Wasserkuppe | ' 11 | ' +-------------+ ' 12 | ' ' 13 | ' Bergtour: ' 14 | + - - - - - - - - + 15 | -------------------------------------------------------------------------------- /t/out/dot/2_ignore.txt: -------------------------------------------------------------------------------- 1 | +-------+ 2 | | node1 | 3 | +-------+ 4 | | 5 | | 6 | v 7 | +-------+ 8 | | node2 | 9 | +-------+ 10 | -------------------------------------------------------------------------------- /t/out/dot/2_linewidth.txt: -------------------------------------------------------------------------------- 1 | 2 | 123 3 | 4 | | 5 | | 6 | v 7 | 8 | foo 9 | -------------------------------------------------------------------------------- /t/out/dot/2_no_spaces.txt: -------------------------------------------------------------------------------- 1 | +--------+ 2 | | bonn | 3 | +--------+ 4 | | 5 | | 6 | | 7 | +--------+ 8 | | berlin | 9 | +--------+ 10 | -------------------------------------------------------------------------------- /t/out/dot/2_nospace.txt: -------------------------------------------------------------------------------- 1 | +---------+ 2 | | mike | 3 | +---------+ 4 | | 5 | | 6 | v 7 | +---------+ 8 | | michael | 9 | +---------+ 10 | -------------------------------------------------------------------------------- /t/out/dot/2_ports.txt: -------------------------------------------------------------------------------- 1 | +-------+ 2 | | north | -+ 3 | +-------+ | 4 | | 5 | +-------------+ 6 | | 7 | | +-------+ 8 | +> | south | 9 | +-------+ 10 | -------------------------------------------------------------------------------- /t/out/dot/2_setlinewidth.txt: -------------------------------------------------------------------------------- 1 | ########## 2 | # Bonn # 3 | ########## 4 | | 5 | | 6 | v 7 | ########## 8 | # Berlin # 9 | ########## 10 | -------------------------------------------------------------------------------- /t/out/dot/2_square_bracket_in_attr.txt: -------------------------------------------------------------------------------- 1 | +---+ 2 | | ] | 3 | +---+ 4 | | 5 | | 6 | v 7 | +---+ 8 | | b | 9 | +---+ 10 | -------------------------------------------------------------------------------- /t/out/dot/2_strict.txt: -------------------------------------------------------------------------------- 1 | +-------------+ 2 | | Wolfsbüttel | 3 | +-------------+ 4 | | 5 | | 6 | v 7 | +-------------+ 8 | | Köln | 9 | +-------------+ 10 | -------------------------------------------------------------------------------- /t/out/dot/3_colors.txt: -------------------------------------------------------------------------------- 1 | + - - - - - - + 2 | ' cluster_1 ' 3 | ' ' 4 | ' +---------+ ' 5 | ' | A | ' 6 | ' +---------+ ' 7 | ' | ' 8 | ' | ' 9 | ' v ' 10 | ' +---------+ ' 11 | ' | B | ' 12 | ' +---------+ ' 13 | ' ' 14 | + - - - - - - + 15 | | 16 | | 17 | v 18 | +---------+ 19 | | C | 20 | +---------+ 21 | -------------------------------------------------------------------------------- /t/out/dot/3_empty_record.txt: -------------------------------------------------------------------------------- 1 | +------------+--+-----------+ 2 | | Compositor | | Compose() | 3 | +------------+--+-----------+ 4 | -------------------------------------------------------------------------------- /t/out/dot/3_empty_record_LR.txt: -------------------------------------------------------------------------------- 1 | +------------+ 2 | | Compositor | 3 | +------------+ 4 | | | 5 | +------------+ 6 | | Compose() | 7 | +------------+ 8 | -------------------------------------------------------------------------------- /t/out/dot/3_graph_label_long.txt: -------------------------------------------------------------------------------- 1 | +---------+ 2 | | Köln | 3 | +---------+ 4 | | 5 | | 6 | v 7 | +---------+ 8 | | Bonn | 9 | +---------+ 10 | | 11 | | 12 | v 13 | +---------+ 14 | | Koblenz | 15 | +---------+ 16 | 17 | Deutsche Städte am Rhein 18 | -------------------------------------------------------------------------------- /t/out/dot/3_ids.txt: -------------------------------------------------------------------------------- 1 | +------+ 2 | | 123 | 3 | +------+ 4 | +------+ 5 | | abc | 6 | +------+ 7 | | 8 | | 9 | v 10 | +------+ 11 | | test | 12 | +------+ 13 | -------------------------------------------------------------------------------- /t/out/dot/3_invis.txt: -------------------------------------------------------------------------------- 1 | +---+ 2 | | a | 3 | +---+ 4 | | 5 | | 6 | v 7 | 8 | 9 | 10 | | 11 | | 12 | v 13 | +---+ 14 | | c | 15 | +---+ 16 | -------------------------------------------------------------------------------- /t/out/dot/3_node_label.txt: -------------------------------------------------------------------------------- 1 | 2 | Graphname 3 | 4 | +---------------------+ 5 | | Graphname 0 | 6 | +---------------------+ 7 | | 8 | | 0->1 Graphname 0 1 9 | v 10 | +---------------------+ 11 | | Graphname 1 | 12 | +---------------------+ 13 | +---------------------+ 14 | | Name: 2 Graphname | 15 | +---------------------+ 16 | -------------------------------------------------------------------------------- /t/out/dot/3_output_lone.txt: -------------------------------------------------------------------------------- 1 | +---+ 2 | | a | 3 | +---+ 4 | | 5 | | 6 | v 7 | +---+ 8 | | b | 9 | +---+ 10 | +---+ 11 | | c | 12 | +---+ 13 | -------------------------------------------------------------------------------- /t/out/dot/4_compass.txt: -------------------------------------------------------------------------------- 1 | +----------+----+ 2 | | bonn N | S | 3 | +----------+----+ 4 | | | 5 | +----+ | 6 | | v 7 | | +----------+----+ 8 | +> | berlin N | w | 9 | +----------+----+ 10 | -------------------------------------------------------------------------------- /t/out/dot/4_html_like.txt: -------------------------------------------------------------------------------- 1 | +---+ 2 | | | 3 | +---+ 4 | +---+ 5 | | a | 6 | +---+ 7 | +---+ 8 | | | 9 | +---+ 10 | +---+ 11 | | | 12 | +---+ 13 | -------------------------------------------------------------------------------- /t/out/dot/4_loose.txt: -------------------------------------------------------------------------------- 1 | +---+ 2 | | A | -+ 3 | +---+ | 4 | | | 5 | | | 6 | | | 7 | +---+ | 8 | | B | | 9 | +---+ | 10 | | | 11 | | | 12 | | | 13 | +---+ | 14 | | C | | 15 | +---+ | 16 | | | 17 | | | 18 | | | 19 | +---+ | 20 | | D | -+ 21 | +---+ 22 | -------------------------------------------------------------------------------- /t/out/dot/4_record.txt: -------------------------------------------------------------------------------- 1 | +------+-------+ 2 | | test | split | 3 | +------+-------+ 4 | | 5 | | 6 | v 7 | +--------+-------+ 8 | | record | test | 9 | +--------+-------+ 10 | -------------------------------------------------------------------------------- /t/out/dot/4_strings.txt: -------------------------------------------------------------------------------- 1 | +----------------+ 2 | | Bonn am Rhein | 3 | +----------------+ 4 | | 5 | | train (ICE) 6 | v 7 | +----------------+ 8 | | Berlin Ost | 9 | +----------------+ 10 | +----------------+ 11 | | Bonn (Rhei n) | 12 | +----------------+ 13 | | 14 | | 15 | v 16 | +----------------+ 17 | | Cottbus | 18 | +----------------+ 19 | -------------------------------------------------------------------------------- /t/out/dot/4_uppercase.txt: -------------------------------------------------------------------------------- 1 | + - - - - - - -+ 2 | ' cluster_me ' 3 | ' ' 4 | ' ............ ' 5 | ' : a : ' 6 | ' :..........: ' 7 | ' | ' 8 | ' | foo ' 9 | ' v ' 10 | ' ............ ' 11 | ' : b : ' 12 | ' :..........: ' 13 | ' ' 14 | + - - - - - - -+ 15 | ............ 16 | : c : 17 | :..........: 18 | | 19 | | foo 20 | v 21 | ............ 22 | : d : 23 | :..........: 24 | -------------------------------------------------------------------------------- /t/out/dot/5_scope_atr.txt: -------------------------------------------------------------------------------- 1 | +---+ 2 | | a | 3 | +---+ 4 | --- 5 | | b | 6 | --- 7 | | 8 | | 9 | v 10 | +---+ 11 | c --> | u | 12 | +---+ 13 | ^ 14 | | 15 | | 16 | 17 | d 18 | -------------------------------------------------------------------------------- /t/out/dot/5_scopes.txt: -------------------------------------------------------------------------------- 1 | +---+ +---+ +---+ 2 | | b | <-- | a | --> | d | 3 | +---+ +---+ +---+ 4 | | | | 5 | | | | 6 | | v | 7 | | +---+ | 8 | | | c | | 9 | | +---+ | 10 | | | | 11 | | | | 12 | | v | 13 | | +---+ | 14 | +-----> | u | <-----+ 15 | +---+ 16 | -------------------------------------------------------------------------------- /t/out/dot/5_scopes_chain.txt: -------------------------------------------------------------------------------- 1 | +---+ +---+ +---+ 2 | | b | <-- | a | --> | d | 3 | +---+ +---+ +---+ 4 | | | | 5 | | | | 6 | | v | 7 | | +---+ | 8 | | | c | | 9 | | +---+ | 10 | | | | 11 | | | | 12 | | v | 13 | | +---+ | 14 | +-----> | o | <-----+ 15 | +---+ 16 | -------------------------------------------------------------------------------- /t/out/dot/5_scopes_uni.txt: -------------------------------------------------------------------------------- 1 | +---+ +---+ +---+ 2 | | b | --- | a | --- | d | 3 | +---+ +---+ +---+ 4 | | | | 5 | | | | 6 | | | | 7 | | +---+ | 8 | | | c | | 9 | | +---+ | 10 | | | | 11 | | | | 12 | | | | 13 | | +---+ | 14 | +-------| o |-------+ 15 | +---+ 16 | -------------------------------------------------------------------------------- /t/out/dot/7_record.txt: -------------------------------------------------------------------------------- 1 | 2 | Left aligned label 3 | 4 | +------------------------+----+----+ 5 | | A | B | C | 6 | +------------------------+----+----+ 7 | +------------------------+ 8 | | Aa | Bb | Cc | 9 | +------------------------+ 10 | +------------------------+----+----+ 11 | | AA | BB | CC | 12 | +------------------------+----+----+ 13 | -------------------------------------------------------------------------------- /t/out/dot/9_back.txt: -------------------------------------------------------------------------------- 1 | +---+ +----+ +----+ +---+ +---+ +---+ 2 | | 0 | --> | 11 | --> | 1 | --> | 2 | --> | 3 | --> | 8 | 3 | +---+ +----+ +----+ +---+ +---+ +---+ 4 | | ^ 5 | | | 6 | v | 7 | +----+ +---+ +---+ | 8 | | 10 | --> | 6 | <-- | 5 | ------+ 9 | +----+ +---+ +---+ 10 | -------------------------------------------------------------------------------- /t/out/dot/9_edge_styles.txt: -------------------------------------------------------------------------------- 1 | +---+ +---+ 2 | | B | <## | A | 3 | +---+ +---+ 4 | # # 5 | # # 6 | v v 7 | +---+ +---+ 8 | | C | | F | 9 | +---+ +---+ 10 | # # 11 | # # 12 | v v 13 | +---+ +---+ 14 | | D | | G | 15 | +---+ +---+ 16 | # # 17 | # # 18 | v v 19 | +---+ +---+ 20 | | E | | H | 21 | +---+ +---+ 22 | # 23 | # 24 | v 25 | +---+ 26 | | I | 27 | +---+ 28 | -------------------------------------------------------------------------------- /t/out/dot/9_stacking.txt: -------------------------------------------------------------------------------- 1 | +---+ +----+ +----+ +---+ +---+ +---+ +---+ +---+ 2 | | 0 | --> | 11 | --> | 1 | --> | 2 | --> | 3 | --> | 8 | --> | 5 | --> | 6 | 3 | +---+ +----+ +----+ +---+ +---+ +---+ +---+ +---+ 4 | | ^ 5 | | | 6 | v | 7 | +----+ | 8 | | 10 | ----------------------------------------------+ 9 | +----+ 10 | -------------------------------------------------------------------------------- /t/out/dot/9_tree.txt: -------------------------------------------------------------------------------- 1 | +---+----+----+ 2 | | | A | | 3 | +---+----+----+ 4 | | | 5 | | | 6 | v | 7 | +---+----+----+ | 8 | | | B | | | 9 | +---+----+----+ | 10 | | | 11 | | | 12 | v | 13 | +--+----+----+ | 14 | | | C | | <-----+ 15 | +--+----+----+ 16 | -------------------------------------------------------------------------------- /t/out/gdl/1_color_code.txt: -------------------------------------------------------------------------------- 1 | 2 | Graph of sub_105D40F 3 | 4 | +---------------------------+ 5 | | sub_105D40F: | 6 | | mov edi, esi | 7 | | push ebp | 8 | | jz short loc_105D27B | 9 | +---------------------------+ 10 | -------------------------------------------------------------------------------- /t/out/gdl/2_bottom_to_top.txt: -------------------------------------------------------------------------------- 1 | +---+ 2 | | B | 3 | +---+ 4 | ^ 5 | | 6 | | 7 | +---+ 8 | | A | 9 | +---+ 10 | -------------------------------------------------------------------------------- /t/out/gdl/2_left_to_right.txt: -------------------------------------------------------------------------------- 1 | +---+ +---+ 2 | | A | --> | B | 3 | +---+ +---+ 4 | -------------------------------------------------------------------------------- /t/out/gdl/2_right_to_left.txt: -------------------------------------------------------------------------------- 1 | +---+ +---+ 2 | | B | <-- | A | 3 | +---+ +---+ 4 | -------------------------------------------------------------------------------- /t/out/gdl/2_top_to_bottom.txt: -------------------------------------------------------------------------------- 1 | +---+ 2 | | A | 3 | +---+ 4 | | 5 | | 6 | v 7 | +---+ 8 | | B | 9 | +---+ 10 | -------------------------------------------------------------------------------- /t/stress/0001.txt: -------------------------------------------------------------------------------- 1 | # six nodes, and one long edge 2 | 3 | [ Oranienburg ] -> [ Henningsdorf ] 4 | [ Henningsdorf ] -> [ Strausberg ] 5 | [ Oranienburg ] -> [ Wittenberge ] 6 | [ Strausberg ] -> [ Herzberg ] 7 | [ Strausberg ] -> [ Neuruppin ] 8 | [ Wittenberge ] -> [ Herzberg ] 9 | 10 | 11 | -------------------------------------------------------------------------------- /t/stress/0002.txt: -------------------------------------------------------------------------------- 1 | # six nodes, possible to do without a bend 2 | 3 | [ Oranienburg ] -> [ Henningsdorf ] 4 | [ Oranienburg ] -> [ Herzberg ] 5 | [ Henningsdorf ] -> [ Strausberg ] 6 | [ Strausberg ] -> [ Herzberg ] 7 | [ Strausberg ] -> [ Neuruppin ] 8 | [ Oranienburg ] -> [ Postdam ] 9 | 10 | 11 | -------------------------------------------------------------------------------- /t/stress/0003.txt: -------------------------------------------------------------------------------- 1 | # six nodes, and one edge with a bend 2 | 3 | [ Oranienburg ] -> [ Henningsdorf ] 4 | [ Oranienburg ] -> [ Herzberg ] 5 | [ Henningsdorf ] -> [ Strausberg ] 6 | [ Strausberg ] -> [ Herzberg ] 7 | [ Strausberg ] -> [ Neuruppin ] 8 | [ Oranienburg ] -> [ Potsdam ] 9 | [ Neuruppin ] -> [ Herzberg ] 10 | 11 | -------------------------------------------------------------------------------- /t/stress/0004.txt: -------------------------------------------------------------------------------- 1 | # star - 4 nodes around a center 2 | 3 | [ Berlin ] -> [ Rostock ] 4 | [ Berlin ] -> [ Dresden ] 5 | [ Berlin ] -> [ Magdeburg ] 6 | [ Berlin ] -> [ Frankfurt (Oder) ] 7 | 8 | -------------------------------------------------------------------------------- /t/stress/0005.txt: -------------------------------------------------------------------------------- 1 | # 3 nodes linked in a triangle 2 | 3 | [ Zwenkau ] -> [ Borna ] 4 | [ Borna ] -> [ Riesa ] 5 | [ Riesa ] -> [ Zwenkau ] 6 | 7 | -------------------------------------------------------------------------------- /t/stress/0006.txt: -------------------------------------------------------------------------------- 1 | # 5 nodes linked in a circle 2 | 3 | [ Oberammergau ] -> [ Regensburg ] 4 | [ Regensburg ] -> [ Wasserburg ] 5 | [ Wasserburg ] -> [ Bremen ] 6 | [ Bremen ] -> [ Oberammergau ] 7 | 8 | -------------------------------------------------------------------------------- /t/stress/0010.txt: -------------------------------------------------------------------------------- 1 | # placement near other nodes 2 | 3 | [ Oberammergau ] -> [ Regensburg ] 4 | [ Regensburg ] -> [ Wasserburg ] 5 | [ Wasserburg ] -> [ Bremen ] 6 | [ Regensburg ] -> [ Siegburg ] 7 | 8 | # to be placed around Bremen and Oberammergau 9 | [ Oberammergau ] -> [ Kiel ] 10 | [ Bremen ] -> [ Kiel ] 11 | [ Siegburg ] -> [ Kiel ] 12 | 13 | -------------------------------------------------------------------------------- /t/stress/0011.txt: -------------------------------------------------------------------------------- 1 | # placement near other nodes 2 | 3 | [ Oberammergau ] -> [ Regensburg ] 4 | [ Regensburg ] -> [ Wasserburg ] 5 | [ Wasserburg ] -> [ Bremen ] 6 | [ Siegburg ] -> [ Bremen ] 7 | 8 | -------------------------------------------------------------------------------- /t/stress/0012.txt: -------------------------------------------------------------------------------- 1 | # placement near other nodes 2 | 3 | [ Oberammergau ] -> [ Regensburg ] 4 | [ Regensburg ] -> [ Wasserburg ] 5 | [ Wasserburg ] -> [ Bremen ] 6 | [ Siegburg ] -> [ Bremen ] 7 | [ Kiel ] -> [ Bremen ] 8 | 9 | -------------------------------------------------------------------------------- /t/stress/0020.txt: -------------------------------------------------------------------------------- 1 | # bend edges with labels 2 | 3 | [ Ahrweiler ] -- Eifel --> [ Lahn ] 4 | [ Lahn ] == Eifel ==> [ Lahnstein ] 5 | [ Lahnstein ] -- Eifel --> [ Ahrweiler ] 6 | 7 | -------------------------------------------------------------------------------- /t/stress/anon.txt: -------------------------------------------------------------------------------- 1 | node.anon { fill: #ffe0e0; } 2 | 3 | [ ] 4 | --> [ ] { border-style: bold; } 5 | --> [ ] { border-color: blue; border-style: solid; } 6 | --> [ ] { border-color: blue; } 7 | --> [ 1 ] { label: " "; border: none; } 8 | --> [ 2 ] { shape: invisible; } 9 | -------------------------------------------------------------------------------- /t/stress/drop.txt: -------------------------------------------------------------------------------- 1 | 2 | [ Bonn ] --> [ Berlin ] --> [ Frankfurt ] 3 | [ Bonn ] --> [ Berlin ] --> [ Bonn ] 4 | [ Ulm ] --> [ Berlin ] --> [ Berlin ] 5 | [ Mainz ] --> [ Bonn ] 6 | -------------------------------------------------------------------------------- /t/syntax/0000.txt: -------------------------------------------------------------------------------- 1 | # This is a single-node graph with a comment: 2 | [ Bonn ] 3 | -------------------------------------------------------------------------------- /t/syntax/0001.txt: -------------------------------------------------------------------------------- 1 | # A node pointing back to itself 2 | 3 | [ Bonn ] -> [ Bonn ] 4 | 5 | -------------------------------------------------------------------------------- /t/syntax/0002.txt: -------------------------------------------------------------------------------- 1 | # 2 nodes, one pointing back to itself 2 | 3 | [ Bonn ] -> [ Berlin ] 4 | [ Bonn ] -> [ Bonn ] 5 | 6 | -------------------------------------------------------------------------------- /t/syntax/0003.txt: -------------------------------------------------------------------------------- 1 | # 2 nodes, one pointing back to itself 2 | 3 | [ Ruhleben ] -> [ Aschersleben ] 4 | [ Aschersleben ] -> [ Ruhleben ] 5 | [ Ruhleben ] -> [ Ruhleben ] 6 | 7 | -------------------------------------------------------------------------------- /t/syntax/0010.txt: -------------------------------------------------------------------------------- 1 | 2 | [ Bonn ] -> [ Berlin ] 3 | 4 | -------------------------------------------------------------------------------- /t/syntax/0011.txt: -------------------------------------------------------------------------------- 1 | 2 | [ Berlin\n (West) ] -> [ Berlin\n (Ost) ] 3 | 4 | -------------------------------------------------------------------------------- /t/syntax/0020.txt: -------------------------------------------------------------------------------- 1 | [ Kiel ] -> [ Kassel ] 2 | [ Kassel ] -> [ Wismar ] 3 | -------------------------------------------------------------------------------- /t/syntax/0021.txt: -------------------------------------------------------------------------------- 1 | # anonymous, invisible nodes 2 | [ ] -> [ Heilbronn ] -> [] 3 | -------------------------------------------------------------------------------- /t/syntax/0030.txt: -------------------------------------------------------------------------------- 1 | # Different edge styles 2 | [ Bonn ] <-> [ Berlin ] # bidirectional 3 | [ Berlin ] ==> [ Rostock ] # double 4 | [ Hamburg ] ..> [ Altona ] # dotted 5 | [ Dresden ] - > [ Bautzen ] # dashed 6 | [ Schweinfurt ] <=> [ Ulm ] # bidrectional, double 7 | [ Magdeburg ] .-> [ Burg ] # dot-dash 8 | [ Burg ] -- [ Wolfen ] # single, bidirectional w/o arrows 9 | [ Wolfen ] .. [ Coswig ] # dotted, bidirectional w/o arrows 10 | [ Magdeburg ] ..> [ Aue ] # dotted, going downwards 11 | 12 | -------------------------------------------------------------------------------- /t/syntax/0040.txt: -------------------------------------------------------------------------------- 1 | # two unconnected parts of a graph 2 | [ Kiel ] -> [ Kassel ] 3 | [ Koblenz ] -> [ Konstanz ] 4 | -------------------------------------------------------------------------------- /t/syntax/0050.txt: -------------------------------------------------------------------------------- 1 | # override defaults for nodes, edges, groups and graph 2 | node { color: brown; } 3 | graph { fill: #990066; border: 1px solid black; } 4 | group { fill: grey; } 5 | edge { color: white; } 6 | 7 | [ Wismar ] -> [ Neustadt ] 8 | -------------------------------------------------------------------------------- /t/syntax/0060.txt: -------------------------------------------------------------------------------- 1 | # override attributes of only one node 2 | [ Bonn ] { color: red; } -> [ Berlin ] 3 | -------------------------------------------------------------------------------- /t/syntax/0061.txt: -------------------------------------------------------------------------------- 1 | # Override the text of a node with the label attribute 2 | [ Bonn ] -> [ Berlin ] -> [ Bonn2 ] { label: Bonn; } 3 | -------------------------------------------------------------------------------- /t/syntax/0062.txt: -------------------------------------------------------------------------------- 1 | # Override attributes of an edge 2 | [ Bonn ] -> { color: blue; label: Autobahn; } [ Berlin ] 3 | -------------------------------------------------------------------------------- /t/syntax/0063.txt: -------------------------------------------------------------------------------- 1 | # Different node shapes 2 | 3 | node { shape: ellipse; } 4 | node.lilac { background: #deadff; } 5 | 6 | [ Bergheim ] { shape: diamond; } -> 7 | [ Kirchheim ] { shape: triangle; } -> 8 | [ Weilheim ] { shape: house; } 9 | 10 | [ Wilhelmshaven ] { shape: invisible; } -> 11 | [ Cuxhaven ] { shape: rounded; } -> 12 | [ Zeven ] { class: lilac; } 13 | 14 | [ Bremerhaven ] { shape: circle; } -> 15 | [ Templin ] { shape: triangle; } 16 | 17 | -------------------------------------------------------------------------------- /t/syntax/0070.txt: -------------------------------------------------------------------------------- 1 | # nodes in a subclass with attributes 2 | node.city { color: brown; } # override default color 3 | 4 | [ Bonn ] { class: city; } -> [ Berlin ] { class: city; } 5 | [ Berlin ] -> [ Kassel ] 6 | -------------------------------------------------------------------------------- /t/syntax/0080.txt: -------------------------------------------------------------------------------- 1 | node.city { color: brown; } 2 | [ Bonn ], [ Berlin ], [ Kassel ] { class: city; } 3 | 4 | [ Bonn ] -> [ Berlin ] 5 | [ Kassel ] -> [ Berlin ] 6 | -------------------------------------------------------------------------------- /t/syntax/0090.txt: -------------------------------------------------------------------------------- 1 | # a chain of nodes 2 | [ Bonn ] -> [ Berlin ] -> [ Wismar ] 3 | -------------------------------------------------------------------------------- /t/syntax/0100.txt: -------------------------------------------------------------------------------- 1 | # node lists on the left side 2 | [ Ulm ], [ Hahn ], [ Wismar ] => [ Frankfurt ] 3 | [ Frankfurt ] -> [ Potsdam ] 4 | [ Frankfurt ], [ Lahn ] -> [ Potsdam ] 5 | -------------------------------------------------------------------------------- /t/syntax/0102.txt: -------------------------------------------------------------------------------- 1 | # node lists on both sides 2 | [ Ulm ], [ Hahn ], [ Wismar ] => [ Frankfurt ] 3 | [ Frankfurt ] => [ Stuttgart ], [ Trier ] 4 | [ Potsdam ], [ Cuixhaven ] => [ Bremerhaven ], [ Wismut ] 5 | -------------------------------------------------------------------------------- /t/syntax/0110.txt: -------------------------------------------------------------------------------- 1 | [ 2 | Bonn 3 | ] -> 4 | [ 5 | Berlin 6 | (Capital) 7 | ] 8 | [ 9 | Bonn 10 | ] -> [ Wismar ] 11 | -------------------------------------------------------------------------------- /t/syntax/0120.txt: -------------------------------------------------------------------------------- 1 | 2 | # [ Neustadt \[an der Weinstrasse\] ] -> 3 | # [ Neustadt \[b. Coburg\] ] 4 | 5 | -------------------------------------------------------------------------------- /t/syntax/0130.txt: -------------------------------------------------------------------------------- 1 | # all nodes in one group 2 | 3 | ( German Cities 4 | [ Cuxhaven ] -> [ Bremen ] 5 | [ Hamburg ], [ Flensburg ] 6 | ) 7 | 8 | -------------------------------------------------------------------------------- /t/syntax/0131.txt: -------------------------------------------------------------------------------- 1 | # Three non-overlapping groups 2 | 3 | group.nrw { fill: #ffa070; } 4 | group.sachsen { fill: #f07070; } 5 | 6 | ( Bayern 7 | [ Augsburg ] 8 | ) { fill: #70b070; } 9 | 10 | [ Augsburg ] --> [ Dortmund ] 11 | 12 | ( Nordrhein-Westfalen 13 | [ Dortmund ] -> [ Olpe ] 14 | --> [ Hamm ] 15 | ) { class: nrw; } 16 | 17 | ( Sachsen 18 | [ Leipzig ] 19 | ) { class: sachsen } 20 | 21 | [ Hamm ] --> [ Leipzig ] 22 | -------------------------------------------------------------------------------- /t/syntax/0140.txt: -------------------------------------------------------------------------------- 1 | # some nodes in a group, and one edge coming in 2 | 3 | ( German Cities 4 | [ Augsburg ] -> [ Hof ] 5 | ) 6 | [ Wien ] -> [ Augsburg ] 7 | 8 | -------------------------------------------------------------------------------- /t/syntax/0150.txt: -------------------------------------------------------------------------------- 1 | ( German Cities 2 | [ Augsburg ] -> [ Hof ] 3 | ) 4 | [ Wien ] -> [ German Cities ] 5 | 6 | -------------------------------------------------------------------------------- /t/syntax/0160.txt: -------------------------------------------------------------------------------- 1 | [ Terminal \#1 ] -> [ Terminal \#2 ] 2 | [ Terminal ( \#3 ) \|-\| ] 3 | [ Neustadt & Neudorf ] -> [ 3 < 4 ] 4 | 5 | -------------------------------------------------------------------------------- /t/syntax/0170.txt: -------------------------------------------------------------------------------- 1 | # Edges can have labels, too: 2 | [ Kempten ] -- Bahn --> [ Schongau ] # normal edge 3 | [ Schongau ] -- Fahrrad --> [ Regensburg ] # ditto 4 | [ Regensburg ] .. Auto ..> [ Roth ] # dashed 5 | [ Regensburg ] == Motorradkolonne ==> [ Straubing ] # double 6 | -------------------------------------------------------------------------------- /t/syntax/0171.txt: -------------------------------------------------------------------------------- 1 | # edges with attributes like title/link/label 2 | # set the base link 3 | graph { linkbase: http%3a//de.wikipedia.org/wiki/; } 4 | # if nothing specified, generate a link from the label 5 | # or none if no label set 6 | edge { autolink: label; } 7 | # these edges always link to "Intercity" regardless of the label 8 | edge.intercity { link: Intercity; } 9 | 10 | # autolinks the edge to "Auto" 11 | [ Emden ] - Auto -> [ Schortens ] 12 | # autolinks this edge to "Bahn" 13 | [ Schortens ] --> { label: Bahn; } [ Oldenburg ] 14 | # no link (since no label) 15 | [ Schortens ] --> [ Cuxhaven ] 16 | # links to "Intercity" 17 | [ Oldenburg ] - IC -> { class: intercity; } [ Bremerhaven ] 18 | -------------------------------------------------------------------------------- /t/syntax/0180.txt: -------------------------------------------------------------------------------- 1 | # inserted newlines 2 | [ 3 | Kempten 4 | ] -> 5 | [ 6 | Schongau 7 | ] # normal edge 8 | -------------------------------------------------------------------------------- /t/syntax/0190.txt: -------------------------------------------------------------------------------- 1 | # no spaces 2 | [Kempten]{color:red;}->[Thurgau]{color:blue;} 3 | -------------------------------------------------------------------------------- /t/syntax/0200.txt: -------------------------------------------------------------------------------- 1 | # quoting of () inside node 2 | [ Berlin ] -> [ Frankfurt \(Oder\) ] 3 | -------------------------------------------------------------------------------- /t/syntax/0210.txt: -------------------------------------------------------------------------------- 1 | # gid, "long" edge, comments and color codes 2 | graph { gid: 123; color: #308030 } 3 | node { color: #f06020 } #this is a comment 4 | node.cities { color: #1460b0; fill: lightgrey; } # this too 5 | 6 | [ Leipzig ] { class: cities } ----> [ Oschatz ] # comment 7 | -------------------------------------------------------------------------------- /t/syntax/0220.txt: -------------------------------------------------------------------------------- 1 | # different chains of nodes 2 | [ Ulm ] -> [ Lahn ] -> [ Bonn ] 3 | -> [ Trier ] 4 | [ Stein ] -> [ Wahns ] 5 | -> [ Lind ] 6 | -> [ Burg ] -> [ Buch ] 7 | -------------------------------------------------------------------------------- /t/syntax/0230.txt: -------------------------------------------------------------------------------- 1 | # Something that follows on the same line 2 | [ Ulm ] -> [ Lahn ] [ Lahn ] -> [ Trier ] 3 | -------------------------------------------------------------------------------- /t/syntax/0240.txt: -------------------------------------------------------------------------------- 1 | # Clickable links and mouse-over titles: 2 | graph { linkbase: http://de.wikipedia.org/wiki/ } 3 | node { autolink: label; autotitle: label; } 4 | 5 | [ Bonn ] 6 | [ Berlin ] { title: "Berlin (Capital)" } 7 | [ Kassel ] { autolink: none; } 8 | [ Ulm ] { link: "Stuttgart"; } 9 | [ Lahn ] { label: Ulm; } 10 | 11 | # link link, title overriden only title 12 | [ Bonn ] -> [ Berlin ] -> [ Kassel ] 13 | # link overriden 14 | [ Bonn ] -> [ Ulm ] 15 | # link goes to "Ulm" (label!) 16 | [ Ulm ] -> [ Lahn ] 17 | -------------------------------------------------------------------------------- /t/syntax/0250.txt: -------------------------------------------------------------------------------- 1 | # A node-cluster (autosplit into three single nodes) 2 | [ Waren | Mirow | Bergen ] 3 | -------------------------------------------------------------------------------- /t/syntax/0251.txt: -------------------------------------------------------------------------------- 1 | # A node-cluster (autosplit into three single nodes) 2 | [ Husum | Schleswig | Flensburg ] { fill: #ddaaff; } 3 | -------------------------------------------------------------------------------- /t/syntax/0252.txt: -------------------------------------------------------------------------------- 1 | # A node-cluster (autosplit into three single nodes) 2 | [ Amrum | Sylt | Fehmarn ] { fill: #ddaaff; } 3 | -> [ Itzehoe ] 4 | -------------------------------------------------------------------------------- /t/syntax/0254.txt: -------------------------------------------------------------------------------- 1 | # A node-cluster (autosplit into three single nodes) 2 | [ Waren | Mirow | Bergen \| ] 3 | -------------------------------------------------------------------------------- /t/txt/0_empty_group.txt: -------------------------------------------------------------------------------- 1 | ( Group without a name ) 2 | 3 | -------------------------------------------------------------------------------- /t/txt/0_empty_groups.txt: -------------------------------------------------------------------------------- 1 | ( ) 2 | 3 | ( ) 4 | 5 | ( ) 6 | 7 | -------------------------------------------------------------------------------- /t/txt/10borders.txt: -------------------------------------------------------------------------------- 1 | [ Bold ] { border: bold; } 2 | [ Dashed ] { border: dashed; } 3 | [ Dotted ] { border: dotted; } 4 | [ Double ] { border: double; } 5 | [ dot-dash ] { border: dot-dash; } 6 | [ dot-dot-dash ] { border: dot-dot-dash; } 7 | [ double-dash ] { border: double-dash; } 8 | [ none ] { border: none; } 9 | [ wave ] { border: wave; } 10 | 11 | [ Dashed ] ==> [ none ] 12 | [ Solid ] ..> [ Dotted ] 13 | [ dot-dash ] - > [ Bold ] 14 | [ dot-dot-dash ] .-> [ wave ] 15 | [ double-dash ] ~~> [ Double ] 16 | -------------------------------------------------------------------------------- /t/txt/18_multiples.txt: -------------------------------------------------------------------------------- 1 | node { background: yellow; } 2 | 3 | [ 1Bonn ] --> [ 1Ulm ] 4 | [ 1Bonn ] ..> [ 1Berlin ] 5 | [ 1Bonn ] .-> [ 1Koblenz ] 6 | [ 2Bonn ] --> [ 2Ulm ] 7 | [ 2Bonn ] ..> [ 2Berlin ] 8 | [ 2Bonn ] .-> [ 2Koblenz ] 9 | [ Bonn ] --> [ Ulm ] 10 | [ Bonn ] ..> [ Berlin ] 11 | [ Bonn ] .-> [ Koblenz ] 12 | [ 1Berlin ] --> [ 1Kassel ] 13 | [ 1Ulm ] --> [ 1Bautzen ] 14 | [ 1Ulm ] --> [ 1Koblenz ] 15 | [ 2Berlin ] --> [ 2Kassel ] 16 | [ 2Ulm ] --> [ 2Bautzen ] 17 | [ 2Ulm ] --> [ 2Koblenz ] 18 | [ Berlin ] --> [ Kassel ] 19 | [ Ulm ] --> [ Bautzen ] 20 | [ Ulm ] --> [ Koblenz ] 21 | [ 1Bautzen ] --> [ 1Berlin ] 22 | [ 2Bautzen ] --> [ 2Berlin ] 23 | [ Bautzen ] --> [ Berlin ] 24 | -------------------------------------------------------------------------------- /t/txt/1_empty_group.txt: -------------------------------------------------------------------------------- 1 | ( Group ) { background: yellow; } 2 | 3 | [ Outside ] 4 | -------------------------------------------------------------------------------- /t/txt/1_undirected_loop.txt: -------------------------------------------------------------------------------- 1 | [ A ] -- [ A ] 2 | [ A ] -- [ A ] 3 | [ A ] -- [ A ] 4 | [ A ] -- [ A ] 5 | -------------------------------------------------------------------------------- /t/txt/25_autosplit_empty.txt: -------------------------------------------------------------------------------- 1 | [ | D | ] { class: empty; } 2 | [ | F | ] { class: empty; } 3 | [ |G| ] { class: empty; } 4 | 5 | [ | C | ] 6 | [ C.2 ] --> [ A1 ] 7 | [ D.2 ] --> [ A2 ] 8 | [ | E | ] 9 | [ E.2 ] --> [ A3 ] 10 | [ F.2 ] --> [ A4 ] 11 | [ G.2 ] --> [ A5 ] 12 | [ |H| | ] 13 | [ H.3 ] --> [ A6 ] 14 | -------------------------------------------------------------------------------- /t/txt/2_autolabel.txt: -------------------------------------------------------------------------------- 1 | graph { 2 | autolabel: name, 20; 3 | autotitle: name; 4 | } 5 | 6 | [ Bonn ] { label: Bonn (ehemalige Bundeshauptstadt); } 7 | 8 | [ Bonn ] -- Acme Travels Incorporated --> [ Frankfurt (Main) / Flughafen ] 9 | -------------------------------------------------------------------------------- /t/txt/2_autosplit_empty.txt: -------------------------------------------------------------------------------- 1 | [ Siegen | Siegburg ] 2 | -------------------------------------------------------------------------------- /t/txt/2_autosplit_escaped.txt: -------------------------------------------------------------------------------- 1 | [ A \| B | C ] 2 | -------------------------------------------------------------------------------- /t/txt/2_class.txt: -------------------------------------------------------------------------------- 1 | node.second { border: double; } 2 | 3 | [ A ] { class: second; } 4 | [ B ] { class: second; } 5 | 6 | [ A ] --> [ B ] 7 | -------------------------------------------------------------------------------- /t/txt/2_classes.txt: -------------------------------------------------------------------------------- 1 | edge.blue { color: blue; } 2 | edge.green { color: blue; } 3 | edge.red { color: red; } 4 | group { color: blue; } 5 | group.blue { color: blue; } 6 | group.green { color: blue; } 7 | group.red { color: red; } 8 | node.blue { color: blue; } 9 | node.green { color: blue; } 10 | node.red { color: red; } 11 | 12 | [ Black ] { class: green; } 13 | [ Red ] { class: red; } 14 | 15 | [ Red ] -- red --> { class: red; } [ Black ] 16 | -------------------------------------------------------------------------------- /t/txt/2_cluster.txt: -------------------------------------------------------------------------------- 1 | [ Altona ] { size: 3,2; } 2 | [ Hamburg ] { size: 2,2; } 3 | 4 | [ Hamburg ] --> [ Altona ] 5 | -------------------------------------------------------------------------------- /t/txt/2_cluster_2.txt: -------------------------------------------------------------------------------- 1 | [ Altona ] { size: 3,2; } 2 | [ Hamburg ] { size: 2,2; } 3 | 4 | [ Hamburg ] --> [ Altona ] 5 | [ Hamburg ] --> [ Altona ] 6 | -------------------------------------------------------------------------------- /t/txt/2_cluster_3.txt: -------------------------------------------------------------------------------- 1 | [ Altona ] { size: 3,2; } 2 | [ Hamburg ] { size: 2,2; } 3 | 4 | [ Hamburg ] --> [ Altona ] 5 | [ Hamburg ] --> [ Altona ] 6 | [ Hamburg ] --> [ Altona ] 7 | -------------------------------------------------------------------------------- /t/txt/2_dot.txt: -------------------------------------------------------------------------------- 1 | graph { label: // digraph G {; } 2 | 3 | [ Kummersbach ] --> [ Düsburg ] 4 | -------------------------------------------------------------------------------- /t/txt/2_dot_dot_dash.txt: -------------------------------------------------------------------------------- 1 | [ B ] { border: dot-dash; } 2 | [ Test\n Test\n Test test test\n test ] { border: dot-dot-dash; } 3 | 4 | [ Test\n Test\n Test test test\n test ] ..-> [ B ] 5 | -------------------------------------------------------------------------------- /t/txt/2_graph_label.txt: -------------------------------------------------------------------------------- 1 | graph { 2 | label: My Graph; 3 | labelpos: top; 4 | } 5 | 6 | [ Regensburg ] --> [ Passau ] 7 | -------------------------------------------------------------------------------- /t/txt/2_group.txt: -------------------------------------------------------------------------------- 1 | ( Test\n group 2 | [ Berlin ] 3 | [ Bonn ] 4 | ) 5 | 6 | [ Bonn ] --> [ Berlin ] 7 | -------------------------------------------------------------------------------- /t/txt/2_group_labelpos.txt: -------------------------------------------------------------------------------- 1 | ( Bergtour: 2 | [ Wasserkuppe ] 3 | [ Zugspitze ] 4 | ) { labelpos: bottom; } 5 | 6 | [ Zugspitze ] --> [ Wasserkuppe ] 7 | -------------------------------------------------------------------------------- /t/txt/2_group_multicell.txt: -------------------------------------------------------------------------------- 1 | [ Frankfurt a. Main\n (Flughafen) ] { size: 2,2; } 2 | 3 | ( Some group: 4 | [ Berlin ] 5 | [ Frankfurt a. Main\n (Flughafen) ] 6 | ) 7 | 8 | [ Frankfurt a. Main\n (Flughafen) ] --> [ Berlin ] 9 | -------------------------------------------------------------------------------- /t/txt/2_group_no_border.txt: -------------------------------------------------------------------------------- 1 | ( Test\n group 2 | [ Berlin ] 3 | [ Bonn ] 4 | ) { border: none; } 5 | 6 | [ Bonn ] --> [ Berlin ] 7 | -------------------------------------------------------------------------------- /t/txt/2_invisible_left.txt: -------------------------------------------------------------------------------- 1 | [ ] --> [ Berlin ] 2 | -------------------------------------------------------------------------------- /t/txt/2_invisible_right.txt: -------------------------------------------------------------------------------- 1 | [ Bonn ] --> [ ] 2 | -------------------------------------------------------------------------------- /t/txt/2_label.txt: -------------------------------------------------------------------------------- 1 | node { label: A; } 2 | 3 | [ C ] { link: http://bloodgate.com; } 4 | 5 | [ B ] --> [ C ] 6 | -------------------------------------------------------------------------------- /t/txt/2_list_attr.txt: -------------------------------------------------------------------------------- 1 | [ Berlin ] { border: dashed; } 2 | [ Bonn ] { border: dashed; } 3 | 4 | -------------------------------------------------------------------------------- /t/txt/2_newlines.txt: -------------------------------------------------------------------------------- 1 | [ Berlin\n (O) ] { border: dotted black; } 2 | 3 | [ Berlin\n (W) ] --> [ Berlin\n (O) ] 4 | -------------------------------------------------------------------------------- /t/txt/2_split_bug.txt: -------------------------------------------------------------------------------- 1 | [ Some \[\] || Autosplit ] 2 | -------------------------------------------------------------------------------- /t/txt/2_wrap.txt: -------------------------------------------------------------------------------- 1 | graph { textwrap: 6; } 2 | 3 | [ Small city near a beautyfull river ] { align: right; textwrap: 10; } 4 | 5 | [ Frankfurt Oder\n Flughafen-Terminal ] -- Drive a car to the destination --> [ Small city near a beautyfull river ] 6 | -------------------------------------------------------------------------------- /t/txt/2_zeros.txt: -------------------------------------------------------------------------------- 1 | [ 10 ] { label: 0; } 2 | 3 | [ 0 ] -- 0 --> [ 10 ] 4 | [ 10 ] -- 0 --> [ 0 ] 5 | -------------------------------------------------------------------------------- /t/txt/3_autosplit_hang.txt: -------------------------------------------------------------------------------- 1 | [ 1 ] --> [ 23.0 ] 2 | [ 2|3 ] 3 | -------------------------------------------------------------------------------- /t/txt/3_cache_bug.txt: -------------------------------------------------------------------------------- 1 | [ A ] { flow: east; } 2 | [ B ] { offset: 2,2; origin: A; } 3 | 4 | ( G 5 | [ A ] 6 | ) 7 | 8 | [ A ] -- C --> { end: north; start: east; } [ B ] 9 | [ B ] --> [ ] 10 | -------------------------------------------------------------------------------- /t/txt/3_cluster.txt: -------------------------------------------------------------------------------- 1 | [ Husum | Schleswig | Flensburg ] { background: #ddaaff; } 2 | 3 | -------------------------------------------------------------------------------- /t/txt/3_colors.txt: -------------------------------------------------------------------------------- 1 | graph { 2 | color: 3; 3 | colorscheme: paired12; 4 | fill: rgb(0.1,100,10%); 5 | } 6 | 7 | [ Colors ] { color: hsl(300,1.0,1.0); fill: w3c/grey; } 8 | [ Preserve ] { color: cornflowerblue; } 9 | [ The ] { color: #ff00ff; } 10 | 11 | [ Preserve ] --> { color: rgb(33,44,55); } [ The ] 12 | [ The ] --> { color: hsv(1.0,1.0,0.5); } [ Colors ] 13 | -------------------------------------------------------------------------------- /t/txt/3_corrupt.txt: -------------------------------------------------------------------------------- 1 | [ A ] { label: AB; } 2 | [ B ] { label: ABCB; } 3 | [ C ] { label: AB; } 4 | 5 | [ A ] --> [ B ] 6 | [ B ] --> [ C ] 7 | -------------------------------------------------------------------------------- /t/txt/3_edge_labels_from_class.txt: -------------------------------------------------------------------------------- 1 | edge { label: MyLabel; } 2 | edge.yes { label: Yes; } 3 | 4 | [ A ] --> { class: yes; } [ B ] 5 | [ B ] --> [ C ] 6 | -------------------------------------------------------------------------------- /t/txt/3_edge_repair.txt: -------------------------------------------------------------------------------- 1 | ( Router: 2 | [ Input ] 3 | [ Output ] 4 | ) 5 | 6 | [ Input ] --> [ Output ] 7 | [ Output ] ==> { end: north; start: south; } [ Network ] 8 | -------------------------------------------------------------------------------- /t/txt/3_edge_start.txt: -------------------------------------------------------------------------------- 1 | [ A ] --> { start: front; } [ B ] 2 | [ A ] --> { start: front; } [ C ] 3 | -------------------------------------------------------------------------------- /t/txt/3_empty_group.txt: -------------------------------------------------------------------------------- 1 | ( 2 | [ A ] 3 | [ B ] 4 | ) 5 | 6 | [ A ] --> [ B ] 7 | [ C ] 8 | -------------------------------------------------------------------------------- /t/txt/3_group_align_center.txt: -------------------------------------------------------------------------------- 1 | edge { align: right; } 2 | graph { 3 | fontsize: 2em; 4 | label: My Graph; 5 | } 6 | node.left { 7 | align: left; 8 | fontsize: 1.5em; 9 | } 10 | 11 | [ Left\naligned ] { class: left; } 12 | [ Right\nAligned ] { align: right; } 13 | 14 | ( Nodes: 15 | [ Center\n aligned ] 16 | [ Left\naligned ] 17 | [ Right\nAligned ] 18 | ) { align: center; border: none; } 19 | 20 | [ Right\nAligned ] -- label\n text --> { align: right; } [ Left\naligned ] 21 | [ Left\naligned ] --> [ Center\n aligned ] 22 | -------------------------------------------------------------------------------- /t/txt/3_inherit.txt: -------------------------------------------------------------------------------- 1 | graph { flow: down; } 2 | node { align: left; } 3 | node.right { align: right; } 4 | 5 | [ Left ] { class: none; } 6 | [ Lefty, too ] { class: none; } 7 | [ Right ] { class: right; } 8 | 9 | [ Left ] --> [ Lefty, too ] 10 | [ Lefty, too ] --> [ Right ] 11 | -------------------------------------------------------------------------------- /t/txt/3_invisible_both.txt: -------------------------------------------------------------------------------- 1 | [ ] --> [ Bonn ] 2 | [ Bonn ] --> [ ] 3 | -------------------------------------------------------------------------------- /t/txt/3_joint.txt: -------------------------------------------------------------------------------- 1 | [ Mannheim ] --> { end: back,0; } [ Weimar ] 2 | [ Potsdam ] --> { end: back,0; } [ Weimar ] 3 | -------------------------------------------------------------------------------- /t/txt/3_joint_short.txt: -------------------------------------------------------------------------------- 1 | [ B ] { offset: 2,0; origin: A; } 2 | [ C ] { offset: 2,-2; origin: B; } 3 | 4 | [ A ] --> { end: south, 0; start: south; } [ C ] 5 | [ B ] --> { end: south, 0; start: south; } [ C ] 6 | -------------------------------------------------------------------------------- /t/txt/3_list_attr.txt: -------------------------------------------------------------------------------- 1 | [ Berlin ] { border: dashed; } 2 | [ Bonn ] { border: dashed; } 3 | [ Frankfurt ] { border: dot-dash; } 4 | 5 | [ Berlin ] -- test --> [ Frankfurt ] 6 | [ Bonn ] -- test --> [ Frankfurt ] 7 | -------------------------------------------------------------------------------- /t/txt/3_lists.txt: -------------------------------------------------------------------------------- 1 | [ Bonn ] --> [ Berlin ] 2 | [ Ulm ] --> [ Berlin ] 3 | -------------------------------------------------------------------------------- /t/txt/3_nodes_5_edges.txt: -------------------------------------------------------------------------------- 1 | [ Default Page ] --> [ Sign Up ] 2 | [ Default Page ] .-> [ Main Page ] 3 | [ Default Page ] = > [ Main Page ] 4 | [ Default Page ] - > [ Main Page ] 5 | [ Sign Up ] --> [ Main Page ] 6 | -------------------------------------------------------------------------------- /t/txt/3_selfloop.txt: -------------------------------------------------------------------------------- 1 | [ Start ] --> [ Main ] 2 | [ Main ] -- Until not done --> [ Main ] 3 | [ Main ] --> [ End ] 4 | -------------------------------------------------------------------------------- /t/txt/3_selfloop_flip.txt: -------------------------------------------------------------------------------- 1 | [ Adenau ] --> [ Monschau ] 2 | [ Nideggen ] --> [ Monschau ] 3 | [ Monschau ] --> [ Monschau ] 4 | -------------------------------------------------------------------------------- /t/txt/3_split_attribute.txt: -------------------------------------------------------------------------------- 1 | node { color: silver; } 2 | 3 | [ Some || Autosplit || Node ] { basename: u; color: red|blue; border: dashed|; } 4 | 5 | -------------------------------------------------------------------------------- /t/txt/4_2x2nodes.txt: -------------------------------------------------------------------------------- 1 | [ Frankfurt ] --> [ Hof ] 2 | [ Hamburg ] --> [ Altona ] 3 | -------------------------------------------------------------------------------- /t/txt/4_att.txt: -------------------------------------------------------------------------------- 1 | node { title: 100%; } 2 | 3 | [ 1 ] { label: $a = %229%22%3b\nmy $b = 1%3b; } 4 | [ 3 ] { label: $a = %22%3b%25; } 5 | 6 | [ 1 ] --> [ 2 ] 7 | [ 3 ] --> [ 4 ] 8 | -------------------------------------------------------------------------------- /t/txt/4_autosplit_class.txt: -------------------------------------------------------------------------------- 1 | node { border: double; } 2 | node.b { border: dotted; } 3 | node.c { border: dashed; } 4 | 5 | [ C|D ] { class: c; } 6 | 7 | [ A|B ] 8 | -------------------------------------------------------------------------------- /t/txt/4_autosplit_empty.txt: -------------------------------------------------------------------------------- 1 | [ 1 ] --> [ 23.1 ] 2 | [ 2| |3 ] 3 | -------------------------------------------------------------------------------- /t/txt/4_autosplit_offset.txt: -------------------------------------------------------------------------------- 1 | [ 1 ] { size: 1,2; } 2 | [ 2|3 ] { offset: 2,1; origin: 1; } 3 | 4 | [ 1 ] --> [ 23.1 ] 5 | [ 23.1 ] --> [ 3 ] 6 | -------------------------------------------------------------------------------- /t/txt/4_autosplit_shape.txt: -------------------------------------------------------------------------------- 1 | [ A|B ] { shape: |none; } 2 | [ C|D ] { shape: none|; } 3 | 4 | -------------------------------------------------------------------------------- /t/txt/4_bug_basename.txt: -------------------------------------------------------------------------------- 1 | [ a | b | c ] { basename: pv; } 2 | 3 | [ u ] --> [ pv.0 ] 4 | [ u ] --> [ pv.1 ] 5 | [ u ] --> [ pv.2 ] 6 | -------------------------------------------------------------------------------- /t/txt/4_bug_joint_2.txt: -------------------------------------------------------------------------------- 1 | edge { arrowstyle: none; } 2 | 3 | [ C ] { offset: 0,2; origin: B; } 4 | [ D ] { offset: 0,2; origin: C; } 5 | [ E ] { offset: -2,-2; origin: B; } 6 | 7 | [ B ] <--> { end: south, 0; start: west; } [ E ] 8 | [ C ] <--> { end: south, 0; start: west; } [ E ] 9 | [ D ] <--> { end: south, 0; start: west; } [ E ] 10 | -------------------------------------------------------------------------------- /t/txt/4_collapse.txt: -------------------------------------------------------------------------------- 1 | node.i { label: S P A C Y; } 2 | 3 | [ A ] { label: S P A C E; } 4 | [ B ] { class: i; } 5 | 6 | [ A ] -- S P A C E --> [ B ] 7 | [ A B C ] -- A B C D --> [ X Z Y ] 8 | -------------------------------------------------------------------------------- /t/txt/4_comma.txt: -------------------------------------------------------------------------------- 1 | [ 1 ] --> [ 4 ] 2 | [ 2 ] --> [ 4 ] 3 | [ 3 ] --> [ 4 ] 4 | -------------------------------------------------------------------------------- /t/txt/4_cross.txt: -------------------------------------------------------------------------------- 1 | [ B ] { offset: 40,0; origin: A; } 2 | [ C ] { offset: 20,-20; origin: A; } 3 | [ D ] { offset: 0,40; origin: C; } 4 | 5 | [ A ] --> [ B ] 6 | [ C ] - > [ D ] 7 | -------------------------------------------------------------------------------- /t/txt/4_cross_inv.txt: -------------------------------------------------------------------------------- 1 | [ B ] { offset: 40,0; origin: A; } 2 | [ C ] { offset: 20,-20; origin: A; } 3 | [ D ] { offset: 0,40; origin: C; } 4 | 5 | [ A ] --> { style: invisible; } [ B ] 6 | [ C ] - > [ D ] 7 | -------------------------------------------------------------------------------- /t/txt/4_cross_split.txt: -------------------------------------------------------------------------------- 1 | [ B ] { offset: 4,0; origin: A; } 2 | [ C ] { offset: 2,-2; origin: A; } 3 | [ D ] { offset: 2,2; origin: A; } 4 | 5 | ( Cross: 6 | [ A ] 7 | [ B ] 8 | [ C ] 9 | [ D ] 10 | ) 11 | 12 | [ A ] --> [ B ] 13 | [ C ] --> [ D ] 14 | -------------------------------------------------------------------------------- /t/txt/4_cross_split_hor.txt: -------------------------------------------------------------------------------- 1 | [ B ] { offset: 0,4; origin: A; } 2 | [ C ] { offset: -2,2; origin: A; } 3 | [ D ] { offset: 2,2; origin: A; } 4 | 5 | ( Cross: 6 | [ A ] 7 | [ B ] 8 | [ C ] 9 | [ D ] 10 | ) 11 | 12 | [ A ] --> [ B ] 13 | [ C ] --> [ D ] 14 | -------------------------------------------------------------------------------- /t/txt/4_edge_cross.txt: -------------------------------------------------------------------------------- 1 | [ E1 ] --> [ E2 ] 2 | [ E1 ] --> [ S1 ] 3 | [ E1 ] --> [ S2 ] 4 | [ E2 ] --> [ S1 ] 5 | [ E2 ] --> [ S2 ] 6 | [ S1 ] --> [ S2 ] 7 | -------------------------------------------------------------------------------- /t/txt/4_edge_labels.txt: -------------------------------------------------------------------------------- 1 | [ Bonn ] == train ==> [ Berlin ] 2 | [ Bonn ] -- car --> [ Potsdam ] 3 | [ Berlin ] .. bus ..> [ Potsdam ] 4 | [ Berlin ] .- bike .-> [ Ulm ] 5 | -------------------------------------------------------------------------------- /t/txt/4_endless_loop.txt: -------------------------------------------------------------------------------- 1 | [ 2 ] { fill: red; } 2 | [ 3|4 ] { fill: red; } 3 | 4 | [ 1 ] --> [ 2 ] 5 | -------------------------------------------------------------------------------- /t/txt/4_endless_loop_2.txt: -------------------------------------------------------------------------------- 1 | [ 4 ] { offset: 1,0; origin: 3; } 2 | 3 | [ 1 ] --> [ 2 ] 4 | [ 3 ] 5 | -------------------------------------------------------------------------------- /t/txt/4_flow.txt: -------------------------------------------------------------------------------- 1 | [ Passau ] --> { flow: down; } [ Siegen ] 2 | [ Siegen ] --> { flow: left; } [ Aschaffenburg ] 3 | [ Siegen ] --> { flow: right; } [ Regensburg ] 4 | -------------------------------------------------------------------------------- /t/txt/4_flow_chain.txt: -------------------------------------------------------------------------------- 1 | [ Bonn ] --> [ Cottbus ] 2 | [ Bonn ] --> { flow: forward; } [ Berlin ] 3 | [ Cottbus ] --> [ Ulm ] 4 | -------------------------------------------------------------------------------- /t/txt/4_invisible.txt: -------------------------------------------------------------------------------- 1 | [ Borna ] { pointstyle: invisible; shape: point; } 2 | [ You don't see me! ] { shape: invisible; } 3 | 4 | [ Bischofswerda ] --> [ You don't see me! ] 5 | [ You don't see me! ] --> [ Bischofswerda ] 6 | [ You don't see me! ] --> [ Borna ] 7 | [ Borna ] --> [ Bremen ] 8 | -------------------------------------------------------------------------------- /t/txt/4_joint.txt: -------------------------------------------------------------------------------- 1 | [ B ] { offset: 2,0; origin: A; size: 2,1; } 2 | [ C ] { offset: 2,-2; origin: B; } 3 | 4 | [ A ] --> { end: south, 0; start: south; } [ C ] 5 | [ B ] --> { end: south, 0; start: south; } [ C ] 6 | [ B ] --> [ U ] 7 | -------------------------------------------------------------------------------- /t/txt/4_joint_bug_flags.txt: -------------------------------------------------------------------------------- 1 | [ C ] { offset: 0,2; origin: B; } 2 | [ D ] { offset: 0,2; origin: C; } 3 | [ E ] { offset: -2,-2; origin: B; } 4 | 5 | [ B ] <--> { end: south, 0; start: west; } [ E ] 6 | [ C ] <--> { end: south, 0; start: west; } [ E ] 7 | [ D ] <--> { end: south, 0; start: west; } [ E ] 8 | -------------------------------------------------------------------------------- /t/txt/4_list_attr.txt: -------------------------------------------------------------------------------- 1 | [ Berlin ] { border: dashed; } 2 | [ Bonn ] { border: dashed; } 3 | [ Frankfurt ] { border: dot-dot-dash; } 4 | [ Frankfurt (Oder) ] { border: dot-dot-dash; } 5 | 6 | [ Berlin ] -- test --> [ Frankfurt ] 7 | [ Berlin ] -- test --> [ Frankfurt (Oder) ] 8 | [ Bonn ] -- test --> [ Frankfurt ] 9 | [ Bonn ] -- test --> [ Frankfurt (Oder) ] 10 | -------------------------------------------------------------------------------- /t/txt/4_lists.txt: -------------------------------------------------------------------------------- 1 | [ Bonn ] --> [ Berlin ] 2 | [ Bonn ] --> [ Frankfurt ] 3 | [ Ulm ] --> [ Berlin ] 4 | [ Ulm ] --> [ Frankfurt ] 5 | -------------------------------------------------------------------------------- /t/txt/4_minlen.txt: -------------------------------------------------------------------------------- 1 | [ Berlin ] --> { minlen: 4; } [ Cottbus ] 2 | [ Berlin ] --> { minlen: 4; } [ Leipzig ] 3 | [ Berlin ] --> { minlen: 4; } [ Potsdam ] 4 | -------------------------------------------------------------------------------- /t/txt/4_near.txt: -------------------------------------------------------------------------------- 1 | [ Bonn ] --> [ Berlin ] 2 | [ Essen ] --> [ Berlin ] 3 | [ Berlin ] --> [ Koeln ] 4 | -------------------------------------------------------------------------------- /t/txt/4_node_edge.txt: -------------------------------------------------------------------------------- 1 | [ test ] { shape: edge; } 2 | 3 | [ A ] -- [ test ] 4 | [ test ] -- [ ] 5 | [ ] --> [ B ] 6 | -------------------------------------------------------------------------------- /t/txt/4_nodes_5_edges.txt: -------------------------------------------------------------------------------- 1 | [ Default Page ] --> [ Sign Up ] 2 | [ Default Page ] --> [ Test Search ] 3 | [ Default Page ] ..> [ Main Page ] 4 | [ Sign Up ] --> [ Main Page ] 5 | [ Test Search ] --> [ Sign Up ] 6 | -------------------------------------------------------------------------------- /t/txt/4_nodes_6_edges.txt: -------------------------------------------------------------------------------- 1 | [ Default Page ] --> [ Sign Up ] 2 | [ Default Page ] --> [ Test Search ] 3 | [ Default Page ] --> [ Main Page ] 4 | [ Default Page ] --> [ Main Page ] 5 | [ Sign Up ] --> [ Main Page ] 6 | [ Test Search ] --> [ Sign Up ] 7 | -------------------------------------------------------------------------------- /t/txt/4groups.txt: -------------------------------------------------------------------------------- 1 | ( German Cities 2 | [ Bremen ] 3 | [ Cuxhaven ] 4 | [ Flensburg ] 5 | [ Hamburg ] 6 | ) 7 | 8 | [ Cuxhaven ] --> [ Bremen ] 9 | -------------------------------------------------------------------------------- /t/txt/4groups_class.txt: -------------------------------------------------------------------------------- 1 | node.city { color: #801010; } 2 | 3 | ( German Cities 4 | [ Bremen ] 5 | [ Cuxhaven ] 6 | [ Flensburg ] 7 | [ Hamburg ] 8 | ) { nodeclass: city; border: dot-dash; } 9 | 10 | [ Cuxhaven ] --> [ Bremen ] 11 | -------------------------------------------------------------------------------- /t/txt/5_arrow_styles.txt: -------------------------------------------------------------------------------- 1 | edge { arrowstyle: none; } 2 | 3 | [ Hagnau ] { flow: down; } 4 | [ Unteruhlingen ] { border: dotted; } 5 | 6 | [ Hagnau ] <--> [ Oberuhlingen ] 7 | [ Hagnau ] <--> [ Uhlingen ] 8 | [ Mainau ] --> [ Unteruhlingen ] 9 | [ Mainau ] -- { arrowstyle: closed; } [ Unteruhlingen ] 10 | [ Oberuhlingen ] <--> { arrowstyle: closed; } [ Unteruhlingen ] 11 | [ Uhlingen ] <--> { arrowstyle: filled; } [ Oberuhlingen ] 12 | -------------------------------------------------------------------------------- /t/txt/5_flow.txt: -------------------------------------------------------------------------------- 1 | [ Bonn ] --> [ Cottbus ] 2 | [ Bonn ] --> { flow: forward; } [ Berlin ] 3 | [ Cottbus ] --> [ Moselkern ] 4 | [ Moselkern ] --> [ Ulm ] 5 | -------------------------------------------------------------------------------- /t/txt/5_group_split.txt: -------------------------------------------------------------------------------- 1 | [ Frankfurt ] { flow: down; } 2 | [ Ulm ] { offset: 6,2; origin: Bonn; } 3 | 4 | ( test: 5 | [ Berlin ] 6 | [ Bonn ] 7 | [ Frankfurt ] 8 | [ Hagen ] 9 | ) 10 | 11 | [ Bonn ] --> [ Berlin ] 12 | [ Bonn ] --> [ Ulm ] 13 | [ Berlin ] --> [ Frankfurt ] 14 | [ Frankfurt ] --> [ Hagen ] 15 | -------------------------------------------------------------------------------- /t/txt/5_joint.txt: -------------------------------------------------------------------------------- 1 | [ Aachen ] { offset: 0,2; origin: Hannover; } 2 | [ Berlin ] { offset: 2,0; origin: Aachen; } 3 | [ Cuxhaven ] { offset: 4,0; origin: Aachen; } 4 | [ Hannover ] { flow: down; } 5 | [ Zwickau ] { offset: 2,-2; origin: Hannover; } 6 | 7 | [ Hannover ] --> { start: south; } [ Aachen ] 8 | [ Hannover ] --> { start: south; } [ Berlin ] 9 | [ Hannover ] --> { start: south; } [ Cuxhaven ] 10 | [ Aachen ] --> { end: south, 0; start: south; } [ Zwickau ] 11 | [ Berlin ] --> { end: south, 0; start: south; } [ Zwickau ] 12 | [ Cuxhaven ] --> { end: south, 0; start: south; } [ Zwickau ] 13 | -------------------------------------------------------------------------------- /t/txt/5_joint_bug2.txt: -------------------------------------------------------------------------------- 1 | [ A ] { flow: south; size: 5,1; } 2 | [ B ] { offset: 0,2; origin: A; } 3 | [ C ] { offset: 2,0; origin: B; } 4 | [ D ] { offset: 2,0; origin: C; } 5 | [ E ] { offset: 2,0; origin: A; } 6 | 7 | [ A ] <--> [ B ] 8 | [ A ] <--> [ C ] 9 | [ A ] <--> [ D ] 10 | [ B ] <--> { end: south, 0; start: south; } [ E ] 11 | [ C ] <--> { end: south, 0; start: south; } [ E ] 12 | [ D ] <--> { end: south, 0; start: south; } [ E ] 13 | -------------------------------------------------------------------------------- /t/txt/5_joint_label.txt: -------------------------------------------------------------------------------- 1 | [ Aachen ] -- travel --> { end: back, 0; } [ Zittau ] 2 | [ Buxtehude ] -- travel --> { end: back, 0; } [ Zittau ] 3 | [ Cottbus ] -- travel --> { end: back, 0; } [ Zittau ] 4 | [ Dachau ] -- travel --> { end: back, 0; } [ Zittau ] 5 | -------------------------------------------------------------------------------- /t/txt/5_long_edge_labels.txt: -------------------------------------------------------------------------------- 1 | [ A ] --> [ B ] 2 | [ A ] -- very long edge label --> [ E ] 3 | [ B ] --> [ C ] 4 | [ E ] -- another very long edge label --> [ A ] 5 | [ C ] --> [ D ] 6 | [ D ] --> [ E ] 7 | -------------------------------------------------------------------------------- /t/txt/5_multicell.txt: -------------------------------------------------------------------------------- 1 | graph { flow: up; } 2 | 3 | [ Client ] { offset: 0,2; origin: Proxy; } 4 | [ Client1 ] { offset: 0,-2; origin: Proxy; } 5 | [ Client2 ] { offset: 2,0; origin: Proxy; } 6 | [ Client3 ] { offset: -2,0; origin: Proxy; } 7 | [ Proxy ] { size: 3,2; } 8 | 9 | [ Client ] <--> [ Proxy ] 10 | [ Client1 ] <--> [ Proxy ] 11 | [ Client2 ] <--> [ Proxy ] 12 | [ Client3 ] <--> [ Proxy ] 13 | -------------------------------------------------------------------------------- /t/txt/5_offsets.txt: -------------------------------------------------------------------------------- 1 | [ A ] { offset: 2,1; origin: B; } 2 | [ B ] { offset: 1,1; origin: C; } 3 | [ C ] { offset: 1,1; origin: D; } 4 | 5 | [ A ] --> [ B ] 6 | [ B ] --> [ C ] 7 | [ C ] --> [ D ] 8 | [ D ] --> [ E ] 9 | -------------------------------------------------------------------------------- /t/txt/5_offsets_2.txt: -------------------------------------------------------------------------------- 1 | [ A ] { offset: 2,1; origin: B; } 2 | [ B ] { offset: 1,1; origin: C; } 3 | [ C ] { offset: 1,1; origin: D; } 4 | 5 | [ A ] --> [ B ] 6 | [ E ] --> [ D ] 7 | [ B ] --> [ A ] 8 | [ B ] --> [ C ] 9 | [ B ] --> [ C ] 10 | [ D ] --> [ C ] 11 | [ D ] --> [ C ] 12 | -------------------------------------------------------------------------------- /t/txt/5_rounded.txt: -------------------------------------------------------------------------------- 1 | node { shape: rounded; } 2 | 3 | [ Pankow\n (Berlin) ] { border: double; } 4 | [ Parsing ] { border: dashed; } 5 | [ Pullach ] { border: dotted; } 6 | [ Pullheim ] { border: bold; } 7 | 8 | [ Pullach ] --> [ Parsing ] 9 | [ Parsing ] --> [ Pankow\n (Berlin) ] 10 | [ Pankow\n (Berlin) ] --> [ Pullheim ] 11 | [ Pullheim ] --> [ Paderborn ] 12 | -------------------------------------------------------------------------------- /t/txt/5_tree_joint.txt: -------------------------------------------------------------------------------- 1 | [ A1 ] { offset: 2,1; origin: A; } 2 | [ A2 ] { offset: 2,2; origin: A; } 3 | [ A3 ] { offset: 2,3; origin: A; } 4 | [ A4 ] { offset: 2,4; origin: A; } 5 | 6 | [ A ] --> { start: south, 0; } [ A1 ] 7 | [ A ] --> { start: south, 0; } [ A2 ] 8 | [ A ] --> { start: south, 0; } [ A3 ] 9 | [ A ] --> { start: south, 0; } [ A4 ] 10 | -------------------------------------------------------------------------------- /t/txt/6_autosplit_class.txt: -------------------------------------------------------------------------------- 1 | node.red { 2 | color: red; 3 | columns: 2; 4 | label: D; 5 | } 6 | 7 | [ A|B|C ] { basename: A; class: red; } 8 | 9 | [ 1 ] --> [ A.0 ] 10 | [ 2 ] --> [ 3 ] 11 | [ 2 ] --> [ A.0 ] 12 | -------------------------------------------------------------------------------- /t/txt/6_chain_10_edges.txt: -------------------------------------------------------------------------------- 1 | [ Bonn ] --> [ Ulm ] 2 | [ Bonn ] --> [ Berlin ] 3 | [ Bonn ] --> [ Koblenz ] 4 | [ Berlin ] --> [ Kassel ] 5 | [ Koblenz ] --> [ Berlin ] 6 | [ Ulm ] --> [ Bautzen ] 7 | [ Ulm ] --> [ Bautzen ] 8 | [ Ulm ] --> [ Koblenz ] 9 | [ Bautzen ] --> [ Berlin ] 10 | [ Bautzen ] --> [ Berlin ] 11 | -------------------------------------------------------------------------------- /t/txt/6_chained.txt: -------------------------------------------------------------------------------- 1 | [ Bonn ] --> [ Ulm ] 2 | [ Bonn ] --> [ Berlin ] 3 | [ Bonn ] --> [ Koblenz ] 4 | [ Berlin ] --> [ Kassel ] 5 | [ Ulm ] --> [ Bautzen ] 6 | [ Ulm ] --> [ Koblenz ] 7 | [ Bautzen ] --> [ Berlin ] 8 | -------------------------------------------------------------------------------- /t/txt/6_empty_row.txt: -------------------------------------------------------------------------------- 1 | [ A|| ||B ] 2 | [ AB.0 ] --> [ CD.0 ] 3 | [ C|| ||D ] 4 | -------------------------------------------------------------------------------- /t/txt/6_fanout.txt: -------------------------------------------------------------------------------- 1 | [ A ] { label: Hello World!; } 2 | [ B ] { label: Hello World!; } 3 | [ C ] { label: Hello World!; } 4 | [ D ] { label: Hello World!; } 5 | [ middle ] { fill: #ccccff; label: /dev/fanout; } 6 | 7 | [ Hello World ] --> [ middle ] 8 | [ middle ] --> { start: front,0; } [ A ] 9 | [ middle ] --> { start: front,0; } [ B ] 10 | [ middle ] --> { start: front,0; } [ C ] 11 | [ middle ] --> { start: front,0; } [ D ] 12 | -------------------------------------------------------------------------------- /t/txt/6_group_align.txt: -------------------------------------------------------------------------------- 1 | ( Center: 2 | [ E ] 3 | [ F ] 4 | ) { align: center; } 5 | 6 | ( Left: 7 | [ A ] 8 | [ B ] 9 | ) { align: left; } 10 | 11 | ( Right: 12 | [ C ] 13 | [ D ] 14 | ) { align: right; } 15 | 16 | [ A ] --> [ B ] 17 | [ C ] --> [ D ] 18 | [ E ] --> [ F ] 19 | -------------------------------------------------------------------------------- /t/txt/6_joint.txt: -------------------------------------------------------------------------------- 1 | [ Hagen ] --> { end: back, 0; } [ Bonn ] 2 | [ Hamburg ] --> { end: back, 0; } [ Bonn ] 3 | [ Hanau ] --> { end: back, 0; } [ Bonn ] 4 | [ Hannover ] --> { end: back, 0; } [ Bonn ] 5 | [ Bonn ] --> [ Prag ] 6 | -------------------------------------------------------------------------------- /t/txt/6_multicell.txt: -------------------------------------------------------------------------------- 1 | [ A ] { size: 2,2; } 2 | [ B ] { rows: 2; } 3 | [ C ] { size: 3,1; } 4 | 5 | [ A ] --> [ B ] 6 | [ A ] --> [ B ] 7 | [ A ] --> [ F ] 8 | [ A ] --> [ G ] 9 | [ B ] --> [ C ] 10 | [ B ] --> [ C ] 11 | [ B ] --> [ C ] 12 | [ C ] --> [ D ] 13 | [ D ] --> [ C ] 14 | -------------------------------------------------------------------------------- /t/txt/6_multicell_offset.txt: -------------------------------------------------------------------------------- 1 | [ B ] { offset: 2,0; origin: Wide; } 2 | [ C ] { offset: -2,0; origin: Wide; } 3 | [ D ] { offset: 0,2; origin: High; } 4 | [ E ] { offset: 0,-2; origin: High; } 5 | [ High ] { size: 1,4; } 6 | [ Wide ] { size: 4,1; } 7 | 8 | [ High ] --> [ D ] 9 | [ High ] --> [ E ] 10 | [ Wide ] --> [ B ] 11 | [ Wide ] --> [ C ] 12 | -------------------------------------------------------------------------------- /t/txt/6_nested_groups.txt: -------------------------------------------------------------------------------- 1 | ( Inner 1 2 | [ A ] 3 | [ B ] 4 | ) { group: Outer; } 5 | 6 | ( Inner 2 7 | [ C ] 8 | [ D ] 9 | ) { group: Outer; } 10 | 11 | ( Outer 12 | [ E ] 13 | [ F ] 14 | ) 15 | 16 | [ A ] --> [ B ] 17 | [ C ] --> [ D ] 18 | [ E ] --> [ F ] 19 | -------------------------------------------------------------------------------- /t/txt/6_ranks.txt: -------------------------------------------------------------------------------- 1 | [ D ] { rank: 0; } 2 | [ F ] { rank: 0; } 3 | 4 | [ A ] --> [ B ] 5 | [ D ] --> [ E ] 6 | [ B ] --> [ C ] 7 | [ E ] --> { end: north; } [ F ] 8 | [ C ] --> [ D ] 9 | -------------------------------------------------------------------------------- /t/txt/6_split_join_loop.txt: -------------------------------------------------------------------------------- 1 | [ A ] --> [ B ] 2 | [ B ] --> [ C ] 3 | [ C ] --> { start: front, 0; } [ X ] 4 | [ C ] --> { start: front, 0; } [ Y ] 5 | [ X ] --> { end: back, 0; } [ I ] 6 | [ Y ] --> { end: back, 0; } [ I ] 7 | [ I ] --> [ A ] 8 | -------------------------------------------------------------------------------- /t/txt/7_cluster.txt: -------------------------------------------------------------------------------- 1 | [ A | BCD | E | F || G | | H ] 2 | -------------------------------------------------------------------------------- /t/txt/7_star.txt: -------------------------------------------------------------------------------- 1 | [ Dachau ] --> [ Berlin ] 2 | [ Dachau ] --> [ Chemnitz ] 3 | [ Dachau ] --> [ Frankfurt ] 4 | [ Dachau ] --> [ Kiel ] 5 | [ Dachau ] --> [ Ulm ] 6 | [ Dachau ] --> [ Weimar ] 7 | -------------------------------------------------------------------------------- /t/txt/7_tree.txt: -------------------------------------------------------------------------------- 1 | edge { start: south, 0; } 2 | 3 | [ A1 ] { offset: 2,1; origin: A; } 4 | [ A23 ] { offset: 2,1; origin: A2; } 5 | 6 | [ A ] --> [ A2 ] 7 | [ A ] --> [ A1 ] 8 | [ A ] --> [ A3 ] 9 | [ A2 ] --> [ A21 ] 10 | [ A2 ] --> [ A22 ] 11 | [ A2 ] --> [ A23 ] 12 | -------------------------------------------------------------------------------- /t/txt/8_basename.txt: -------------------------------------------------------------------------------- 1 | [ A|B|C ] { basename: A; } 2 | 3 | [ 1 ] --> [ A.2 ] 4 | [ 2 ] --> [ ABC.2 ] 5 | [ A|B|C ] 6 | -------------------------------------------------------------------------------- /t/txt/8_chain.txt: -------------------------------------------------------------------------------- 1 | [ Bonn ] --> [ Berlin ] 2 | [ Berlin ] --> [ Koeln ] 3 | [ Koeln ] --> [ Frankfurt ] 4 | [ Frankfurt ] --> [ Hannover ] 5 | [ Frankfurt ] --> [ Chemnitz ] 6 | [ Frankfurt ] --> [ Dresden ] 7 | [ Hannover ] --> [ Hamburg ] 8 | -------------------------------------------------------------------------------- /t/txt/8_endless_loop.txt: -------------------------------------------------------------------------------- 1 | [ 1 ] --> [ 2 ] 2 | [ 1 ] --> [ 3 ] 3 | [ 3|4 ] 4 | [ 5|6|7 ] 5 | [ 2 ] --> [ 3 ] 6 | -------------------------------------------------------------------------------- /t/txt/8_flow.txt: -------------------------------------------------------------------------------- 1 | [ South ] { flow: south; } 2 | 3 | [ East ] --> [ South ] 4 | [ South ] --> [ West ] 5 | [ West ] --> { flow: west; } [ South Too ] 6 | [ South Too ] --> { flow: down; } [ right (west) ] 7 | [ right (west) ] --> { flow: right; } [ left (south) ] 8 | [ left (south) ] --> { flow: left; } [ east (default) ] 9 | [ east (default) ] --> [ final ] 10 | -------------------------------------------------------------------------------- /t/txt/8_invisible.txt: -------------------------------------------------------------------------------- 1 | edge { 2 | color: blue; 3 | labelcolor: green; 4 | style: invisible; 5 | } 6 | graph { 7 | background: oldlace; 8 | label: My sample graph; 9 | border: solid black; 10 | } 11 | 12 | [ Five ] { color: yellow; fill: maroon; } 13 | [ One ] { color: white; fill: seagreen; } 14 | [ Two ] { shape: triangle; } 15 | 16 | [ Five ] - Test label - > { color: red; labelcolor: darkslategrey; } [ Seven ] 17 | [ Five ] --> [ Seven ] 18 | [ Five ] <==> [ Three ] 19 | [ Five ] --> [ Eight ] 20 | [ One ] ==> [ Three ] 21 | [ One ] .. Test\n label ..> [ Four ] 22 | [ One ] -- label --> [ Two ] 23 | [ Seven ] -- [ Eight ] 24 | [ Three ] <.. Test label ..> [ Six ] 25 | -------------------------------------------------------------------------------- /t/txt/8_labels.txt: -------------------------------------------------------------------------------- 1 | edge { 2 | color: blue; 3 | labelcolor: green; 4 | } 5 | graph { 6 | background: oldlace; 7 | label: My sample graph; 8 | border: solid black; 9 | } 10 | 11 | [ Five ] { color: yellow; fill: maroon; } 12 | [ One ] { color: white; fill: seagreen; } 13 | [ Two ] { shape: triangle; } 14 | 15 | [ Five ] - Test label - > { color: red; labelcolor: darkslategrey; } [ Seven ] 16 | [ Five ] --> [ Seven ] 17 | [ Five ] <==> [ Three ] 18 | [ Five ] --> [ Eight ] 19 | [ One ] ==> [ Three ] 20 | [ One ] .. Test\n label ..> [ Four ] 21 | [ One ] -- label --> [ Two ] 22 | [ Seven ] -- [ Eight ] 23 | [ Three ] <.. Test label ..> [ Six ] 24 | -------------------------------------------------------------------------------- /t/txt/8_optimize_bend.txt: -------------------------------------------------------------------------------- 1 | node { shape: circle; } 2 | 3 | [ compare ] { background: #c1b2ff; shape: rect; } 4 | [ main ] { shape: rect; } 5 | [ make_string ] { label: make a\n string; } 6 | 7 | [ main ] ..> [ init ] 8 | [ main ] --> [ parse ] 9 | [ main ] -- Testlabel --> [ cleanup ] 10 | [ main ] - 100 times - > { color: red; } [ printf ] 11 | [ init ] --> [ make_string ] 12 | [ parse ] --> [ execute ] 13 | [ execute ] --> { color: red; } [ compare ] 14 | [ execute ] --> [ make_string ] 15 | -------------------------------------------------------------------------------- /t/txt/8_points.txt: -------------------------------------------------------------------------------- 1 | node { shape: point; } 2 | 3 | [ B ] { pointstyle: square; } 4 | [ C ] { pointstyle: dot; } 5 | [ D ] { pointstyle: circle; } 6 | [ E ] { pointstyle: diamond; } 7 | [ F ] { pointstyle: cross; } 8 | [ G ] { shape: invisible; } 9 | [ H ] { pointstyle: star; } 10 | 11 | [ A ] --> [ B ] 12 | [ B ] --> [ C ] 13 | [ C ] --> [ D ] 14 | [ D ] --> [ E ] 15 | [ E ] --> [ F ] 16 | [ F ] --> [ G ] 17 | [ G ] --> [ H ] 18 | -------------------------------------------------------------------------------- /t/txt/9_chain.txt: -------------------------------------------------------------------------------- 1 | [ Bonn ] --> [ Berlin ] 2 | [ Berlin ] --> [ Koeln ] 3 | [ Berlin ] --> [ Cottbus ] 4 | [ Koeln ] --> [ Frankfurt ] 5 | [ Frankfurt ] --> [ Hannover ] 6 | [ Frankfurt ] --> [ Chemnitz ] 7 | [ Frankfurt ] --> [ Dresden ] 8 | [ Hannover ] --> [ Hamburg ] 9 | -------------------------------------------------------------------------------- /t/txt/9_cross.txt: -------------------------------------------------------------------------------- 1 | [ A ] { offset: 4,0; origin: U; } 2 | [ B|I ] { offset: 32,0; origin: A; } 3 | [ C | D||E ] { offset: 0,1; origin: A; } 4 | 5 | [ U ] --> [ A ] 6 | [ U ] --> { start: north; } [ I ] 7 | [ A ] --> [ BI.1 ] 8 | [ A ] --> [ BI.0 ] 9 | [ I ] --> [ Z ] 10 | [ BI.1 ] --> [ I ] 11 | -------------------------------------------------------------------------------- /t/txt/9_flow_south.txt: -------------------------------------------------------------------------------- 1 | edge { start: south; } 2 | graph { flow: down; } 3 | 4 | [ A ] --> [ A1 ] 5 | [ A ] --> [ A2 ] 6 | [ A ] --> [ A3 ] 7 | [ A ] --> [ A4 ] 8 | [ A ] --> [ A5 ] 9 | [ A ] --> [ A6 ] 10 | [ A ] --> [ A7 ] 11 | [ A ] --> [ A8 ] 12 | -------------------------------------------------------------------------------- /t/txt/dot/0_empty.txt: -------------------------------------------------------------------------------- 1 | edge { arrowstyle: filled; } 2 | graph { 3 | colorscheme: x11; 4 | flow: south; 5 | title: unnamed; 6 | } 7 | 8 | -------------------------------------------------------------------------------- /t/txt/dot/10_numbers.txt: -------------------------------------------------------------------------------- 1 | edge { arrowstyle: filled; } 2 | graph { 3 | colorscheme: x11; 4 | flow: south; 5 | title: G; 6 | } 7 | 8 | [ -100 ] --> [ 123.1230 ] 9 | [ .1 ] --> [ -1. ] 10 | [ .99 ] --> [ 0. ] 11 | [ 0.99 ] --> [ 12.88 ] 12 | [ 00019.1001 ] --> [ 1000. ] 13 | -------------------------------------------------------------------------------- /t/txt/dot/16_split.txt: -------------------------------------------------------------------------------- 1 | edge { arrowstyle: filled; } 2 | graph { 3 | colorscheme: x11; 4 | flow: south; 5 | title: SPLIT; 6 | } 7 | 8 | [ nil| | | 0 ] { basename: 0; } 9 | [ nil| | | 1 ] { basename: 1; } 10 | [ nil| | | 2 ] { basename: 2; } 11 | [ nil| | | 3 ] { basename: 3; } 12 | 13 | [ 0.0 ] --> [ 1.3 ] 14 | [ 0.3 ] --> [ 1.0 ] 15 | [ 2.0 ] --> [ 3.3 ] 16 | [ 2.3 ] --> [ 3.0 ] 17 | -------------------------------------------------------------------------------- /t/txt/dot/2_bool.txt: -------------------------------------------------------------------------------- 1 | edge { arrowstyle: filled; } 2 | graph { 3 | colorscheme: x11; 4 | flow: south; 5 | title: G; 6 | } 7 | 8 | [ Bonn ] --> [ Berlin ] 9 | -------------------------------------------------------------------------------- /t/txt/dot/2_comment_inside_attr.txt: -------------------------------------------------------------------------------- 1 | edge { arrowstyle: filled; } 2 | graph { 3 | colorscheme: x11; 4 | flow: south; 5 | title: G; 6 | } 7 | 8 | [ a ] { label: a; } 9 | 10 | [ a ] --> [ b ] 11 | -------------------------------------------------------------------------------- /t/txt/dot/2_graph_label_bottom.txt: -------------------------------------------------------------------------------- 1 | edge { arrowstyle: filled; } 2 | graph { 3 | colorscheme: x11; 4 | flow: south; 5 | label: Deutsche Städte; 6 | labelpos: bottom; 7 | title: GRAPH_0; 8 | } 9 | 10 | [ Köln ] --> [ Stralsund ] 11 | -------------------------------------------------------------------------------- /t/txt/dot/2_group_labelloc.txt: -------------------------------------------------------------------------------- 1 | edge { arrowstyle: filled; } 2 | graph { 3 | colorscheme: x11; 4 | flow: south; 5 | title: GRAPH_0; 6 | } 7 | group { 8 | align: center; 9 | fill: inherit; 10 | } 11 | 12 | ( cluster0 13 | [ Wasserkuppe ] 14 | [ Zugspitze ] 15 | ) { align: left; label: Bergtour:; labelpos: bottom; border: dashed black; } 16 | 17 | [ Zugspitze ] --> [ Wasserkuppe ] 18 | -------------------------------------------------------------------------------- /t/txt/dot/2_ignore.txt: -------------------------------------------------------------------------------- 1 | edge { arrowstyle: filled; } 2 | graph { 3 | colorscheme: x11; 4 | flow: south; 5 | title: G; 6 | } 7 | 8 | [ node1 ] --> [ node2 ] 9 | -------------------------------------------------------------------------------- /t/txt/dot/2_linewidth.txt: -------------------------------------------------------------------------------- 1 | edge { arrowstyle: filled; } 2 | graph { 3 | colorscheme: x11; 4 | flow: south; 5 | title: G; 6 | x-dot-overlap: false; 7 | x-dot-ratio: fill; 8 | x-dot-size: 11,8.5; 9 | } 10 | 11 | [ 123 ] { fontsize: 10px; shape: none; } 12 | [ foo ] { fontsize: 10px; shape: none; } 13 | 14 | [ 123 ] --> [ foo ] 15 | -------------------------------------------------------------------------------- /t/txt/dot/2_no_spaces.txt: -------------------------------------------------------------------------------- 1 | edge { arrowstyle: filled; } 2 | graph { 3 | colorscheme: x11; 4 | flow: south; 5 | title: unnamed; 6 | type: undirected; 7 | } 8 | 9 | [ bonn ] -- [ berlin ] 10 | -------------------------------------------------------------------------------- /t/txt/dot/2_nospace.txt: -------------------------------------------------------------------------------- 1 | edge { arrowstyle: filled; } 2 | graph { 3 | colorscheme: x11; 4 | flow: south; 5 | title: mike; 6 | } 7 | 8 | [ mike ] --> [ michael ] 9 | -------------------------------------------------------------------------------- /t/txt/dot/2_ports.txt: -------------------------------------------------------------------------------- 1 | edge { arrowstyle: filled; } 2 | graph { 3 | colorscheme: x11; 4 | flow: south; 5 | title: ports; 6 | } 7 | 8 | [ north ] --> { end: west; start: east; } [ south ] 9 | -------------------------------------------------------------------------------- /t/txt/dot/2_setlinewidth.txt: -------------------------------------------------------------------------------- 1 | edge { arrowstyle: filled; } 2 | graph { 3 | colorscheme: x11; 4 | flow: south; 5 | title: unnamed; 6 | } 7 | 8 | [ Berlin ] { shape: rect; border: broad; } 9 | [ Bonn ] { border: bold; } 10 | 11 | [ Bonn ] --> [ Berlin ] 12 | -------------------------------------------------------------------------------- /t/txt/dot/2_square_bracket_in_attr.txt: -------------------------------------------------------------------------------- 1 | edge { arrowstyle: filled; } 2 | graph { 3 | colorscheme: x11; 4 | flow: south; 5 | title: G; 6 | } 7 | 8 | [ a ] { label: ] ; } 9 | 10 | [ a ] --> [ b ] 11 | -------------------------------------------------------------------------------- /t/txt/dot/2_strict.txt: -------------------------------------------------------------------------------- 1 | edge { arrowstyle: filled; } 2 | graph { 3 | colorscheme: x11; 4 | flow: south; 5 | title: G; 6 | } 7 | 8 | [ Wolfsbüttel ] --> [ Köln ] 9 | -------------------------------------------------------------------------------- /t/txt/dot/3_colors.txt: -------------------------------------------------------------------------------- 1 | edge { arrowstyle: filled; } 2 | graph { 3 | colorscheme: x11; 4 | flow: south; 5 | title: G; 6 | } 7 | group { 8 | align: center; 9 | fill: inherit; 10 | } 11 | 12 | [ A ] { color: red; } 13 | [ B ] { color: #ffff99; } 14 | [ C ] { color: #ff0000; } 15 | 16 | ( cluster_1 17 | [ A ] 18 | [ B ] 19 | ) { border: dashed #ff0000; } 20 | 21 | [ A ] --> { color: #ff0000ff; } [ B ] 22 | [ B ] --> { color: hsv(1.0,1.0,1.0); } [ C ] 23 | -------------------------------------------------------------------------------- /t/txt/dot/3_empty_record.txt: -------------------------------------------------------------------------------- 1 | edge { arrowstyle: filled; } 2 | graph { 3 | colorscheme: x11; 4 | flow: south; 5 | title: G; 6 | } 7 | 8 | [ Compositor| |Compose() ] { basename: Compositor; } 9 | 10 | -------------------------------------------------------------------------------- /t/txt/dot/3_empty_record_LR.txt: -------------------------------------------------------------------------------- 1 | edge { arrowstyle: filled; } 2 | graph { 3 | colorscheme: x11; 4 | flow: east; 5 | title: G; 6 | } 7 | 8 | [ Compositor|| || Compose() ] { basename: Compositor; } 9 | 10 | -------------------------------------------------------------------------------- /t/txt/dot/3_graph_label_long.txt: -------------------------------------------------------------------------------- 1 | edge { arrowstyle: filled; } 2 | graph { 3 | colorscheme: x11; 4 | flow: south; 5 | label: Deutsche Städte am Rhein; 6 | labelpos: bottom; 7 | title: GRAPH_0; 8 | } 9 | 10 | [ Köln ] --> [ Bonn ] 11 | [ Bonn ] --> [ Koblenz ] 12 | -------------------------------------------------------------------------------- /t/txt/dot/3_ids.txt: -------------------------------------------------------------------------------- 1 | edge { arrowstyle: filled; } 2 | graph { 3 | colorscheme: x11; 4 | flow: south; 5 | title: G; 6 | } 7 | 8 | [ 123 ] 9 | [ abc ] --> [ test ] 10 | -------------------------------------------------------------------------------- /t/txt/dot/3_invis.txt: -------------------------------------------------------------------------------- 1 | edge { arrowstyle: filled; } 2 | graph { 3 | colorscheme: x11; 4 | flow: south; 5 | title: G; 6 | } 7 | 8 | [ a ] { shape: rect; } 9 | [ b ] { shape: invisible; } 10 | [ c ] { shape: rect; } 11 | 12 | [ a ] --> [ b ] 13 | [ b ] --> [ c ] 14 | -------------------------------------------------------------------------------- /t/txt/dot/3_node_label.txt: -------------------------------------------------------------------------------- 1 | edge { arrowstyle: filled; } 2 | graph { 3 | colorscheme: x11; 4 | flow: south; 5 | label: \G; 6 | title: Graphname; 7 | } 8 | 9 | [ 0 ] { label: \G \N; } 10 | [ 1 ] { label: \G \N; } 11 | [ 2 ] { label: Name: \N \G; } 12 | 13 | [ 0 ] -- \E \G \T \H --> [ 1 ] 14 | -------------------------------------------------------------------------------- /t/txt/dot/3_output_lone.txt: -------------------------------------------------------------------------------- 1 | edge { arrowstyle: filled; } 2 | graph { 3 | colorscheme: x11; 4 | flow: south; 5 | output: html; 6 | title: G; 7 | } 8 | 9 | [ a ] --> [ b ] 10 | [ c ] 11 | -------------------------------------------------------------------------------- /t/txt/dot/4_cluster_labeljust.txt: -------------------------------------------------------------------------------- 1 | edge { arrowstyle: filled; } 2 | graph { 3 | colorscheme: x11; 4 | flow: south; 5 | title: G; 6 | } 7 | group { 8 | align: center; 9 | fill: inherit; 10 | } 11 | 12 | ( cluster_0 13 | [ aaaaaaaaaaaaaaaaaaa ] 14 | [ b ] 15 | ) { align: right; label: Right aligned; } 16 | 17 | ( cluster_1 18 | [ c ] 19 | [ ddddddddddddddd ] 20 | ) { align: left; label: Left aligned; } 21 | 22 | [ aaaaaaaaaaaaaaaaaaa ] --> [ b ] 23 | [ c ] --> [ ddddddddddddddd ] 24 | -------------------------------------------------------------------------------- /t/txt/dot/4_compass.txt: -------------------------------------------------------------------------------- 1 | edge { arrowstyle: filled; } 2 | graph { 3 | colorscheme: x11; 4 | flow: south; 5 | title: unnamed; 6 | } 7 | 8 | [ berlin N | w ] { basename: berlin; } 9 | [ bonn N | S ] { basename: bonn; } 10 | 11 | [ bonn.0 ] --> { end: west; start: south; } [ berlin.0 ] 12 | [ bonn.1 ] --> [ berlin.1 ] 13 | -------------------------------------------------------------------------------- /t/txt/dot/4_html_like.txt: -------------------------------------------------------------------------------- 1 | edge { arrowstyle: filled; } 2 | graph { 3 | colorscheme: x11; 4 | flow: south; 5 | title: G; 6 | } 7 | 8 | [ first ] { label: ; } 9 | [ fourth ] { label: a; } 10 | [ second ] { label: ; } 11 | [ third ] { label: ; } 12 | 13 | -------------------------------------------------------------------------------- /t/txt/dot/4_loose.txt: -------------------------------------------------------------------------------- 1 | edge { arrowstyle: filled; } 2 | graph { 3 | colorscheme: x11; 4 | flow: south; 5 | title: unnamed; 6 | type: undirected; 7 | } 8 | 9 | [ A ] -- [ B ] 10 | [ B ] -- [ C ] 11 | [ C ] -- [ D ] 12 | [ D ] -- [ A ] 13 | -------------------------------------------------------------------------------- /t/txt/dot/4_record.txt: -------------------------------------------------------------------------------- 1 | edge { arrowstyle: filled; } 2 | graph { 3 | colorscheme: x11; 4 | flow: south; 5 | title: G; 6 | } 7 | 8 | [ test | split ] { basename: node1; } 9 | [ record | test ] { basename: node2; } 10 | 11 | [ node1.0 ] --> [ node2.1 ] 12 | -------------------------------------------------------------------------------- /t/txt/dot/4_strings.txt: -------------------------------------------------------------------------------- 1 | edge { arrowstyle: filled; } 2 | graph { 3 | colorscheme: x11; 4 | flow: south; 5 | title: graph0; 6 | } 7 | 8 | [ Cottbus ] { label: Cottbus; } 9 | [ berlin ] { label: Berlin Ost; } 10 | [ bonn ] { label: Bonn am Rhein; } 11 | [ bonntest ] { label: Bonn (Rhei n); } 12 | 13 | [ bonn ] -- train (ICE) --> [ berlin ] 14 | [ bonntest ] --> [ Cottbus ] 15 | -------------------------------------------------------------------------------- /t/txt/dot/4_uppercase.txt: -------------------------------------------------------------------------------- 1 | edge { arrowstyle: filled; } 2 | graph { 3 | colorscheme: x11; 4 | flow: south; 5 | title: graph; 6 | } 7 | group { 8 | align: center; 9 | fill: inherit; 10 | } 11 | 12 | [ a ] { border: dotted black; } 13 | [ b ] { border: dotted black; } 14 | [ c ] { border: dotted black; } 15 | [ d ] { border: dotted black; } 16 | 17 | ( cluster_me 18 | [ a ] 19 | [ b ] 20 | ) 21 | 22 | [ a ] -- foo --> [ b ] 23 | [ c ] -- foo --> [ d ] 24 | -------------------------------------------------------------------------------- /t/txt/dot/5_scope_atr.txt: -------------------------------------------------------------------------------- 1 | edge { arrowstyle: filled; } 2 | graph { 3 | colorscheme: x11; 4 | flow: south; 5 | title: GRAPH_0; 6 | } 7 | 8 | [ b ] { shape: rounded; } 9 | [ c ] { shape: none; } 10 | [ d ] { shape: none; } 11 | 12 | [ a ] 13 | [ b ] --> [ u ] 14 | [ c ] --> [ u ] 15 | [ d ] --> [ u ] 16 | -------------------------------------------------------------------------------- /t/txt/dot/5_scopes.txt: -------------------------------------------------------------------------------- 1 | edge { arrowstyle: filled; } 2 | graph { 3 | colorscheme: x11; 4 | flow: south; 5 | title: GRAPH_0; 6 | } 7 | 8 | [ a ] --> [ b ] 9 | [ a ] --> [ c ] 10 | [ a ] --> [ d ] 11 | [ b ] --> [ u ] 12 | [ c ] --> [ u ] 13 | [ d ] --> [ u ] 14 | -------------------------------------------------------------------------------- /t/txt/dot/5_scopes_chain.txt: -------------------------------------------------------------------------------- 1 | edge { arrowstyle: filled; } 2 | graph { 3 | colorscheme: x11; 4 | flow: south; 5 | title: GRAPH_0; 6 | } 7 | 8 | [ a ] --> [ b ] 9 | [ a ] --> [ c ] 10 | [ a ] --> [ d ] 11 | [ b ] --> [ o ] 12 | [ c ] --> [ o ] 13 | [ d ] --> [ o ] 14 | -------------------------------------------------------------------------------- /t/txt/dot/5_scopes_uni.txt: -------------------------------------------------------------------------------- 1 | edge { arrowstyle: filled; } 2 | graph { 3 | colorscheme: x11; 4 | flow: south; 5 | title: GRAPH_0; 6 | } 7 | 8 | [ a ] -- [ b ] 9 | [ a ] -- [ c ] 10 | [ a ] -- [ d ] 11 | [ b ] -- [ o ] 12 | [ c ] -- [ o ] 13 | [ d ] -- [ o ] 14 | -------------------------------------------------------------------------------- /t/txt/dot/6_2_cluster.txt: -------------------------------------------------------------------------------- 1 | edge { arrowstyle: filled; } 2 | graph { 3 | colorscheme: x11; 4 | flow: south; 5 | title: G; 6 | } 7 | group { 8 | align: center; 9 | fill: inherit; 10 | } 11 | 12 | ( cluster_first 13 | [ a ] 14 | [ b ] 15 | ) { label: first; } 16 | 17 | ( cluster_second 18 | [ p ] 19 | [ q ] 20 | [ r ] 21 | [ s ] 22 | ) { label: second; } 23 | 24 | [ a ] --> [ b ] 25 | [ b ] --> [ q ] 26 | [ q ] --> [ r ] 27 | [ r ] --> { style: bold; } [ a ] 28 | [ r ] --> [ s ] 29 | [ s ] --> [ p ] 30 | [ p ] --> [ q ] 31 | -------------------------------------------------------------------------------- /t/txt/dot/6_comments.txt: -------------------------------------------------------------------------------- 1 | edge { arrowstyle: filled; } 2 | graph { 3 | colorscheme: x11; 4 | flow: south; 5 | title: GRAPH_0; 6 | } 7 | 8 | [ a ] --> [ b ] 9 | [ a ] --> [ c ] 10 | [ a ] --> [ d ] 11 | [ my node /* not a comment */ ] --> [ b ] 12 | [ b ] --> [ u ] 13 | [ c ] --> [ u ] 14 | [ d ] --> [ u ] 15 | -------------------------------------------------------------------------------- /t/txt/dot/6_group_align.txt: -------------------------------------------------------------------------------- 1 | ( Center: 2 | [ E ] 3 | [ F ] 4 | ) { align: center; } 5 | 6 | ( Left: 7 | [ A ] 8 | [ B ] 9 | ) { align: left; } 10 | 11 | ( Right: 12 | [ C ] 13 | [ D ] 14 | ) { align: right; } 15 | 16 | [ A ] --> [ B ] 17 | [ C ] --> [ D ] 18 | [ E ] --> [ F ] 19 | -------------------------------------------------------------------------------- /t/txt/dot/7_record.txt: -------------------------------------------------------------------------------- 1 | edge { arrowstyle: filled; } 2 | graph { 3 | align: left; 4 | colorscheme: x11; 5 | flow: south; 6 | label: Left aligned label; 7 | title: gaph; 8 | } 9 | 10 | [ Aa \| Bb \| Cc ] { shape: rect; } 11 | [ AA | BB | CC ] { basename: a; } 12 | 13 | [ A | B | C ] 14 | -------------------------------------------------------------------------------- /t/txt/dot/9_back.txt: -------------------------------------------------------------------------------- 1 | edge { arrowstyle: filled; } 2 | graph { 3 | colorscheme: x11; 4 | flow: east; 5 | title: G; 6 | } 7 | 8 | [ 0 ] --> [ 11 ] 9 | [ 5 ] --> [ 6 ] 10 | [ 5 ] --> [ 8 ] 11 | [ 11 ] --> [ 1 ] 12 | [ 1 ] --> [ 10 ] 13 | [ 1 ] --> [ 2 ] 14 | [ 10 ] --> [ 6 ] 15 | [ 2 ] --> [ 3 ] 16 | [ 3 ] --> [ 8 ] 17 | -------------------------------------------------------------------------------- /t/txt/dot/9_stacking.txt: -------------------------------------------------------------------------------- 1 | edge { arrowstyle: filled; } 2 | graph { 3 | colorscheme: x11; 4 | flow: east; 5 | title: G; 6 | } 7 | 8 | [ 0 ] --> [ 11 ] 9 | [ 11 ] --> [ 1 ] 10 | [ 1 ] --> [ 10 ] 11 | [ 1 ] --> [ 2 ] 12 | [ 10 ] --> [ 6 ] 13 | [ 2 ] --> [ 3 ] 14 | [ 3 ] --> [ 8 ] 15 | [ 8 ] --> [ 5 ] 16 | [ 5 ] --> [ 6 ] 17 | -------------------------------------------------------------------------------- /t/txt/dot/9_tree.txt: -------------------------------------------------------------------------------- 1 | edge { arrowstyle: filled; } 2 | graph { 3 | colorscheme: x11; 4 | flow: south; 5 | title: G; 6 | } 7 | 8 | [ | A| ] { basename: node0; } 9 | [ | B| ] { basename: node1; } 10 | [ | C| ] { basename: node2; } 11 | 12 | [ node0.0 ] --> [ node1.1 ] 13 | [ node0.2 ] --> [ node2.2 ] 14 | [ node1.0 ] --> [ node2.1 ] 15 | -------------------------------------------------------------------------------- /t/txt/gdl/1_color_code.txt: -------------------------------------------------------------------------------- 1 | edge { arrowstyle: filled; } 2 | graph { 3 | flow: south; 4 | label: Graph of sub_105D40F; 5 | } 6 | node { align: left; } 7 | 8 | [ 0 ] { label: sub_105D40F:\nmov edi, esi\npush ebp\njz short loc_105D27B; rank: 0; x-vcg-vertical_order: 0; } 9 | 10 | -------------------------------------------------------------------------------- /t/txt/gdl/2_bottom_to_top.txt: -------------------------------------------------------------------------------- 1 | edge { arrowstyle: filled; } 2 | graph { flow: north; } 3 | node { align: left; } 4 | 5 | [ A ] --> [ B ] 6 | -------------------------------------------------------------------------------- /t/txt/gdl/2_left_to_right.txt: -------------------------------------------------------------------------------- 1 | edge { arrowstyle: filled; } 2 | graph { flow: east; } 3 | node { align: left; } 4 | 5 | [ A ] --> [ B ] 6 | -------------------------------------------------------------------------------- /t/txt/gdl/2_right_to_left.txt: -------------------------------------------------------------------------------- 1 | edge { arrowstyle: filled; } 2 | graph { flow: west; } 3 | node { align: left; } 4 | 5 | [ A ] --> [ B ] 6 | -------------------------------------------------------------------------------- /t/txt/gdl/2_top_to_bottom.txt: -------------------------------------------------------------------------------- 1 | edge { arrowstyle: filled; } 2 | graph { flow: south; } 3 | node { align: left; } 4 | 5 | [ A ] --> [ B ] 6 | -------------------------------------------------------------------------------- /tag-release.pl: -------------------------------------------------------------------------------- 1 | #!/usr/bin/perl 2 | 3 | use strict; 4 | use warnings; 5 | 6 | use IO::All; 7 | 8 | my ($version) = 9 | (map { m{\$VERSION *= *'([^']+)'} ? ($1) : () } 10 | io->file("./lib/Graph/Easy.pm")->getlines() 11 | ) 12 | ; 13 | 14 | if (!defined ($version)) 15 | { 16 | die "Version is undefined!"; 17 | } 18 | 19 | my @cmd = ( 20 | "svn", "copy", "-m", 21 | "Tagging Grapy-Easy as $version", 22 | "https://svn.berlios.de/svnroot/repos/web-cpan/Graph-Easy/trunk", 23 | "https://svn.berlios.de/svnroot/repos/web-cpan/Graph-Easy/tags/releases/$version", 24 | ); 25 | 26 | print join(" ", @cmd), "\n"; 27 | exec(@cmd); 28 | --------------------------------------------------------------------------------