#include <boost/spirit/include/support_istream_iterator.hpp>
#include <boost/core/lightweight_test.hpp>
#include <sstream>
int main()
{
std::stringstream ss("HELO\n");
boost::spirit::istream_iterator it(ss);
boost::spirit::istream_iterator it2(it); BOOST_TEST( it2 == it ); BOOST_TEST( *it2 == 'H' );
boost::spirit::istream_iterator end; BOOST_TEST( it != end );
it = end; BOOST_TEST( it == end );
std::swap(it, it2); BOOST_TEST( it2 == end );
BOOST_TEST( *it == 'H' );
++it;
BOOST_TEST( *it == 'E' );
BOOST_TEST( *it++ == 'E' );
boost::spirit::istream_iterator it3 = it;
BOOST_TEST( *it == 'L' );
BOOST_TEST( *it3 == 'L' );
++it;
BOOST_TEST( *it == 'O' );
BOOST_TEST( *it3 == 'L' );
it3 = it;
BOOST_TEST( ++it3 == ++it );
boost::spirit::istream_iterator const itc = it;
BOOST_TEST( itc == it );
BOOST_TEST( *itc == *it );
++it;
BOOST_TEST( itc != it );
return boost::report_errors();
}