diff --git a/src/platform/headless.cpp b/src/platform/headless.cpp index 036e314..9580e0f 100644 --- a/src/platform/headless.cpp +++ b/src/platform/headless.cpp @@ -233,8 +233,9 @@ void OpenWebsite(const char *url) { // Resources //----------------------------------------------------------------------------- +std::vector fontFiles; std::vector GetFontFiles() { - return {}; + return fontFiles; } std::string resourceDir; diff --git a/src/render/rendercairo.cpp b/src/render/rendercairo.cpp index 3f7cb99..d5e7753 100644 --- a/src/render/rendercairo.cpp +++ b/src/render/rendercairo.cpp @@ -19,6 +19,10 @@ void CairoRenderer::OutputStart() { cairo_translate(context, camera.width / 2.0, camera.height / 2.0); + // Avoid pixel boundaries; when not using antialiasing, we would otherwise + // get numerically unstable output. + cairo_translate(context, 0.1, 0.1); + cairo_set_line_join(context, CAIRO_LINE_JOIN_ROUND); cairo_set_line_cap(context, CAIRO_LINE_CAP_ROUND); } diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index c0ed0d2..e79d9bb 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -7,7 +7,48 @@ include_directories( set(testsuite_SOURCES harness.cpp - request/line_segment/test.cpp) + constraint/points_coincident/test.cpp + constraint/pt_pt_distance/test.cpp + constraint/pt_plane_distance/test.cpp + constraint/pt_line_distance/test.cpp + constraint/pt_face_distance/test.cpp + constraint/proj_pt_distance/test.cpp + constraint/pt_in_plane/test.cpp + constraint/pt_on_line/test.cpp + constraint/pt_on_face/test.cpp + constraint/equal_length_lines/test.cpp + constraint/length_ratio/test.cpp + constraint/eq_len_pt_line_d/test.cpp + constraint/eq_pt_ln_distances/test.cpp + constraint/equal_angle/test.cpp + constraint/equal_line_arc_len/test.cpp + constraint/length_difference/test.cpp + constraint/symmetric/test.cpp + constraint/symmetric_horiz/test.cpp + constraint/symmetric_vert/test.cpp + constraint/symmetric_line/test.cpp + constraint/at_midpoint/test.cpp + constraint/horizontal/test.cpp + constraint/vertical/test.cpp + constraint/diameter/test.cpp + constraint/pt_on_circle/test.cpp + constraint/same_orientation/test.cpp + constraint/angle/test.cpp + constraint/parallel/test.cpp + constraint/perpendicular/test.cpp + constraint/arc_line_tangent/test.cpp + constraint/cubic_line_tangent/test.cpp + constraint/curve_curve_tangent/test.cpp + constraint/equal_radius/test.cpp + constraint/where_dragged/test.cpp + constraint/comment/test.cpp + request/arc_of_circle/test.cpp + request/circle/test.cpp + request/cubic/test.cpp + request/cubic_periodic/test.cpp + request/datum_point/test.cpp + request/line_segment/test.cpp + request/ttf_text/test.cpp) add_executable(solvespace_testsuite ${testsuite_SOURCES}) diff --git a/test/Gentium-R.ttf b/test/Gentium-R.ttf new file mode 100644 index 0000000..3b44ad1 Binary files /dev/null and b/test/Gentium-R.ttf differ diff --git a/test/constraint/angle/normal.png b/test/constraint/angle/normal.png new file mode 100644 index 0000000..ab0b176 Binary files /dev/null and b/test/constraint/angle/normal.png differ diff --git a/test/constraint/angle/normal.slvs b/test/constraint/angle/normal.slvs new file mode 100644 index 0000000..4f1dfd0 Binary files /dev/null and b/test/constraint/angle/normal.slvs differ diff --git a/test/constraint/angle/normal_v20.slvs b/test/constraint/angle/normal_v20.slvs new file mode 100644 index 0000000..c080183 Binary files /dev/null and b/test/constraint/angle/normal_v20.slvs differ diff --git a/test/constraint/angle/test.cpp b/test/constraint/angle/test.cpp new file mode 100644 index 0000000..c83a901 --- /dev/null +++ b/test/constraint/angle/test.cpp @@ -0,0 +1,13 @@ +#include "harness.h" + +TEST_CASE(roundtrip) { + CHECK_LOAD("normal.slvs"); + CHECK_RENDER("normal.png"); + CHECK_SAVE("normal.slvs"); +} + +TEST_CASE(migrate_from_v20) { + CHECK_LOAD("normal_v20.slvs"); + CHECK_RENDER("normal.png"); + CHECK_SAVE("normal.slvs"); +} diff --git a/test/constraint/arc_line_tangent/normal.png b/test/constraint/arc_line_tangent/normal.png new file mode 100644 index 0000000..0d97326 Binary files /dev/null and b/test/constraint/arc_line_tangent/normal.png differ diff --git a/test/constraint/arc_line_tangent/normal.slvs b/test/constraint/arc_line_tangent/normal.slvs new file mode 100644 index 0000000..f30e98d Binary files /dev/null and b/test/constraint/arc_line_tangent/normal.slvs differ diff --git a/test/constraint/arc_line_tangent/normal_v20.slvs b/test/constraint/arc_line_tangent/normal_v20.slvs new file mode 100644 index 0000000..88019e2 Binary files /dev/null and b/test/constraint/arc_line_tangent/normal_v20.slvs differ diff --git a/test/constraint/arc_line_tangent/test.cpp b/test/constraint/arc_line_tangent/test.cpp new file mode 100644 index 0000000..c83a901 --- /dev/null +++ b/test/constraint/arc_line_tangent/test.cpp @@ -0,0 +1,13 @@ +#include "harness.h" + +TEST_CASE(roundtrip) { + CHECK_LOAD("normal.slvs"); + CHECK_RENDER("normal.png"); + CHECK_SAVE("normal.slvs"); +} + +TEST_CASE(migrate_from_v20) { + CHECK_LOAD("normal_v20.slvs"); + CHECK_RENDER("normal.png"); + CHECK_SAVE("normal.slvs"); +} diff --git a/test/constraint/at_midpoint/normal.png b/test/constraint/at_midpoint/normal.png new file mode 100644 index 0000000..fe28308 Binary files /dev/null and b/test/constraint/at_midpoint/normal.png differ diff --git a/test/constraint/at_midpoint/normal.slvs b/test/constraint/at_midpoint/normal.slvs new file mode 100644 index 0000000..07761c1 Binary files /dev/null and b/test/constraint/at_midpoint/normal.slvs differ diff --git a/test/constraint/at_midpoint/normal_v20.slvs b/test/constraint/at_midpoint/normal_v20.slvs new file mode 100644 index 0000000..76d63eb Binary files /dev/null and b/test/constraint/at_midpoint/normal_v20.slvs differ diff --git a/test/constraint/at_midpoint/test.cpp b/test/constraint/at_midpoint/test.cpp new file mode 100644 index 0000000..c83a901 --- /dev/null +++ b/test/constraint/at_midpoint/test.cpp @@ -0,0 +1,13 @@ +#include "harness.h" + +TEST_CASE(roundtrip) { + CHECK_LOAD("normal.slvs"); + CHECK_RENDER("normal.png"); + CHECK_SAVE("normal.slvs"); +} + +TEST_CASE(migrate_from_v20) { + CHECK_LOAD("normal_v20.slvs"); + CHECK_RENDER("normal.png"); + CHECK_SAVE("normal.slvs"); +} diff --git a/test/constraint/comment/normal.png b/test/constraint/comment/normal.png new file mode 100644 index 0000000..5b175d7 Binary files /dev/null and b/test/constraint/comment/normal.png differ diff --git a/test/constraint/comment/normal.slvs b/test/constraint/comment/normal.slvs new file mode 100644 index 0000000..5082ebf Binary files /dev/null and b/test/constraint/comment/normal.slvs differ diff --git a/test/constraint/comment/normal_v20.slvs b/test/constraint/comment/normal_v20.slvs new file mode 100644 index 0000000..101e898 Binary files /dev/null and b/test/constraint/comment/normal_v20.slvs differ diff --git a/test/constraint/comment/test.cpp b/test/constraint/comment/test.cpp new file mode 100644 index 0000000..c83a901 --- /dev/null +++ b/test/constraint/comment/test.cpp @@ -0,0 +1,13 @@ +#include "harness.h" + +TEST_CASE(roundtrip) { + CHECK_LOAD("normal.slvs"); + CHECK_RENDER("normal.png"); + CHECK_SAVE("normal.slvs"); +} + +TEST_CASE(migrate_from_v20) { + CHECK_LOAD("normal_v20.slvs"); + CHECK_RENDER("normal.png"); + CHECK_SAVE("normal.slvs"); +} diff --git a/test/constraint/cubic_line_tangent/normal.png b/test/constraint/cubic_line_tangent/normal.png new file mode 100644 index 0000000..df0d134 Binary files /dev/null and b/test/constraint/cubic_line_tangent/normal.png differ diff --git a/test/constraint/cubic_line_tangent/normal.slvs b/test/constraint/cubic_line_tangent/normal.slvs new file mode 100644 index 0000000..6487407 Binary files /dev/null and b/test/constraint/cubic_line_tangent/normal.slvs differ diff --git a/test/constraint/cubic_line_tangent/normal_v20.slvs b/test/constraint/cubic_line_tangent/normal_v20.slvs new file mode 100644 index 0000000..1aa1458 Binary files /dev/null and b/test/constraint/cubic_line_tangent/normal_v20.slvs differ diff --git a/test/constraint/cubic_line_tangent/test.cpp b/test/constraint/cubic_line_tangent/test.cpp new file mode 100644 index 0000000..c83a901 --- /dev/null +++ b/test/constraint/cubic_line_tangent/test.cpp @@ -0,0 +1,13 @@ +#include "harness.h" + +TEST_CASE(roundtrip) { + CHECK_LOAD("normal.slvs"); + CHECK_RENDER("normal.png"); + CHECK_SAVE("normal.slvs"); +} + +TEST_CASE(migrate_from_v20) { + CHECK_LOAD("normal_v20.slvs"); + CHECK_RENDER("normal.png"); + CHECK_SAVE("normal.slvs"); +} diff --git a/test/constraint/curve_curve_tangent/normal.png b/test/constraint/curve_curve_tangent/normal.png new file mode 100644 index 0000000..d458890 Binary files /dev/null and b/test/constraint/curve_curve_tangent/normal.png differ diff --git a/test/constraint/curve_curve_tangent/normal.slvs b/test/constraint/curve_curve_tangent/normal.slvs new file mode 100644 index 0000000..995d11e Binary files /dev/null and b/test/constraint/curve_curve_tangent/normal.slvs differ diff --git a/test/constraint/curve_curve_tangent/normal_v20.slvs b/test/constraint/curve_curve_tangent/normal_v20.slvs new file mode 100644 index 0000000..8d4cefe Binary files /dev/null and b/test/constraint/curve_curve_tangent/normal_v20.slvs differ diff --git a/test/constraint/curve_curve_tangent/test.cpp b/test/constraint/curve_curve_tangent/test.cpp new file mode 100644 index 0000000..c83a901 --- /dev/null +++ b/test/constraint/curve_curve_tangent/test.cpp @@ -0,0 +1,13 @@ +#include "harness.h" + +TEST_CASE(roundtrip) { + CHECK_LOAD("normal.slvs"); + CHECK_RENDER("normal.png"); + CHECK_SAVE("normal.slvs"); +} + +TEST_CASE(migrate_from_v20) { + CHECK_LOAD("normal_v20.slvs"); + CHECK_RENDER("normal.png"); + CHECK_SAVE("normal.slvs"); +} diff --git a/test/constraint/diameter/normal.png b/test/constraint/diameter/normal.png new file mode 100644 index 0000000..ab384f1 Binary files /dev/null and b/test/constraint/diameter/normal.png differ diff --git a/test/constraint/diameter/normal.slvs b/test/constraint/diameter/normal.slvs new file mode 100644 index 0000000..81a24e2 Binary files /dev/null and b/test/constraint/diameter/normal.slvs differ diff --git a/test/constraint/diameter/normal_v20.slvs b/test/constraint/diameter/normal_v20.slvs new file mode 100644 index 0000000..7427519 Binary files /dev/null and b/test/constraint/diameter/normal_v20.slvs differ diff --git a/test/constraint/diameter/test.cpp b/test/constraint/diameter/test.cpp new file mode 100644 index 0000000..c83a901 --- /dev/null +++ b/test/constraint/diameter/test.cpp @@ -0,0 +1,13 @@ +#include "harness.h" + +TEST_CASE(roundtrip) { + CHECK_LOAD("normal.slvs"); + CHECK_RENDER("normal.png"); + CHECK_SAVE("normal.slvs"); +} + +TEST_CASE(migrate_from_v20) { + CHECK_LOAD("normal_v20.slvs"); + CHECK_RENDER("normal.png"); + CHECK_SAVE("normal.slvs"); +} diff --git a/test/constraint/eq_len_pt_line_d/normal.png b/test/constraint/eq_len_pt_line_d/normal.png new file mode 100644 index 0000000..709b9e3 Binary files /dev/null and b/test/constraint/eq_len_pt_line_d/normal.png differ diff --git a/test/constraint/eq_len_pt_line_d/normal.slvs b/test/constraint/eq_len_pt_line_d/normal.slvs new file mode 100644 index 0000000..78b22b0 Binary files /dev/null and b/test/constraint/eq_len_pt_line_d/normal.slvs differ diff --git a/test/constraint/eq_len_pt_line_d/normal_v20.slvs b/test/constraint/eq_len_pt_line_d/normal_v20.slvs new file mode 100644 index 0000000..6ce37fd Binary files /dev/null and b/test/constraint/eq_len_pt_line_d/normal_v20.slvs differ diff --git a/test/constraint/eq_len_pt_line_d/test.cpp b/test/constraint/eq_len_pt_line_d/test.cpp new file mode 100644 index 0000000..c83a901 --- /dev/null +++ b/test/constraint/eq_len_pt_line_d/test.cpp @@ -0,0 +1,13 @@ +#include "harness.h" + +TEST_CASE(roundtrip) { + CHECK_LOAD("normal.slvs"); + CHECK_RENDER("normal.png"); + CHECK_SAVE("normal.slvs"); +} + +TEST_CASE(migrate_from_v20) { + CHECK_LOAD("normal_v20.slvs"); + CHECK_RENDER("normal.png"); + CHECK_SAVE("normal.slvs"); +} diff --git a/test/constraint/eq_pt_ln_distances/normal.png b/test/constraint/eq_pt_ln_distances/normal.png new file mode 100644 index 0000000..589cced Binary files /dev/null and b/test/constraint/eq_pt_ln_distances/normal.png differ diff --git a/test/constraint/eq_pt_ln_distances/normal.slvs b/test/constraint/eq_pt_ln_distances/normal.slvs new file mode 100644 index 0000000..1e4968b Binary files /dev/null and b/test/constraint/eq_pt_ln_distances/normal.slvs differ diff --git a/test/constraint/eq_pt_ln_distances/normal_v20.slvs b/test/constraint/eq_pt_ln_distances/normal_v20.slvs new file mode 100644 index 0000000..2d878b9 Binary files /dev/null and b/test/constraint/eq_pt_ln_distances/normal_v20.slvs differ diff --git a/test/constraint/eq_pt_ln_distances/test.cpp b/test/constraint/eq_pt_ln_distances/test.cpp new file mode 100644 index 0000000..c83a901 --- /dev/null +++ b/test/constraint/eq_pt_ln_distances/test.cpp @@ -0,0 +1,13 @@ +#include "harness.h" + +TEST_CASE(roundtrip) { + CHECK_LOAD("normal.slvs"); + CHECK_RENDER("normal.png"); + CHECK_SAVE("normal.slvs"); +} + +TEST_CASE(migrate_from_v20) { + CHECK_LOAD("normal_v20.slvs"); + CHECK_RENDER("normal.png"); + CHECK_SAVE("normal.slvs"); +} diff --git a/test/constraint/equal_angle/normal.png b/test/constraint/equal_angle/normal.png new file mode 100644 index 0000000..09b5b4e Binary files /dev/null and b/test/constraint/equal_angle/normal.png differ diff --git a/test/constraint/equal_angle/normal.slvs b/test/constraint/equal_angle/normal.slvs new file mode 100644 index 0000000..6fb46d0 Binary files /dev/null and b/test/constraint/equal_angle/normal.slvs differ diff --git a/test/constraint/equal_angle/normal_v20.slvs b/test/constraint/equal_angle/normal_v20.slvs new file mode 100644 index 0000000..25b9634 Binary files /dev/null and b/test/constraint/equal_angle/normal_v20.slvs differ diff --git a/test/constraint/equal_angle/test.cpp b/test/constraint/equal_angle/test.cpp new file mode 100644 index 0000000..c83a901 --- /dev/null +++ b/test/constraint/equal_angle/test.cpp @@ -0,0 +1,13 @@ +#include "harness.h" + +TEST_CASE(roundtrip) { + CHECK_LOAD("normal.slvs"); + CHECK_RENDER("normal.png"); + CHECK_SAVE("normal.slvs"); +} + +TEST_CASE(migrate_from_v20) { + CHECK_LOAD("normal_v20.slvs"); + CHECK_RENDER("normal.png"); + CHECK_SAVE("normal.slvs"); +} diff --git a/test/constraint/equal_length_lines/normal.png b/test/constraint/equal_length_lines/normal.png new file mode 100644 index 0000000..50646cc Binary files /dev/null and b/test/constraint/equal_length_lines/normal.png differ diff --git a/test/constraint/equal_length_lines/normal.slvs b/test/constraint/equal_length_lines/normal.slvs new file mode 100644 index 0000000..a84e4f1 Binary files /dev/null and b/test/constraint/equal_length_lines/normal.slvs differ diff --git a/test/constraint/equal_length_lines/normal_v20.slvs b/test/constraint/equal_length_lines/normal_v20.slvs new file mode 100644 index 0000000..0711882 Binary files /dev/null and b/test/constraint/equal_length_lines/normal_v20.slvs differ diff --git a/test/constraint/equal_length_lines/test.cpp b/test/constraint/equal_length_lines/test.cpp new file mode 100644 index 0000000..c83a901 --- /dev/null +++ b/test/constraint/equal_length_lines/test.cpp @@ -0,0 +1,13 @@ +#include "harness.h" + +TEST_CASE(roundtrip) { + CHECK_LOAD("normal.slvs"); + CHECK_RENDER("normal.png"); + CHECK_SAVE("normal.slvs"); +} + +TEST_CASE(migrate_from_v20) { + CHECK_LOAD("normal_v20.slvs"); + CHECK_RENDER("normal.png"); + CHECK_SAVE("normal.slvs"); +} diff --git a/test/constraint/equal_line_arc_len/normal.png b/test/constraint/equal_line_arc_len/normal.png new file mode 100644 index 0000000..323d811 Binary files /dev/null and b/test/constraint/equal_line_arc_len/normal.png differ diff --git a/test/constraint/equal_line_arc_len/normal.slvs b/test/constraint/equal_line_arc_len/normal.slvs new file mode 100644 index 0000000..733864b Binary files /dev/null and b/test/constraint/equal_line_arc_len/normal.slvs differ diff --git a/test/constraint/equal_line_arc_len/normal_v20.slvs b/test/constraint/equal_line_arc_len/normal_v20.slvs new file mode 100644 index 0000000..9f4b27b Binary files /dev/null and b/test/constraint/equal_line_arc_len/normal_v20.slvs differ diff --git a/test/constraint/equal_line_arc_len/test.cpp b/test/constraint/equal_line_arc_len/test.cpp new file mode 100644 index 0000000..c83a901 --- /dev/null +++ b/test/constraint/equal_line_arc_len/test.cpp @@ -0,0 +1,13 @@ +#include "harness.h" + +TEST_CASE(roundtrip) { + CHECK_LOAD("normal.slvs"); + CHECK_RENDER("normal.png"); + CHECK_SAVE("normal.slvs"); +} + +TEST_CASE(migrate_from_v20) { + CHECK_LOAD("normal_v20.slvs"); + CHECK_RENDER("normal.png"); + CHECK_SAVE("normal.slvs"); +} diff --git a/test/constraint/equal_radius/normal.png b/test/constraint/equal_radius/normal.png new file mode 100644 index 0000000..e796226 Binary files /dev/null and b/test/constraint/equal_radius/normal.png differ diff --git a/test/constraint/equal_radius/normal.slvs b/test/constraint/equal_radius/normal.slvs new file mode 100644 index 0000000..57b6d9b Binary files /dev/null and b/test/constraint/equal_radius/normal.slvs differ diff --git a/test/constraint/equal_radius/normal_v20.slvs b/test/constraint/equal_radius/normal_v20.slvs new file mode 100644 index 0000000..cd891bf Binary files /dev/null and b/test/constraint/equal_radius/normal_v20.slvs differ diff --git a/test/constraint/equal_radius/test.cpp b/test/constraint/equal_radius/test.cpp new file mode 100644 index 0000000..c83a901 --- /dev/null +++ b/test/constraint/equal_radius/test.cpp @@ -0,0 +1,13 @@ +#include "harness.h" + +TEST_CASE(roundtrip) { + CHECK_LOAD("normal.slvs"); + CHECK_RENDER("normal.png"); + CHECK_SAVE("normal.slvs"); +} + +TEST_CASE(migrate_from_v20) { + CHECK_LOAD("normal_v20.slvs"); + CHECK_RENDER("normal.png"); + CHECK_SAVE("normal.slvs"); +} diff --git a/test/constraint/horizontal/line.png b/test/constraint/horizontal/line.png new file mode 100644 index 0000000..3a5e46e Binary files /dev/null and b/test/constraint/horizontal/line.png differ diff --git a/test/constraint/horizontal/line.slvs b/test/constraint/horizontal/line.slvs new file mode 100644 index 0000000..8b2dd43 Binary files /dev/null and b/test/constraint/horizontal/line.slvs differ diff --git a/test/constraint/horizontal/line_v20.slvs b/test/constraint/horizontal/line_v20.slvs new file mode 100644 index 0000000..8909c0f Binary files /dev/null and b/test/constraint/horizontal/line_v20.slvs differ diff --git a/test/constraint/horizontal/pt_pt.png b/test/constraint/horizontal/pt_pt.png new file mode 100644 index 0000000..b0a7804 Binary files /dev/null and b/test/constraint/horizontal/pt_pt.png differ diff --git a/test/constraint/horizontal/pt_pt.slvs b/test/constraint/horizontal/pt_pt.slvs new file mode 100644 index 0000000..cadcdba Binary files /dev/null and b/test/constraint/horizontal/pt_pt.slvs differ diff --git a/test/constraint/horizontal/pt_pt_v20.slvs b/test/constraint/horizontal/pt_pt_v20.slvs new file mode 100644 index 0000000..6a38678 Binary files /dev/null and b/test/constraint/horizontal/pt_pt_v20.slvs differ diff --git a/test/constraint/horizontal/test.cpp b/test/constraint/horizontal/test.cpp new file mode 100644 index 0000000..4e07438 --- /dev/null +++ b/test/constraint/horizontal/test.cpp @@ -0,0 +1,25 @@ +#include "harness.h" + +TEST_CASE(line_roundtrip) { + CHECK_LOAD("line.slvs"); + CHECK_RENDER("line.png"); + CHECK_SAVE("line.slvs"); +} + +TEST_CASE(line_migrate_from_v20) { + CHECK_LOAD("line_v20.slvs"); + CHECK_RENDER("line.png"); + CHECK_SAVE("line.slvs"); +} + +TEST_CASE(pt_pt_roundtrip) { + CHECK_LOAD("pt_pt.slvs"); + CHECK_RENDER("pt_pt.png"); + CHECK_SAVE("pt_pt.slvs"); +} + +TEST_CASE(pt_pt_migrate_from_v20) { + CHECK_LOAD("pt_pt_v20.slvs"); + CHECK_RENDER("pt_pt.png"); + CHECK_SAVE("pt_pt.slvs"); +} diff --git a/test/constraint/length_difference/normal.png b/test/constraint/length_difference/normal.png new file mode 100644 index 0000000..49b4b58 Binary files /dev/null and b/test/constraint/length_difference/normal.png differ diff --git a/test/constraint/length_difference/normal.slvs b/test/constraint/length_difference/normal.slvs new file mode 100644 index 0000000..1d85e47 Binary files /dev/null and b/test/constraint/length_difference/normal.slvs differ diff --git a/test/constraint/length_difference/test.cpp b/test/constraint/length_difference/test.cpp new file mode 100644 index 0000000..7f8723c --- /dev/null +++ b/test/constraint/length_difference/test.cpp @@ -0,0 +1,7 @@ +#include "harness.h" + +TEST_CASE(roundtrip) { + CHECK_LOAD("normal.slvs"); + CHECK_RENDER("normal.png"); + CHECK_SAVE("normal.slvs"); +} diff --git a/test/constraint/length_ratio/normal.png b/test/constraint/length_ratio/normal.png new file mode 100644 index 0000000..45a41c4 Binary files /dev/null and b/test/constraint/length_ratio/normal.png differ diff --git a/test/constraint/length_ratio/normal.slvs b/test/constraint/length_ratio/normal.slvs new file mode 100644 index 0000000..08957de Binary files /dev/null and b/test/constraint/length_ratio/normal.slvs differ diff --git a/test/constraint/length_ratio/normal_v20.slvs b/test/constraint/length_ratio/normal_v20.slvs new file mode 100644 index 0000000..a73f06b Binary files /dev/null and b/test/constraint/length_ratio/normal_v20.slvs differ diff --git a/test/constraint/length_ratio/test.cpp b/test/constraint/length_ratio/test.cpp new file mode 100644 index 0000000..c83a901 --- /dev/null +++ b/test/constraint/length_ratio/test.cpp @@ -0,0 +1,13 @@ +#include "harness.h" + +TEST_CASE(roundtrip) { + CHECK_LOAD("normal.slvs"); + CHECK_RENDER("normal.png"); + CHECK_SAVE("normal.slvs"); +} + +TEST_CASE(migrate_from_v20) { + CHECK_LOAD("normal_v20.slvs"); + CHECK_RENDER("normal.png"); + CHECK_SAVE("normal.slvs"); +} diff --git a/test/constraint/parallel/normal.png b/test/constraint/parallel/normal.png new file mode 100644 index 0000000..56591d7 Binary files /dev/null and b/test/constraint/parallel/normal.png differ diff --git a/test/constraint/parallel/normal.slvs b/test/constraint/parallel/normal.slvs new file mode 100644 index 0000000..8584018 Binary files /dev/null and b/test/constraint/parallel/normal.slvs differ diff --git a/test/constraint/parallel/normal_v20.slvs b/test/constraint/parallel/normal_v20.slvs new file mode 100644 index 0000000..56abd5e Binary files /dev/null and b/test/constraint/parallel/normal_v20.slvs differ diff --git a/test/constraint/parallel/test.cpp b/test/constraint/parallel/test.cpp new file mode 100644 index 0000000..c83a901 --- /dev/null +++ b/test/constraint/parallel/test.cpp @@ -0,0 +1,13 @@ +#include "harness.h" + +TEST_CASE(roundtrip) { + CHECK_LOAD("normal.slvs"); + CHECK_RENDER("normal.png"); + CHECK_SAVE("normal.slvs"); +} + +TEST_CASE(migrate_from_v20) { + CHECK_LOAD("normal_v20.slvs"); + CHECK_RENDER("normal.png"); + CHECK_SAVE("normal.slvs"); +} diff --git a/test/constraint/perpendicular/normal.png b/test/constraint/perpendicular/normal.png new file mode 100644 index 0000000..8acc73c Binary files /dev/null and b/test/constraint/perpendicular/normal.png differ diff --git a/test/constraint/perpendicular/normal.slvs b/test/constraint/perpendicular/normal.slvs new file mode 100644 index 0000000..342a049 Binary files /dev/null and b/test/constraint/perpendicular/normal.slvs differ diff --git a/test/constraint/perpendicular/normal_v20.slvs b/test/constraint/perpendicular/normal_v20.slvs new file mode 100644 index 0000000..905594d Binary files /dev/null and b/test/constraint/perpendicular/normal_v20.slvs differ diff --git a/test/constraint/perpendicular/test.cpp b/test/constraint/perpendicular/test.cpp new file mode 100644 index 0000000..c83a901 --- /dev/null +++ b/test/constraint/perpendicular/test.cpp @@ -0,0 +1,13 @@ +#include "harness.h" + +TEST_CASE(roundtrip) { + CHECK_LOAD("normal.slvs"); + CHECK_RENDER("normal.png"); + CHECK_SAVE("normal.slvs"); +} + +TEST_CASE(migrate_from_v20) { + CHECK_LOAD("normal_v20.slvs"); + CHECK_RENDER("normal.png"); + CHECK_SAVE("normal.slvs"); +} diff --git a/test/constraint/points_coincident/normal.png b/test/constraint/points_coincident/normal.png new file mode 100644 index 0000000..cc9d7e9 Binary files /dev/null and b/test/constraint/points_coincident/normal.png differ diff --git a/test/constraint/points_coincident/normal.slvs b/test/constraint/points_coincident/normal.slvs new file mode 100644 index 0000000..cf4d13f Binary files /dev/null and b/test/constraint/points_coincident/normal.slvs differ diff --git a/test/constraint/points_coincident/normal_v20.slvs b/test/constraint/points_coincident/normal_v20.slvs new file mode 100644 index 0000000..8b072f7 Binary files /dev/null and b/test/constraint/points_coincident/normal_v20.slvs differ diff --git a/test/constraint/points_coincident/test.cpp b/test/constraint/points_coincident/test.cpp new file mode 100644 index 0000000..c83a901 --- /dev/null +++ b/test/constraint/points_coincident/test.cpp @@ -0,0 +1,13 @@ +#include "harness.h" + +TEST_CASE(roundtrip) { + CHECK_LOAD("normal.slvs"); + CHECK_RENDER("normal.png"); + CHECK_SAVE("normal.slvs"); +} + +TEST_CASE(migrate_from_v20) { + CHECK_LOAD("normal_v20.slvs"); + CHECK_RENDER("normal.png"); + CHECK_SAVE("normal.slvs"); +} diff --git a/test/constraint/proj_pt_distance/normal.png b/test/constraint/proj_pt_distance/normal.png new file mode 100644 index 0000000..6cf90ed Binary files /dev/null and b/test/constraint/proj_pt_distance/normal.png differ diff --git a/test/constraint/proj_pt_distance/normal.slvs b/test/constraint/proj_pt_distance/normal.slvs new file mode 100644 index 0000000..01ba48e Binary files /dev/null and b/test/constraint/proj_pt_distance/normal.slvs differ diff --git a/test/constraint/proj_pt_distance/normal_v20.slvs b/test/constraint/proj_pt_distance/normal_v20.slvs new file mode 100644 index 0000000..7dd3084 Binary files /dev/null and b/test/constraint/proj_pt_distance/normal_v20.slvs differ diff --git a/test/constraint/proj_pt_distance/test.cpp b/test/constraint/proj_pt_distance/test.cpp new file mode 100644 index 0000000..c83a901 --- /dev/null +++ b/test/constraint/proj_pt_distance/test.cpp @@ -0,0 +1,13 @@ +#include "harness.h" + +TEST_CASE(roundtrip) { + CHECK_LOAD("normal.slvs"); + CHECK_RENDER("normal.png"); + CHECK_SAVE("normal.slvs"); +} + +TEST_CASE(migrate_from_v20) { + CHECK_LOAD("normal_v20.slvs"); + CHECK_RENDER("normal.png"); + CHECK_SAVE("normal.slvs"); +} diff --git a/test/constraint/pt_face_distance/test.cpp b/test/constraint/pt_face_distance/test.cpp new file mode 100644 index 0000000..298ad90 --- /dev/null +++ b/test/constraint/pt_face_distance/test.cpp @@ -0,0 +1,12 @@ +#include "harness.h" + +// TEST_CASE(roundtrip) { +// CHECK_LOAD("normal.slvs"); +// CHECK_RENDER("normal.png"); +// CHECK_SAVE("normal.slvs"); +// } + +// TEST_CASE(migrate_from_v20) { +// CHECK_LOAD("normal_v20.slvs"); +// CHECK_SAVE("normal.slvs"); +// } diff --git a/test/constraint/pt_in_plane/normal.png b/test/constraint/pt_in_plane/normal.png new file mode 100644 index 0000000..a368ac4 Binary files /dev/null and b/test/constraint/pt_in_plane/normal.png differ diff --git a/test/constraint/pt_in_plane/normal.slvs b/test/constraint/pt_in_plane/normal.slvs new file mode 100644 index 0000000..1bec718 Binary files /dev/null and b/test/constraint/pt_in_plane/normal.slvs differ diff --git a/test/constraint/pt_in_plane/normal_v20.slvs b/test/constraint/pt_in_plane/normal_v20.slvs new file mode 100644 index 0000000..946fc8a Binary files /dev/null and b/test/constraint/pt_in_plane/normal_v20.slvs differ diff --git a/test/constraint/pt_in_plane/test.cpp b/test/constraint/pt_in_plane/test.cpp new file mode 100644 index 0000000..c83a901 --- /dev/null +++ b/test/constraint/pt_in_plane/test.cpp @@ -0,0 +1,13 @@ +#include "harness.h" + +TEST_CASE(roundtrip) { + CHECK_LOAD("normal.slvs"); + CHECK_RENDER("normal.png"); + CHECK_SAVE("normal.slvs"); +} + +TEST_CASE(migrate_from_v20) { + CHECK_LOAD("normal_v20.slvs"); + CHECK_RENDER("normal.png"); + CHECK_SAVE("normal.slvs"); +} diff --git a/test/constraint/pt_line_distance/extended.png b/test/constraint/pt_line_distance/extended.png new file mode 100644 index 0000000..3aa6c21 Binary files /dev/null and b/test/constraint/pt_line_distance/extended.png differ diff --git a/test/constraint/pt_line_distance/extended.slvs b/test/constraint/pt_line_distance/extended.slvs new file mode 100644 index 0000000..c73570d Binary files /dev/null and b/test/constraint/pt_line_distance/extended.slvs differ diff --git a/test/constraint/pt_line_distance/normal.png b/test/constraint/pt_line_distance/normal.png new file mode 100644 index 0000000..12a66c1 Binary files /dev/null and b/test/constraint/pt_line_distance/normal.png differ diff --git a/test/constraint/pt_line_distance/normal.slvs b/test/constraint/pt_line_distance/normal.slvs new file mode 100644 index 0000000..f36ada9 Binary files /dev/null and b/test/constraint/pt_line_distance/normal.slvs differ diff --git a/test/constraint/pt_line_distance/normal_v20.slvs b/test/constraint/pt_line_distance/normal_v20.slvs new file mode 100644 index 0000000..d565607 Binary files /dev/null and b/test/constraint/pt_line_distance/normal_v20.slvs differ diff --git a/test/constraint/pt_line_distance/test.cpp b/test/constraint/pt_line_distance/test.cpp new file mode 100644 index 0000000..1f53686 --- /dev/null +++ b/test/constraint/pt_line_distance/test.cpp @@ -0,0 +1,18 @@ +#include "harness.h" + +TEST_CASE(roundtrip) { + CHECK_LOAD("normal.slvs"); + CHECK_RENDER("normal.png"); + CHECK_SAVE("normal.slvs"); +} + +TEST_CASE(migrate_from_v20) { + CHECK_LOAD("normal_v20.slvs"); + CHECK_RENDER("normal.png"); + CHECK_SAVE("normal.slvs"); +} + +TEST_CASE(render_extended) { + CHECK_LOAD("extended.slvs"); + CHECK_RENDER("extended.png"); +} diff --git a/test/constraint/pt_on_circle/normal.png b/test/constraint/pt_on_circle/normal.png new file mode 100644 index 0000000..656005a Binary files /dev/null and b/test/constraint/pt_on_circle/normal.png differ diff --git a/test/constraint/pt_on_circle/normal.slvs b/test/constraint/pt_on_circle/normal.slvs new file mode 100644 index 0000000..fea01e6 Binary files /dev/null and b/test/constraint/pt_on_circle/normal.slvs differ diff --git a/test/constraint/pt_on_circle/normal_v20.slvs b/test/constraint/pt_on_circle/normal_v20.slvs new file mode 100644 index 0000000..d36fc3b Binary files /dev/null and b/test/constraint/pt_on_circle/normal_v20.slvs differ diff --git a/test/constraint/pt_on_circle/test.cpp b/test/constraint/pt_on_circle/test.cpp new file mode 100644 index 0000000..c83a901 --- /dev/null +++ b/test/constraint/pt_on_circle/test.cpp @@ -0,0 +1,13 @@ +#include "harness.h" + +TEST_CASE(roundtrip) { + CHECK_LOAD("normal.slvs"); + CHECK_RENDER("normal.png"); + CHECK_SAVE("normal.slvs"); +} + +TEST_CASE(migrate_from_v20) { + CHECK_LOAD("normal_v20.slvs"); + CHECK_RENDER("normal.png"); + CHECK_SAVE("normal.slvs"); +} diff --git a/test/constraint/pt_on_face/test.cpp b/test/constraint/pt_on_face/test.cpp new file mode 100644 index 0000000..298ad90 --- /dev/null +++ b/test/constraint/pt_on_face/test.cpp @@ -0,0 +1,12 @@ +#include "harness.h" + +// TEST_CASE(roundtrip) { +// CHECK_LOAD("normal.slvs"); +// CHECK_RENDER("normal.png"); +// CHECK_SAVE("normal.slvs"); +// } + +// TEST_CASE(migrate_from_v20) { +// CHECK_LOAD("normal_v20.slvs"); +// CHECK_SAVE("normal.slvs"); +// } diff --git a/test/constraint/pt_on_line/normal.png b/test/constraint/pt_on_line/normal.png new file mode 100644 index 0000000..4c87b6a Binary files /dev/null and b/test/constraint/pt_on_line/normal.png differ diff --git a/test/constraint/pt_on_line/normal.slvs b/test/constraint/pt_on_line/normal.slvs new file mode 100644 index 0000000..5a74c34 Binary files /dev/null and b/test/constraint/pt_on_line/normal.slvs differ diff --git a/test/constraint/pt_on_line/normal_v20.slvs b/test/constraint/pt_on_line/normal_v20.slvs new file mode 100644 index 0000000..2c3eec5 Binary files /dev/null and b/test/constraint/pt_on_line/normal_v20.slvs differ diff --git a/test/constraint/pt_on_line/test.cpp b/test/constraint/pt_on_line/test.cpp new file mode 100644 index 0000000..c83a901 --- /dev/null +++ b/test/constraint/pt_on_line/test.cpp @@ -0,0 +1,13 @@ +#include "harness.h" + +TEST_CASE(roundtrip) { + CHECK_LOAD("normal.slvs"); + CHECK_RENDER("normal.png"); + CHECK_SAVE("normal.slvs"); +} + +TEST_CASE(migrate_from_v20) { + CHECK_LOAD("normal_v20.slvs"); + CHECK_RENDER("normal.png"); + CHECK_SAVE("normal.slvs"); +} diff --git a/test/constraint/pt_plane_distance/normal.png b/test/constraint/pt_plane_distance/normal.png new file mode 100644 index 0000000..5b0291c Binary files /dev/null and b/test/constraint/pt_plane_distance/normal.png differ diff --git a/test/constraint/pt_plane_distance/normal.slvs b/test/constraint/pt_plane_distance/normal.slvs new file mode 100644 index 0000000..665268f Binary files /dev/null and b/test/constraint/pt_plane_distance/normal.slvs differ diff --git a/test/constraint/pt_plane_distance/normal_v20.slvs b/test/constraint/pt_plane_distance/normal_v20.slvs new file mode 100644 index 0000000..0e49089 Binary files /dev/null and b/test/constraint/pt_plane_distance/normal_v20.slvs differ diff --git a/test/constraint/pt_plane_distance/test.cpp b/test/constraint/pt_plane_distance/test.cpp new file mode 100644 index 0000000..c83a901 --- /dev/null +++ b/test/constraint/pt_plane_distance/test.cpp @@ -0,0 +1,13 @@ +#include "harness.h" + +TEST_CASE(roundtrip) { + CHECK_LOAD("normal.slvs"); + CHECK_RENDER("normal.png"); + CHECK_SAVE("normal.slvs"); +} + +TEST_CASE(migrate_from_v20) { + CHECK_LOAD("normal_v20.slvs"); + CHECK_RENDER("normal.png"); + CHECK_SAVE("normal.slvs"); +} diff --git a/test/constraint/pt_pt_distance/normal.png b/test/constraint/pt_pt_distance/normal.png new file mode 100644 index 0000000..7d29abf Binary files /dev/null and b/test/constraint/pt_pt_distance/normal.png differ diff --git a/test/constraint/pt_pt_distance/normal.slvs b/test/constraint/pt_pt_distance/normal.slvs new file mode 100644 index 0000000..1697435 Binary files /dev/null and b/test/constraint/pt_pt_distance/normal.slvs differ diff --git a/test/constraint/pt_pt_distance/normal_v20.slvs b/test/constraint/pt_pt_distance/normal_v20.slvs new file mode 100644 index 0000000..653c99e Binary files /dev/null and b/test/constraint/pt_pt_distance/normal_v20.slvs differ diff --git a/test/constraint/pt_pt_distance/test.cpp b/test/constraint/pt_pt_distance/test.cpp new file mode 100644 index 0000000..c83a901 --- /dev/null +++ b/test/constraint/pt_pt_distance/test.cpp @@ -0,0 +1,13 @@ +#include "harness.h" + +TEST_CASE(roundtrip) { + CHECK_LOAD("normal.slvs"); + CHECK_RENDER("normal.png"); + CHECK_SAVE("normal.slvs"); +} + +TEST_CASE(migrate_from_v20) { + CHECK_LOAD("normal_v20.slvs"); + CHECK_RENDER("normal.png"); + CHECK_SAVE("normal.slvs"); +} diff --git a/test/constraint/same_orientation/normal.png b/test/constraint/same_orientation/normal.png new file mode 100644 index 0000000..c229e78 Binary files /dev/null and b/test/constraint/same_orientation/normal.png differ diff --git a/test/constraint/same_orientation/normal.slvs b/test/constraint/same_orientation/normal.slvs new file mode 100644 index 0000000..c29b8d7 Binary files /dev/null and b/test/constraint/same_orientation/normal.slvs differ diff --git a/test/constraint/same_orientation/normal_v20.slvs b/test/constraint/same_orientation/normal_v20.slvs new file mode 100644 index 0000000..99cbe1f Binary files /dev/null and b/test/constraint/same_orientation/normal_v20.slvs differ diff --git a/test/constraint/same_orientation/test.cpp b/test/constraint/same_orientation/test.cpp new file mode 100644 index 0000000..c83a901 --- /dev/null +++ b/test/constraint/same_orientation/test.cpp @@ -0,0 +1,13 @@ +#include "harness.h" + +TEST_CASE(roundtrip) { + CHECK_LOAD("normal.slvs"); + CHECK_RENDER("normal.png"); + CHECK_SAVE("normal.slvs"); +} + +TEST_CASE(migrate_from_v20) { + CHECK_LOAD("normal_v20.slvs"); + CHECK_RENDER("normal.png"); + CHECK_SAVE("normal.slvs"); +} diff --git a/test/constraint/symmetric/normal.png b/test/constraint/symmetric/normal.png new file mode 100644 index 0000000..598bf98 Binary files /dev/null and b/test/constraint/symmetric/normal.png differ diff --git a/test/constraint/symmetric/normal.slvs b/test/constraint/symmetric/normal.slvs new file mode 100644 index 0000000..1078e05 Binary files /dev/null and b/test/constraint/symmetric/normal.slvs differ diff --git a/test/constraint/symmetric/normal_v20.slvs b/test/constraint/symmetric/normal_v20.slvs new file mode 100644 index 0000000..170f393 Binary files /dev/null and b/test/constraint/symmetric/normal_v20.slvs differ diff --git a/test/constraint/symmetric/test.cpp b/test/constraint/symmetric/test.cpp new file mode 100644 index 0000000..c83a901 --- /dev/null +++ b/test/constraint/symmetric/test.cpp @@ -0,0 +1,13 @@ +#include "harness.h" + +TEST_CASE(roundtrip) { + CHECK_LOAD("normal.slvs"); + CHECK_RENDER("normal.png"); + CHECK_SAVE("normal.slvs"); +} + +TEST_CASE(migrate_from_v20) { + CHECK_LOAD("normal_v20.slvs"); + CHECK_RENDER("normal.png"); + CHECK_SAVE("normal.slvs"); +} diff --git a/test/constraint/symmetric_horiz/normal.png b/test/constraint/symmetric_horiz/normal.png new file mode 100644 index 0000000..598bf98 Binary files /dev/null and b/test/constraint/symmetric_horiz/normal.png differ diff --git a/test/constraint/symmetric_horiz/normal.slvs b/test/constraint/symmetric_horiz/normal.slvs new file mode 100644 index 0000000..62852b6 Binary files /dev/null and b/test/constraint/symmetric_horiz/normal.slvs differ diff --git a/test/constraint/symmetric_horiz/normal_v20.slvs b/test/constraint/symmetric_horiz/normal_v20.slvs new file mode 100644 index 0000000..88ce8a9 Binary files /dev/null and b/test/constraint/symmetric_horiz/normal_v20.slvs differ diff --git a/test/constraint/symmetric_horiz/test.cpp b/test/constraint/symmetric_horiz/test.cpp new file mode 100644 index 0000000..c83a901 --- /dev/null +++ b/test/constraint/symmetric_horiz/test.cpp @@ -0,0 +1,13 @@ +#include "harness.h" + +TEST_CASE(roundtrip) { + CHECK_LOAD("normal.slvs"); + CHECK_RENDER("normal.png"); + CHECK_SAVE("normal.slvs"); +} + +TEST_CASE(migrate_from_v20) { + CHECK_LOAD("normal_v20.slvs"); + CHECK_RENDER("normal.png"); + CHECK_SAVE("normal.slvs"); +} diff --git a/test/constraint/symmetric_line/normal.png b/test/constraint/symmetric_line/normal.png new file mode 100644 index 0000000..fc6ff6b Binary files /dev/null and b/test/constraint/symmetric_line/normal.png differ diff --git a/test/constraint/symmetric_line/normal.slvs b/test/constraint/symmetric_line/normal.slvs new file mode 100644 index 0000000..f0d4dca Binary files /dev/null and b/test/constraint/symmetric_line/normal.slvs differ diff --git a/test/constraint/symmetric_line/normal_v20.slvs b/test/constraint/symmetric_line/normal_v20.slvs new file mode 100644 index 0000000..f1c4562 Binary files /dev/null and b/test/constraint/symmetric_line/normal_v20.slvs differ diff --git a/test/constraint/symmetric_line/test.cpp b/test/constraint/symmetric_line/test.cpp new file mode 100644 index 0000000..c83a901 --- /dev/null +++ b/test/constraint/symmetric_line/test.cpp @@ -0,0 +1,13 @@ +#include "harness.h" + +TEST_CASE(roundtrip) { + CHECK_LOAD("normal.slvs"); + CHECK_RENDER("normal.png"); + CHECK_SAVE("normal.slvs"); +} + +TEST_CASE(migrate_from_v20) { + CHECK_LOAD("normal_v20.slvs"); + CHECK_RENDER("normal.png"); + CHECK_SAVE("normal.slvs"); +} diff --git a/test/constraint/symmetric_vert/normal.png b/test/constraint/symmetric_vert/normal.png new file mode 100644 index 0000000..81d0618 Binary files /dev/null and b/test/constraint/symmetric_vert/normal.png differ diff --git a/test/constraint/symmetric_vert/normal.slvs b/test/constraint/symmetric_vert/normal.slvs new file mode 100644 index 0000000..602bee1 Binary files /dev/null and b/test/constraint/symmetric_vert/normal.slvs differ diff --git a/test/constraint/symmetric_vert/normal_v20.slvs b/test/constraint/symmetric_vert/normal_v20.slvs new file mode 100644 index 0000000..c6f5a6d Binary files /dev/null and b/test/constraint/symmetric_vert/normal_v20.slvs differ diff --git a/test/constraint/symmetric_vert/test.cpp b/test/constraint/symmetric_vert/test.cpp new file mode 100644 index 0000000..c83a901 --- /dev/null +++ b/test/constraint/symmetric_vert/test.cpp @@ -0,0 +1,13 @@ +#include "harness.h" + +TEST_CASE(roundtrip) { + CHECK_LOAD("normal.slvs"); + CHECK_RENDER("normal.png"); + CHECK_SAVE("normal.slvs"); +} + +TEST_CASE(migrate_from_v20) { + CHECK_LOAD("normal_v20.slvs"); + CHECK_RENDER("normal.png"); + CHECK_SAVE("normal.slvs"); +} diff --git a/test/constraint/vertical/line.png b/test/constraint/vertical/line.png new file mode 100644 index 0000000..caa3337 Binary files /dev/null and b/test/constraint/vertical/line.png differ diff --git a/test/constraint/vertical/line.slvs b/test/constraint/vertical/line.slvs new file mode 100644 index 0000000..00da9f7 Binary files /dev/null and b/test/constraint/vertical/line.slvs differ diff --git a/test/constraint/vertical/line_v20.slvs b/test/constraint/vertical/line_v20.slvs new file mode 100644 index 0000000..eeef577 Binary files /dev/null and b/test/constraint/vertical/line_v20.slvs differ diff --git a/test/constraint/vertical/pt_pt.png b/test/constraint/vertical/pt_pt.png new file mode 100644 index 0000000..fbbab87 Binary files /dev/null and b/test/constraint/vertical/pt_pt.png differ diff --git a/test/constraint/vertical/pt_pt.slvs b/test/constraint/vertical/pt_pt.slvs new file mode 100644 index 0000000..458c241 Binary files /dev/null and b/test/constraint/vertical/pt_pt.slvs differ diff --git a/test/constraint/vertical/pt_pt_v20.slvs b/test/constraint/vertical/pt_pt_v20.slvs new file mode 100644 index 0000000..648dbca Binary files /dev/null and b/test/constraint/vertical/pt_pt_v20.slvs differ diff --git a/test/constraint/vertical/test.cpp b/test/constraint/vertical/test.cpp new file mode 100644 index 0000000..4e07438 --- /dev/null +++ b/test/constraint/vertical/test.cpp @@ -0,0 +1,25 @@ +#include "harness.h" + +TEST_CASE(line_roundtrip) { + CHECK_LOAD("line.slvs"); + CHECK_RENDER("line.png"); + CHECK_SAVE("line.slvs"); +} + +TEST_CASE(line_migrate_from_v20) { + CHECK_LOAD("line_v20.slvs"); + CHECK_RENDER("line.png"); + CHECK_SAVE("line.slvs"); +} + +TEST_CASE(pt_pt_roundtrip) { + CHECK_LOAD("pt_pt.slvs"); + CHECK_RENDER("pt_pt.png"); + CHECK_SAVE("pt_pt.slvs"); +} + +TEST_CASE(pt_pt_migrate_from_v20) { + CHECK_LOAD("pt_pt_v20.slvs"); + CHECK_RENDER("pt_pt.png"); + CHECK_SAVE("pt_pt.slvs"); +} diff --git a/test/constraint/where_dragged/normal.png b/test/constraint/where_dragged/normal.png new file mode 100644 index 0000000..681fc2e Binary files /dev/null and b/test/constraint/where_dragged/normal.png differ diff --git a/test/constraint/where_dragged/normal.slvs b/test/constraint/where_dragged/normal.slvs new file mode 100644 index 0000000..75bc443 Binary files /dev/null and b/test/constraint/where_dragged/normal.slvs differ diff --git a/test/constraint/where_dragged/normal_v20.slvs b/test/constraint/where_dragged/normal_v20.slvs new file mode 100644 index 0000000..397ee40 Binary files /dev/null and b/test/constraint/where_dragged/normal_v20.slvs differ diff --git a/test/constraint/where_dragged/test.cpp b/test/constraint/where_dragged/test.cpp new file mode 100644 index 0000000..c83a901 --- /dev/null +++ b/test/constraint/where_dragged/test.cpp @@ -0,0 +1,13 @@ +#include "harness.h" + +TEST_CASE(roundtrip) { + CHECK_LOAD("normal.slvs"); + CHECK_RENDER("normal.png"); + CHECK_SAVE("normal.slvs"); +} + +TEST_CASE(migrate_from_v20) { + CHECK_LOAD("normal_v20.slvs"); + CHECK_RENDER("normal.png"); + CHECK_SAVE("normal.slvs"); +} diff --git a/test/harness.cpp b/test/harness.cpp index b819596..7c70d83 100644 --- a/test/harness.cpp +++ b/test/harness.cpp @@ -15,6 +15,7 @@ namespace SolveSpace { // These are defined in headless.cpp, and aren't exposed in solvespace.h. extern std::string resourceDir; + extern std::vector fontFiles; extern bool antialias; extern std::shared_ptr framebuffer; } @@ -94,8 +95,8 @@ static std::string Colorize(Color color, std::string input) { return input; } -static std::vector ReadFile(std::string path) { - std::vector data; +static std::string ReadFile(std::string path) { + std::string data; FILE *f = ssfopen(path.c_str(), "rb"); if(f) { fseek(f, 0, SEEK_END); @@ -107,6 +108,38 @@ static std::vector ReadFile(std::string path) { return data; } +// Normalizes a savefile. Different platforms have slightly different floating-point +// behavior, so if we want to compare savefiles byte-by-byte, we need to do something +// to get rid of irrelevant differences in LSB. +static std::string PrepareSavefile(std::string data) { + // Round everything to 2**30 ~ 1e9 + const double precision = pow(2, 30); + + size_t newline = 0; + while(newline < std::string::npos) { + size_t nextNewline = data.find('\n', newline + 1); + + size_t eqPos = data.find('=', newline + 1); + if(eqPos < nextNewline) { + std::string key = data.substr(newline + 1, eqPos - newline - 1), + value = data.substr(eqPos + 1, nextNewline - eqPos - 1); + for(int i = 0; SolveSpaceUI::SAVED[i].type != 0; i++) { + if(SolveSpaceUI::SAVED[i].desc != key) continue; + if(SolveSpaceUI::SAVED[i].fmt != 'f') continue; + double f = strtod(value.c_str(), NULL); + f = round(f * precision) / precision; + std::string newValue = ssprintf("%.20f", f); + ssassert(value.size() == newValue.size(), "Expected no change in value length"); + std::copy(newValue.begin(), newValue.end(), + data.begin() + eqPos + 1); + } + } + + newline = nextNewline; + } + return data; +} + bool Test::Helper::RecordCheck(bool success) { checkCount++; if(!success) failCount++; @@ -169,8 +202,8 @@ bool Test::Helper::CheckSave(const char *file, int line, const char *reference) ssprintf("saving file '%s'", refPath.c_str())); return false; } else { - std::vector refData = ReadFile(refPath), - outData = ReadFile(outPath); + std::string refData = PrepareSavefile(ReadFile(refPath)), + outData = PrepareSavefile(ReadFile(outPath)); if(!RecordCheck(refData == outData)) { PrintFailure(file, line, "savefile doesn't match reference"); return false; @@ -259,6 +292,8 @@ int main(int argc, char **argv) { resourceDir.erase(resourceDir.rfind(HOST_PATH_SEP) + 1); resourceDir += "res"; + fontFiles.push_back(HostRoot() + HOST_PATH_SEP + "Gentium-R.ttf"); + // Different Cairo versions have different antialiasing algorithms. antialias = false; diff --git a/test/request/arc_of_circle/normal.png b/test/request/arc_of_circle/normal.png new file mode 100644 index 0000000..90361e8 Binary files /dev/null and b/test/request/arc_of_circle/normal.png differ diff --git a/test/request/arc_of_circle/normal.slvs b/test/request/arc_of_circle/normal.slvs new file mode 100644 index 0000000..6f92e0e Binary files /dev/null and b/test/request/arc_of_circle/normal.slvs differ diff --git a/test/request/arc_of_circle/normal_v20.slvs b/test/request/arc_of_circle/normal_v20.slvs new file mode 100644 index 0000000..78d983b Binary files /dev/null and b/test/request/arc_of_circle/normal_v20.slvs differ diff --git a/test/request/arc_of_circle/test.cpp b/test/request/arc_of_circle/test.cpp new file mode 100644 index 0000000..c83a901 --- /dev/null +++ b/test/request/arc_of_circle/test.cpp @@ -0,0 +1,13 @@ +#include "harness.h" + +TEST_CASE(roundtrip) { + CHECK_LOAD("normal.slvs"); + CHECK_RENDER("normal.png"); + CHECK_SAVE("normal.slvs"); +} + +TEST_CASE(migrate_from_v20) { + CHECK_LOAD("normal_v20.slvs"); + CHECK_RENDER("normal.png"); + CHECK_SAVE("normal.slvs"); +} diff --git a/test/request/circle/normal.png b/test/request/circle/normal.png new file mode 100644 index 0000000..91aec4f Binary files /dev/null and b/test/request/circle/normal.png differ diff --git a/test/request/circle/normal.slvs b/test/request/circle/normal.slvs new file mode 100644 index 0000000..d245f28 Binary files /dev/null and b/test/request/circle/normal.slvs differ diff --git a/test/request/circle/normal_v20.slvs b/test/request/circle/normal_v20.slvs new file mode 100644 index 0000000..cdd2810 Binary files /dev/null and b/test/request/circle/normal_v20.slvs differ diff --git a/test/request/circle/test.cpp b/test/request/circle/test.cpp new file mode 100644 index 0000000..c83a901 --- /dev/null +++ b/test/request/circle/test.cpp @@ -0,0 +1,13 @@ +#include "harness.h" + +TEST_CASE(roundtrip) { + CHECK_LOAD("normal.slvs"); + CHECK_RENDER("normal.png"); + CHECK_SAVE("normal.slvs"); +} + +TEST_CASE(migrate_from_v20) { + CHECK_LOAD("normal_v20.slvs"); + CHECK_RENDER("normal.png"); + CHECK_SAVE("normal.slvs"); +} diff --git a/test/request/cubic/normal.png b/test/request/cubic/normal.png new file mode 100644 index 0000000..798a25c Binary files /dev/null and b/test/request/cubic/normal.png differ diff --git a/test/request/cubic/normal.slvs b/test/request/cubic/normal.slvs new file mode 100644 index 0000000..7630fad Binary files /dev/null and b/test/request/cubic/normal.slvs differ diff --git a/test/request/cubic/normal_v20.slvs b/test/request/cubic/normal_v20.slvs new file mode 100644 index 0000000..9c93a8e Binary files /dev/null and b/test/request/cubic/normal_v20.slvs differ diff --git a/test/request/cubic/test.cpp b/test/request/cubic/test.cpp new file mode 100644 index 0000000..c83a901 --- /dev/null +++ b/test/request/cubic/test.cpp @@ -0,0 +1,13 @@ +#include "harness.h" + +TEST_CASE(roundtrip) { + CHECK_LOAD("normal.slvs"); + CHECK_RENDER("normal.png"); + CHECK_SAVE("normal.slvs"); +} + +TEST_CASE(migrate_from_v20) { + CHECK_LOAD("normal_v20.slvs"); + CHECK_RENDER("normal.png"); + CHECK_SAVE("normal.slvs"); +} diff --git a/test/request/cubic_periodic/normal.png b/test/request/cubic_periodic/normal.png new file mode 100644 index 0000000..8f4c66f Binary files /dev/null and b/test/request/cubic_periodic/normal.png differ diff --git a/test/request/cubic_periodic/normal.slvs b/test/request/cubic_periodic/normal.slvs new file mode 100644 index 0000000..d4f9c72 Binary files /dev/null and b/test/request/cubic_periodic/normal.slvs differ diff --git a/test/request/cubic_periodic/normal_v20.slvs b/test/request/cubic_periodic/normal_v20.slvs new file mode 100644 index 0000000..bd8dd4d Binary files /dev/null and b/test/request/cubic_periodic/normal_v20.slvs differ diff --git a/test/request/cubic_periodic/test.cpp b/test/request/cubic_periodic/test.cpp new file mode 100644 index 0000000..c83a901 --- /dev/null +++ b/test/request/cubic_periodic/test.cpp @@ -0,0 +1,13 @@ +#include "harness.h" + +TEST_CASE(roundtrip) { + CHECK_LOAD("normal.slvs"); + CHECK_RENDER("normal.png"); + CHECK_SAVE("normal.slvs"); +} + +TEST_CASE(migrate_from_v20) { + CHECK_LOAD("normal_v20.slvs"); + CHECK_RENDER("normal.png"); + CHECK_SAVE("normal.slvs"); +} diff --git a/test/request/datum_point/normal.png b/test/request/datum_point/normal.png new file mode 100644 index 0000000..9d2eef7 Binary files /dev/null and b/test/request/datum_point/normal.png differ diff --git a/test/request/datum_point/normal.slvs b/test/request/datum_point/normal.slvs new file mode 100644 index 0000000..50f8877 Binary files /dev/null and b/test/request/datum_point/normal.slvs differ diff --git a/test/request/datum_point/normal_v20.slvs b/test/request/datum_point/normal_v20.slvs new file mode 100644 index 0000000..afec571 Binary files /dev/null and b/test/request/datum_point/normal_v20.slvs differ diff --git a/test/request/datum_point/test.cpp b/test/request/datum_point/test.cpp new file mode 100644 index 0000000..c83a901 --- /dev/null +++ b/test/request/datum_point/test.cpp @@ -0,0 +1,13 @@ +#include "harness.h" + +TEST_CASE(roundtrip) { + CHECK_LOAD("normal.slvs"); + CHECK_RENDER("normal.png"); + CHECK_SAVE("normal.slvs"); +} + +TEST_CASE(migrate_from_v20) { + CHECK_LOAD("normal_v20.slvs"); + CHECK_RENDER("normal.png"); + CHECK_SAVE("normal.slvs"); +} diff --git a/test/request/line_segment/line_segment.png b/test/request/line_segment/line_segment.png deleted file mode 100644 index d1dfb50..0000000 Binary files a/test/request/line_segment/line_segment.png and /dev/null differ diff --git a/test/request/line_segment/normal.png b/test/request/line_segment/normal.png new file mode 100644 index 0000000..189436b Binary files /dev/null and b/test/request/line_segment/normal.png differ diff --git a/test/request/line_segment/line_segment_v21.slvs b/test/request/line_segment/normal.slvs similarity index 100% rename from test/request/line_segment/line_segment_v21.slvs rename to test/request/line_segment/normal.slvs diff --git a/test/request/line_segment/line_segment_v20.slvs b/test/request/line_segment/normal_v20.slvs similarity index 100% rename from test/request/line_segment/line_segment_v20.slvs rename to test/request/line_segment/normal_v20.slvs diff --git a/test/request/line_segment/test.cpp b/test/request/line_segment/test.cpp index b203ace..c83a901 100644 --- a/test/request/line_segment/test.cpp +++ b/test/request/line_segment/test.cpp @@ -1,17 +1,13 @@ #include "harness.h" -TEST_CASE(load_v20) { - CHECK_LOAD("line_segment_v20.slvs"); - CHECK_RENDER("line_segment.png"); +TEST_CASE(roundtrip) { + CHECK_LOAD("normal.slvs"); + CHECK_RENDER("normal.png"); + CHECK_SAVE("normal.slvs"); } -TEST_CASE(roundtrip_v21) { - CHECK_LOAD("line_segment_v21.slvs"); - CHECK_RENDER("line_segment.png"); - CHECK_SAVE("line_segment_v21.slvs"); -} - -TEST_CASE(migrate_v20_to_v21) { - CHECK_LOAD("line_segment_v20.slvs"); - CHECK_SAVE("line_segment_v21.slvs"); +TEST_CASE(migrate_from_v20) { + CHECK_LOAD("normal_v20.slvs"); + CHECK_RENDER("normal.png"); + CHECK_SAVE("normal.slvs"); } diff --git a/test/request/ttf_text/normal.png b/test/request/ttf_text/normal.png new file mode 100644 index 0000000..1e35997 Binary files /dev/null and b/test/request/ttf_text/normal.png differ diff --git a/test/request/ttf_text/normal.slvs b/test/request/ttf_text/normal.slvs new file mode 100644 index 0000000..3022dcf Binary files /dev/null and b/test/request/ttf_text/normal.slvs differ diff --git a/test/request/ttf_text/normal_v20.slvs b/test/request/ttf_text/normal_v20.slvs new file mode 100644 index 0000000..65bc54a Binary files /dev/null and b/test/request/ttf_text/normal_v20.slvs differ diff --git a/test/request/ttf_text/test.cpp b/test/request/ttf_text/test.cpp new file mode 100644 index 0000000..c83a901 --- /dev/null +++ b/test/request/ttf_text/test.cpp @@ -0,0 +1,13 @@ +#include "harness.h" + +TEST_CASE(roundtrip) { + CHECK_LOAD("normal.slvs"); + CHECK_RENDER("normal.png"); + CHECK_SAVE("normal.slvs"); +} + +TEST_CASE(migrate_from_v20) { + CHECK_LOAD("normal_v20.slvs"); + CHECK_RENDER("normal.png"); + CHECK_SAVE("normal.slvs"); +}