digraph test {
clusterrank=local
subgraph cluster_X
{
label="first"
subgraph cluster_I
{
label="[0..1]"
"I0"
node [shape=circle]
"I_0" [label="0"]
}
subgraph cluster_O
{
label="[1..4]"
"O0" -> "O4"
"O1" -> "O0"
"O2" -> "O3"
"O3" -> "O0"
"O4" -> "O5"
node [shape=circle]
"O_0" [label="0"]
"O_1" [label="1"]
"O_2" [label="2"]
"O_0" -> "O_1" -> "O_2"
}
subgraph cluster_Y
{
label="[1..2]"
"Y0" -> { "Y1"; "Y2";}
node [shape=circle]
"Y_0" [label="0"]
"Y_1" [label="1"]
"Y_0" -> "Y_1"
}
node [shape=circle]
"K_0" [label="0"]
"K_1" [label="1"]
"K_2" [label="2"]
"K_3" [label="3"]
"K_0" -> "K_1" -> "K_2" -> "K_3"
/*case 1: does not work correctly * /
{rank=same; "K_2";"I_0";}
{rank=same; "K_2";"O_0";}
{rank=same; "K_2";"Y_0";}
/ **/
/*case 2: works correcly on if the order is from last cluster to the first */
{rank=same; "O_0";"I_0";}
{rank=same; "Y_0";"O_0";}
{rank=same; "K_2";"Y_0";}
/**/
/*case 3: does not correcly because the order of ranks is different* /
{rank=same; "Y_0";"O_0";}
{rank=same; "O_0";"I_0";}
{rank=same; "K_2";"Y_0";}
/ **/
}
}