

#include "Case.h"
#include <iostream>


std::ostream& operator<<(std::ostream& out, const Case& c)
{
	out << c.val;
	return out;
}

void print(std::ostream& out, const Case& c)
{
	out << '{' <<  c.val;
	if (c.possible.empty())
	{
		out << '}';
		return;
	}
	out << '|';
	std::list<int>::const_iterator iter=c.possible.begin();
	out << *iter; ++iter;
	for (; iter!=c.possible.end();++iter)
		out << ',' << *iter;
	if (not c.proba.empty())
	{
		out << '|';
		std::priority_queue<Token> pq = c.proba;
		register unsigned n = pq.size();
		for(register unsigned i=0; i<n; i++)  {
			out << pq.top().proba << ",";
			pq.pop();
		}
	}
	out << '}';
}

