TEST(GetExtentsAlongAxis, Box) { Box box(Vector3(1,2,3)); float a, b; box.GetExtentsAlongAxis(Vector4(1,0,0,0), a, b); FLOATS_EQUAL(-1, a); FLOATS_EQUAL(1, b); box.SetOrientation(Quaternion(M_PI_2, Vector3(0,0,1))); box.GetExtentsAlongAxis(Vector4(1,0,0,0), a, b); FLOATS_EQUAL(-2, a); FLOATS_EQUAL(2, b); box.SetOrientation(Quaternion::IDENTITY); box.GetExtentsAlongAxis(Vector4(1,0,0,3), a, b); FLOATS_EQUAL(2, a); FLOATS_EQUAL(4, b); box.GetExtentsAlongAxis(Vector4(sqrtf(0.5f),sqrtf(0.5f),0,0), a, b); FLOATS_EQUAL(-3*sqrtf(0.5f), a); FLOATS_EQUAL(3*sqrtf(0.5f), b); }
static gboolean test_change_processor_rect_do_test (GeglProcessor *processor, const GeglRectangle *rect, GeglNode *sink) { gint i = 0; gboolean result = TRUE; float expected_result_buffer[4] = { 1.0, 1.0, 1.0, 1.0 }; float result_buffer[4] = { 0, }; GeglBuffer *buffer = NULL; gegl_node_set (sink, "buffer", &buffer, NULL); gegl_processor_set_rectangle (processor, rect); while (gegl_processor_work (processor, NULL)); gegl_buffer_get (buffer, rect, 1.0, babl_format ("RGBA float"), result_buffer, GEGL_AUTO_ROWSTRIDE, GEGL_ABYSS_NONE); /* Compare with a small epsilon to account for accumulated error */ for(i = 0; i < G_N_ELEMENTS (expected_result_buffer); i++) result = result && FLOATS_EQUAL (expected_result_buffer[i], result_buffer[i]); gegl_node_set (sink, "buffer", NULL, NULL); g_object_unref (buffer); return result; }