There seem to be 4 bugs in the
getAdjacentEdgeIndicesArray()
method in the class ColtRootGraph.
2 cases are missing
include_undirected_edges && !incoming_edges &&
outgoing_edges
!include_undirected_edges && !incoming_edges &&
outgoing_edges
And 2 other cases have errors
See the attached ColtRootGraph.java file for fixes.
Logged In: NO
Attaching the source file did not work...
Here is the fixed section of code:
} else if ( include_undirected_edges && incoming_edges &&
!outgoing_edges ) {
// BUGFIX CMAK 7/23/04
int[] incoming_undirected = getEdgeIndicesArray(
i, node_index, true );
//int[] incoming_undirected = getEdgeIndicesArray(
node_index, i, true );
adjacent_edges.addAllOf( new IntArrayList(
incoming_undirected ) );
// BUGFIX CMAK 7/23/04. added else if block
} else if ( include_undirected_edges &&
!incoming_edges && outgoing_edges ) {
int[] incoming_undirected = getEdgeIndicesArray(
node_index, i, true );
adjacent_edges.addAllOf( new IntArrayList(
incoming_undirected ) );
} else if ( include_undirected_edges &&
!incoming_edges && !outgoing_edges ) {
int[] incoming_undirected = getEdgeIndicesArray(
node_index, i, true );
for ( int j = 0; j < incoming_undirected.length ;
++j ) {
if ( !isEdgeDirected( incoming_undirected[j] ) ) {
adjacent_edges.add( incoming_undirected[j] );
}
}
} else if ( !include_undirected_edges &&
incoming_edges && outgoing_edges ) {
int[] incoming_undirected = getEdgeIndicesArray(
node_index, i, false );
int[] outgoing = getEdgeIndicesArray( i, node_index,
false );
adjacent_edges.addAllOf( new IntArrayList(
incoming_undirected ) );
adjacent_edges.addAllOf( new IntArrayList( outgoing ) );
} else if ( !include_undirected_edges &&
incoming_edges && !outgoing_edges ) {
// BUGFIX CMAK 7/23/04
int[] incoming_undirected = getEdgeIndicesArray(
i, node_index, false );
//int[] incoming_undirected = getEdgeIndicesArray(
node_index, i, false );
adjacent_edges.addAllOf( new IntArrayList(
incoming_undirected ) );
// BUGFIX CMAK 7/23/04. added else if block
} else if ( !include_undirected_edges &&
!incoming_edges && outgoing_edges ) {
int[] incoming_undirected = getEdgeIndicesArray(
node_index, i, false );
adjacent_edges.addAllOf( new IntArrayList(
incoming_undirected ) );
}