blob: c16e6330663156e0ec1c78a89247cb252d3b1f2c [file] [log] [blame]
/*=============================================================================
Copyright (c) 2001-2010 Joel de Guzman
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
=============================================================================*/
#include <boost/detail/lightweight_test.hpp>
#include <boost/config/warning_disable.hpp>
#include <input/parse_sexpr_impl.hpp>
#include <scheme/compiler.hpp>
#include <utree/io.hpp>
#include <iostream>
#include <fstream>
///////////////////////////////////////////////////////////////////////////////
// Main program
///////////////////////////////////////////////////////////////////////////////
int main()
{
using scheme::utree;
{ // testing the c++ side
using scheme::if_;
using scheme::plus;
using scheme::times;
using scheme::minus;
using scheme::lte;
using scheme::_1;
using scheme::_2;
using scheme::lambda;
BOOST_TEST(plus(11, 22, 33) () == utree(66));
BOOST_TEST(plus(11, 22, _1) (33) == utree(66));
BOOST_TEST(plus(11, _1, _2) (22, 33) == utree(66));
BOOST_TEST(plus(11, plus(_1, _2)) (22, 33) == utree(66));
lambda factorial;
factorial = if_(lte(_1, 0), 1, times(_1, factorial(minus(_1, 1))));
BOOST_TEST(factorial(_1) (10) == utree(3628800));
}
return boost::report_errors();
}