/* * Copyright 2024 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #pragma once #include #define cl_assert_equal_grect(a, b) \ do { \ GRect rect_a = (a); \ GRect rect_b = (b); \ bool success = grect_equal(&rect_a, &rect_b); \ if (!success) { \ char error_msg[256] = {0}; \ sprintf(error_msg, \ "grect_equal(rect_a, rect_b)\n" \ " rect_a: {%d,%d,%d,%d}\n" \ " rect_b: {%d,%d,%d,%d}\n", \ rect_a.origin.x, rect_a.origin.y, rect_a.size.w, rect_a.size.h, \ rect_b.origin.x, rect_b.origin.y, rect_b.size.w, rect_b.size.h); \ clar__assert(0, __FILE__, __LINE__, "Expression is not true: ", error_msg, 1); \ } \ } while(0) #define cl_assert_equal_gpoint(a, b) \ do { \ GPoint pt_a = (a); \ GPoint pt_b = (b); \ bool success = gpoint_equal(&pt_a, &pt_b); \ if (!success) { \ char error_msg[256] = {0}; \ sprintf(error_msg, \ "gpoint_equal(pt_a, pt_b)\n" \ " pt_a: {%d,%d}\n" \ " pt_b: {%d,%d}\n", \ pt_a.x, pt_a.y, \ pt_b.x, pt_b.y); \ clar__assert(0, __FILE__, __LINE__, "Expression is not true: ", error_msg, 1); \ } \ } while(0) #define cl_assert_equal_gsize(a, b) \ do { \ GSize size_a = (a); \ GSize size_b = (b); \ bool success = gsize_equal(&size_a, &size_b); \ if (!success) { \ char error_msg[256] = {0}; \ sprintf(error_msg, \ "gsize_equal(size_a, size_b)\n" \ " size_a: {%d,%d}\n" \ " size_b: {%d,%d}\n", \ size_a.w, size_a.h, \ size_b.w, size_b.h); \ clar__assert(0, __FILE__, __LINE__, "Expression is not true: ", error_msg, 1); \ } \ } while(0) #define cl_assert_equal_uuid(a, b) \ do { \ Uuid uuid_a = (a); \ Uuid uuid_b = (b); \ bool success = uuid_equal(&uuid_a, &uuid_b); \ if (!success) { \ char error_msg[256] = {0}; \ char uuid_a_buf[UUID_STRING_BUFFER_LENGTH] = {0}; \ char uuid_b_buf[UUID_STRING_BUFFER_LENGTH] = {0}; \ uuid_to_string(&uuid_a, uuid_a_buf); \ uuid_to_string(&uuid_b, uuid_b_buf); \ sprintf(error_msg, \ "uuid_equal(uuid_a, uuid_b)\n" \ " uuid_a: %s\n" \ " uuid_b: %s\n", \ uuid_a_buf, \ uuid_b_buf); \ clar__assert(0, __FILE__, __LINE__, "Expression is not true: ", error_msg, 1); \ } \ } while(0) #define cl_assert_equal_edc(a, b) \ do { \ EllipsisDrawConfig edc_a = (a); \ EllipsisDrawConfig edc_b = (b); \ bool success = ((edc_a.start_quadrant.angle == edc_b.start_quadrant.angle) && \ (edc_a.start_quadrant.quadrant == edc_b.start_quadrant.quadrant) && \ (edc_a.full_quadrants == edc_b.full_quadrants) && \ (edc_a.end_quadrant.angle == edc_b.end_quadrant.angle) && \ (edc_a.end_quadrant.quadrant == edc_b.end_quadrant.quadrant)); \ if (!success) { \ char error_msg[256] = {0}; \ sprintf(error_msg, \ "EllipsisDrawConfig edc_a and edc_b are not equal:\n" \ " edc_a: start_quadrant: angle: %d quadrant: %d\n" \ " end_quadrant: angle: %d quadrant: %d\n" \ " full_quadrants: %d\n" \ " edc_b: start_quadrant: angle: %d quadrant: %d\n" \ " end_quadrant: angle: %d quadrant: %d\n" \ " full_quadrants: %d\n", \ edc_a.start_quadrant.angle, edc_a.start_quadrant.quadrant, \ edc_a.end_quadrant.angle, edc_a.end_quadrant.quadrant, \ edc_a.full_quadrants, \ edc_b.start_quadrant.angle, edc_b.start_quadrant.quadrant, \ edc_b.end_quadrant.angle, edc_b.end_quadrant.quadrant, \ edc_b.full_quadrants); \ clar__assert(0, __FILE__, __LINE__, "Expression is not true: ", error_msg, 1); \ } \ } while (0)