#include "CipresCommlib/CipresHelper.h" using std::endl; using std::ostream; ostream & operator << (ostream &outs, const CipresIDL_api1::DataMatrix &matrix) { outs << "DataMatrix symbols = " << matrix.m_symbols << ", m_numCharacters = " << matrix.m_numCharacters << ", datatype = " << matrix.m_datatype << std::endl; outs << "Raw matrix : " << endl; outs << matrix.m_matrix; outs << "Lookup table: " << endl; outs << matrix.m_charStateLookup << endl; return outs; } ostream & operator << (ostream &outs, const CipresIDL_api1::CharStateLookup &matrix) { for (unsigned int i = 0; i < matrix.length(); i++) { outs << "Row " << i << ": " << matrix[i] << std::endl; } return outs; } ostream & operator << (ostream &outs, const CipresIDL_api1::StateSet &stateSet) { for (unsigned int i = 0; i < stateSet.length(); i++) { outs << std::hex << (unsigned int)stateSet[i] << " "; } return outs; } ostream & operator << (ostream &outs, const CipresIDL_api1::Characters &characters) { for (unsigned int i = 0; i < characters.length(); i++) { outs << std::hex << (unsigned int)characters[i] << " "; } return outs; } ostream & operator << (ostream &outs, const CipresIDL_api1::RawMatrix &matrix) { for (unsigned int i = 0; i < matrix.length(); i++) { outs << "Row " << i << ": " << matrix[i] << std::endl; } return outs; } ostream & operator << (ostream &outs, const CipresIDL_api1::TreeScore &treeScore) { switch(treeScore._d()) { case CipresIDL_api1::INT_SCORE_TYPE: outs << "Score = " << treeScore.intScore(); break; case CipresIDL_api1::DOUBLE_SCORE_TYPE: outs << "Score = " << treeScore.doubleScore(); break; default: outs << "Score = " << "NO SCORE"; break; } return outs; } ostream & operator << (ostream &outs, const CipresIDL_api1::Tree &tree) { outs << "Score = " << tree.m_score << " Tree: " << tree.m_newick; return outs; } // Output a sequence of sequences of strings, one sequence per line. ostream & operator << (ostream &outs, const CipresIDL_api1::TaxonSeqSeq &taxonSubsets) { for (unsigned int i = 0; i < taxonSubsets.length(); i++) { outs << taxonSubsets[i] << std::endl; } return outs; } // Output a sequence of strings ostream & operator << (ostream &outs, const CipresIDL_api1::TaxonSeq &taxonSeq) { for (unsigned int i = 0; i < taxonSeq.length(); i++) { outs << taxonSeq[i] << "\t"; } return outs; }