<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Test Program</title>
<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../index.html" title="Boost.Quaternions">
<link rel="up" href="../quaternions.html" title="Quaternions">
<link rel="prev" href="trans.html" title="Quaternion Transcendentals">
<link rel="next" href="exp.html" title="The Quaternionic Exponential">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="trans.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../quaternions.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="exp.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_quaternions.quaternions.test_program"></a><a class="link" href="test_program.html" title="Test Program">Test Program</a>
</h3></div></div></div>
<p>
        The <a href="../../../../../quaternion/quaternion_test.cpp" target="_top">quaternion_test.cpp</a>
        test program tests quaternions specializations for float, double and long
        double (<a href="../../../../../quaternion/output.txt" target="_top">sample output</a>,
        with message output enabled).
      </p>
<p>
        If you define the symbol boost_quaternions_TEST_VERBOSE, you will get additional
        output (<a href="../../../../../quaternion/output_more.txt" target="_top">verbose output</a>);
        this will only be helpfull if you enable message output at the same time,
        of course (by uncommenting the relevant line in the test or by adding <code class="literal">--log_level=messages</code>
        to your command line,...). In that case, and if you are running interactively,
        you may in addition define the symbol BOOST_INTERACTIVE_TEST_INPUT_ITERATOR
        to interactively test the input operator with input of your choice from the
        standard input (instead of hard-coding it in the test).
      </p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001 -2003 Hubert Holin<p>
        Distributed under the Boost Software License, Version 1.0. (See accompanying
        file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
      </p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="trans.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../quaternions.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="exp.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>
