#include "interval.hpp"

int main()
{
	std::cout.precision(17);

	// constructors
	interval x;
	interval y(1);
	interval z(2, 3);

	x = 1;
	y = 10;
	std::cout << x / y << "\n";

	x = interval(1, 2);
	y = interval(3, 4);

	// basic four operations
	std::cout << x + y << "\n";
	std::cout << x - y << "\n";
	std::cout << x * y << "\n";
	std::cout << x / y << "\n";

	// square root
	std::cout << sqrt(x) << "\n";

	// negate
	std::cout << -x << "\n";

	// operation with constant
	std::cout << x + 1 << "\n";

	// compound assignment operator
	z += x;
	z += 1;
	std::cout << z << "\n";

	z = interval(3, 4);
	// access to endpoints
	std::cout << z.lower() << "\n";
	std::cout << z.upper() << "\n";
	z.lower() = 3.5;
	std::cout << z << "\n";
}
