Loading isis/src/control/objs/ControlNet/ControlNet.cpp +28 −24 Original line number Diff line number Diff line Loading @@ -397,38 +397,42 @@ namespace Isis { * @returns A string representation of the ControlNet graph */ QString ControlNet::GraphToString() const { /*QList<QList<QString>> serialConnections = GetSerialConnections(); for (int i=0; i < serialConnections.size(); i++) { std::cout << "\n\n" << std::endl; for (int j=0; j< serialConnections[i].size(); j++) { std::cout << serialConnections[i][j] << std::endl; } }*/ /*QString graphString; typedef boost::graph_traits<Network>::vertex_iterator vertex_iter; std::pair<vertex_iter, vertex_iter> vp; for(vp = vertices(m_controlGraph); vp.first != vp.second; ++vp.first) { std::cout << m_controlGraph[*vp.first].serial << " : \n" << std::endl; QHash<ControlPoint*, ControlMeasure*> measures = m_controlGraph[*vp.first].measures; QList<ControlPoint*> keys = measures.keys(); for (int i=0; i < keys.size(); i++) { std::cout << " " << measures[keys[i]]->GetCubeSerialNumber() << " : " << keys[i]->GetId() << std::endl; } }*/ QString graphString; typedef boost::graph_traits<Network>::edge_iterator edge_iter; edge_iter ei, ei_end; for (tie(ei, ei_end) = edges(m_controlGraph); ei != ei_end; ++ei) { ImageVertex sourceImage = source(*ei, m_controlGraph); ImageVertex targetImage = target(*ei, m_controlGraph); if (sourceImage != targetImage) { std::cout << m_controlGraph[sourceImage].serial << " [" << m_controlGraph[sourceImage].measures.size() << "] " << "---------" << m_controlGraph[targetImage].serial << " [" << m_controlGraph[targetImage].measures.size() << "] strength: " << " [" << m_controlGraph[*ei].strength << "]" << std::endl; graphString.append(m_controlGraph[sourceImage].serial); graphString.append( " [" ); QList<ControlPoint*> sourcePoints = m_controlGraph[sourceImage].measures.keys(); for (int i=0; i < sourcePoints.size(); i++) { if (i>0) { graphString.append(", "); } graphString.append(sourcePoints[i]->GetId()); } // graphString.append(QString::number(m_controlGraph[sourceImage].measures.size())); graphString.append("] --------- "); graphString.append(m_controlGraph[targetImage].serial); graphString.append(" ["); QString graphString; QList<ControlPoint*> targetPoints = m_controlGraph[targetImage].measures.keys(); for (int i=0; i < targetPoints.size(); i++) { if (i>0) { graphString.append(", "); } graphString.append(targetPoints[i]->GetId()); } // graphString.append(QString::number(m_controlGraph[targetImage].measures.size())); graphString.append("] edge strength: ["); graphString.append(QString::number(m_controlGraph[*ei].strength)); graphString.append("]\n"); } } return graphString; } Loading isis/src/control/objs/ControlNet/unitTest.cpp +5 −76 Original line number Diff line number Diff line Loading @@ -30,8 +30,8 @@ using namespace Isis; * @author ????-??-?? Unknown * @internal * @history 2016-05-11 Jeannie Backer - Added tests for setTarget methods. * @history 2018-05-29 Kristin Berry - Commented out (to probably be removed) code related to * unused, removed methods. * @history 2018-05-29 Kristin Berry - Removed code related to unused, removed methods. Ref #5434. * Added tests for untested methods. */ bool lessThan(const ControlMeasure *m1, const ControlMeasure *m2) { return m1->GetResidualMagnitude() < m2->GetResidualMagnitude(); Loading Loading @@ -151,80 +151,9 @@ void testConnectivity() { std::cout << "Testing GetSerialConnections" << std::endl; net.GetSerialConnections(); // This region is to test the unused and now removed GetNodeConnections methods. It's tempoararily // left here commented out in case we want to test something similar after updating ControlNet to // use boost. //cout << "\nTesting GetNodeConnections()\n"; //QList< QList< ControlCubeGraphNode * > > islands = net.GetNodeConnections(); //if (islands[0].contains(m9->ControlSN())) islands.swap(0, 1); //cout << " " << "Island Count = " << islands.size() << endl; // This region all has to do with testing the (unused) removed MinimumSpanningTree // method. It's left in here commented-out for now in case we would like to test // island functionality here, using similar output, after updating ControlNet to use boost. //cout << "\nTesting MinimumSpanningTree()\n"; //QList< QSet< ControlMeasure * > > spanningTrees; //int nodeCount = 0; //for (int i = 0; i < islands.size(); i++) { // spanningTrees.append(net.MinimumSpanningTree(islands[i], lessThan)); // nodeCount += islands[i].size(); //} // //cout << " " << "Tree Count = " << spanningTrees.size() << endl; //cout << " " << "Graph Node Count = " << nodeCount << endl; // //QList< QMap< QString, ControlMeasure * > > includedMaps; //QList< QMap< QString, ControlMeasure * > > excludedMaps; //for (int i = 0; i < spanningTrees.size(); i++) { // includedMaps.append(QMap< QString, ControlMeasure * >()); // excludedMaps.append(QMap< QString, ControlMeasure * >()); //} // //int measureCount = 0; //for (int p = 0; p < net.GetNumPoints(); p++) { // ControlPoint *point = net.GetPoint(p); // for (int m = 0; m < point->GetNumMeasures(); m++) { // ControlMeasure *measure = point->GetMeasure(m); // measureCount++; // for (int i = 0; i < spanningTrees.size(); i++) { // if (islands[i].contains(measure->ControlSN())) { // if (spanningTrees[i].contains(measure)) // includedMaps[i].insert(measureNames[measure], measure); // else // excludedMaps[i].insert(measureNames[measure], measure); // } // } // } //} //cout << " " << "Measure Count = " << measureCount << endl; // //int includedMeasures = 0; //for (int i = 0; i < spanningTrees.size(); i++) { // QSet< ControlMeasure * > measures = spanningTrees[i]; // includedMeasures += measures.size(); //} // //if (islands.size() != spanningTrees.size()) { // cout << " " << "Island Count == " << islands.size() << " != " << // spanningTrees.size() << " == MST Count" << endl; //} //else { // cout << " " << "Island Count == " << islands.size() << // " == MST Count" << endl; // // for (int i = 0; i < spanningTrees.size(); i++) { // cout << "\n " << "Minimum Spanning Tree " << i << endl; // // cout << " " << "Nodes = " << islands[i].size() << endl; // cout << " " << "Included Measures = " << includedMaps[i].size() << endl; // printMeasures(includedMaps[i].values(), measureNames); // // cout << " " << "Excluded Measures = " << excludedMaps[i].size() << endl; // printMeasures(excludedMaps[i].values(), measureNames); // } //} cout << "\nTesting GetSerialConnections()\n"; QList< QList< QString > > islands = net.GetSerialConnections(); cout << " " << "Island Count = " << islands.size() << endl; } Loading Loading
isis/src/control/objs/ControlNet/ControlNet.cpp +28 −24 Original line number Diff line number Diff line Loading @@ -397,38 +397,42 @@ namespace Isis { * @returns A string representation of the ControlNet graph */ QString ControlNet::GraphToString() const { /*QList<QList<QString>> serialConnections = GetSerialConnections(); for (int i=0; i < serialConnections.size(); i++) { std::cout << "\n\n" << std::endl; for (int j=0; j< serialConnections[i].size(); j++) { std::cout << serialConnections[i][j] << std::endl; } }*/ /*QString graphString; typedef boost::graph_traits<Network>::vertex_iterator vertex_iter; std::pair<vertex_iter, vertex_iter> vp; for(vp = vertices(m_controlGraph); vp.first != vp.second; ++vp.first) { std::cout << m_controlGraph[*vp.first].serial << " : \n" << std::endl; QHash<ControlPoint*, ControlMeasure*> measures = m_controlGraph[*vp.first].measures; QList<ControlPoint*> keys = measures.keys(); for (int i=0; i < keys.size(); i++) { std::cout << " " << measures[keys[i]]->GetCubeSerialNumber() << " : " << keys[i]->GetId() << std::endl; } }*/ QString graphString; typedef boost::graph_traits<Network>::edge_iterator edge_iter; edge_iter ei, ei_end; for (tie(ei, ei_end) = edges(m_controlGraph); ei != ei_end; ++ei) { ImageVertex sourceImage = source(*ei, m_controlGraph); ImageVertex targetImage = target(*ei, m_controlGraph); if (sourceImage != targetImage) { std::cout << m_controlGraph[sourceImage].serial << " [" << m_controlGraph[sourceImage].measures.size() << "] " << "---------" << m_controlGraph[targetImage].serial << " [" << m_controlGraph[targetImage].measures.size() << "] strength: " << " [" << m_controlGraph[*ei].strength << "]" << std::endl; graphString.append(m_controlGraph[sourceImage].serial); graphString.append( " [" ); QList<ControlPoint*> sourcePoints = m_controlGraph[sourceImage].measures.keys(); for (int i=0; i < sourcePoints.size(); i++) { if (i>0) { graphString.append(", "); } graphString.append(sourcePoints[i]->GetId()); } // graphString.append(QString::number(m_controlGraph[sourceImage].measures.size())); graphString.append("] --------- "); graphString.append(m_controlGraph[targetImage].serial); graphString.append(" ["); QString graphString; QList<ControlPoint*> targetPoints = m_controlGraph[targetImage].measures.keys(); for (int i=0; i < targetPoints.size(); i++) { if (i>0) { graphString.append(", "); } graphString.append(targetPoints[i]->GetId()); } // graphString.append(QString::number(m_controlGraph[targetImage].measures.size())); graphString.append("] edge strength: ["); graphString.append(QString::number(m_controlGraph[*ei].strength)); graphString.append("]\n"); } } return graphString; } Loading
isis/src/control/objs/ControlNet/unitTest.cpp +5 −76 Original line number Diff line number Diff line Loading @@ -30,8 +30,8 @@ using namespace Isis; * @author ????-??-?? Unknown * @internal * @history 2016-05-11 Jeannie Backer - Added tests for setTarget methods. * @history 2018-05-29 Kristin Berry - Commented out (to probably be removed) code related to * unused, removed methods. * @history 2018-05-29 Kristin Berry - Removed code related to unused, removed methods. Ref #5434. * Added tests for untested methods. */ bool lessThan(const ControlMeasure *m1, const ControlMeasure *m2) { return m1->GetResidualMagnitude() < m2->GetResidualMagnitude(); Loading Loading @@ -151,80 +151,9 @@ void testConnectivity() { std::cout << "Testing GetSerialConnections" << std::endl; net.GetSerialConnections(); // This region is to test the unused and now removed GetNodeConnections methods. It's tempoararily // left here commented out in case we want to test something similar after updating ControlNet to // use boost. //cout << "\nTesting GetNodeConnections()\n"; //QList< QList< ControlCubeGraphNode * > > islands = net.GetNodeConnections(); //if (islands[0].contains(m9->ControlSN())) islands.swap(0, 1); //cout << " " << "Island Count = " << islands.size() << endl; // This region all has to do with testing the (unused) removed MinimumSpanningTree // method. It's left in here commented-out for now in case we would like to test // island functionality here, using similar output, after updating ControlNet to use boost. //cout << "\nTesting MinimumSpanningTree()\n"; //QList< QSet< ControlMeasure * > > spanningTrees; //int nodeCount = 0; //for (int i = 0; i < islands.size(); i++) { // spanningTrees.append(net.MinimumSpanningTree(islands[i], lessThan)); // nodeCount += islands[i].size(); //} // //cout << " " << "Tree Count = " << spanningTrees.size() << endl; //cout << " " << "Graph Node Count = " << nodeCount << endl; // //QList< QMap< QString, ControlMeasure * > > includedMaps; //QList< QMap< QString, ControlMeasure * > > excludedMaps; //for (int i = 0; i < spanningTrees.size(); i++) { // includedMaps.append(QMap< QString, ControlMeasure * >()); // excludedMaps.append(QMap< QString, ControlMeasure * >()); //} // //int measureCount = 0; //for (int p = 0; p < net.GetNumPoints(); p++) { // ControlPoint *point = net.GetPoint(p); // for (int m = 0; m < point->GetNumMeasures(); m++) { // ControlMeasure *measure = point->GetMeasure(m); // measureCount++; // for (int i = 0; i < spanningTrees.size(); i++) { // if (islands[i].contains(measure->ControlSN())) { // if (spanningTrees[i].contains(measure)) // includedMaps[i].insert(measureNames[measure], measure); // else // excludedMaps[i].insert(measureNames[measure], measure); // } // } // } //} //cout << " " << "Measure Count = " << measureCount << endl; // //int includedMeasures = 0; //for (int i = 0; i < spanningTrees.size(); i++) { // QSet< ControlMeasure * > measures = spanningTrees[i]; // includedMeasures += measures.size(); //} // //if (islands.size() != spanningTrees.size()) { // cout << " " << "Island Count == " << islands.size() << " != " << // spanningTrees.size() << " == MST Count" << endl; //} //else { // cout << " " << "Island Count == " << islands.size() << // " == MST Count" << endl; // // for (int i = 0; i < spanningTrees.size(); i++) { // cout << "\n " << "Minimum Spanning Tree " << i << endl; // // cout << " " << "Nodes = " << islands[i].size() << endl; // cout << " " << "Included Measures = " << includedMaps[i].size() << endl; // printMeasures(includedMaps[i].values(), measureNames); // // cout << " " << "Excluded Measures = " << excludedMaps[i].size() << endl; // printMeasures(excludedMaps[i].values(), measureNames); // } //} cout << "\nTesting GetSerialConnections()\n"; QList< QList< QString > > islands = net.GetSerialConnections(); cout << " " << "Island Count = " << islands.size() << endl; } Loading