#include <list>
#include <fstream>
#include <CGAL/IO/Arr_iostream.h>
#include "arr_linear.h"
int main() {
Arrangement arr;
std::list<X_monotone_curve> curves;
curves.push_back(Line(Point(0, 0), Point(2, 1)));
curves.push_back(Line(Point(0, 0), Point(2, -1)));
curves.push_back(Line(Point(-1, 0), Point(-1, 1)));
curves.push_back(Ray(Point(2, 3), Point(2, 4)));
curves.push_back(Segment(Point(0, 1), Point(0, 2)));
insert(arr, curves.begin(), curves.end());
std::cout << "Writing an arrangement of size:\n"
<< " V = " << arr.number_of_vertices()
<< " (plus " << arr.number_of_vertices_at_infinity()
<< " at infinity)"
<< ", E = " << arr.number_of_edges()
<< ", F = " << arr.number_of_faces()
<< " (" << arr.number_of_unbounded_faces() << " unbounded)\n\n";
std::ofstream out_file("arr_ex_io_unbounded.dat");
out_file << arr;
out_file.close();
Arrangement arr2;
std::ifstream in_file("arr_ex_io_unbounded.dat");
in_file >> arr2;
in_file.close();
std::cout << "Read an arrangement of size:\n"
<< " V = " << arr2.number_of_vertices()
<< " (plus " << arr2.number_of_vertices_at_infinity()
<< " at infinity)"
<< ", E = " << arr2.number_of_edges()
<< ", F = " << arr2.number_of_faces()
<< " (" << arr2.number_of_unbounded_faces() << " unbounded)\n\n";
return 0;
}