1 /* ADG - Automatic Drawing Generation
2 * Copyright (C) 2007-2021 Nicola Fontana <ntd at entidi.it>
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the
16 * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17 * Boston, MA 02110-1301, USA.
26 _adg_property_dim_dress(void)
30 /* Check that the dimension dress for AdgADim instances is
31 * ADG_DRESS_DIMENSION by default */
32 adim
= adg_adim_new();
33 g_assert_cmpint(adg_dim_get_dim_dress(ADG_DIM(adim
)), ==, ADG_DRESS_DIMENSION
);
35 adg_entity_destroy(ADG_ENTITY(adim
));
39 _adg_property_org1(void)
43 AdgPoint
*origin
, *explicit_point
, *model_point
;
46 adim
= adg_adim_new();
47 model
= ADG_MODEL(adg_path_new());
48 origin
= adg_point_new();
49 explicit_point
= adg_point_new();
50 model_point
= adg_point_new();
52 adg_point_set_pair_explicit(origin
, 0, 0);
53 adg_point_set_pair_explicit(explicit_point
, 123, 321);
54 adg_model_set_named_pair(model
, "named-pair", (CpmlPair
*) explicit_point
);
55 adg_point_set_pair_from_model(model_point
, model
, "named-pair");
57 /* Ensure ADG does not consider an explicit point equals to
58 * a point bound to a named pair with the same coordinates */
59 g_assert_false(adg_point_equal(explicit_point
, model_point
));
61 org1
= adg_adim_get_org1(adim
);
64 /* Using the public APIs */
65 adg_adim_set_org1_explicit(adim
, 0, 0);
66 org1
= adg_adim_get_org1(adim
);
67 g_assert_true(adg_point_equal(org1
, origin
));
69 adg_adim_set_org1(adim
, NULL
);
70 org1
= adg_adim_get_org1(adim
);
73 adg_adim_set_org1(adim
, explicit_point
);
74 org1
= adg_adim_get_org1(adim
);
75 g_assert_true(adg_point_equal(org1
, explicit_point
));
77 adg_adim_set_org1_from_model(adim
, model
, "dummy");
78 org1
= adg_adim_get_org1(adim
);
79 g_assert_nonnull(org1
);
81 adg_adim_set_org1_from_model(adim
, model
, "named-pair");
82 org1
= adg_adim_get_org1(adim
);
83 g_assert_true(adg_point_equal(org1
, model_point
));
85 /* Using GObject property methods */
86 g_object_set(adim
, "org1", origin
, NULL
);
87 g_object_get(adim
, "org1", &org1
, NULL
);
88 g_assert_true(adg_point_equal(org1
, origin
));
89 adg_point_destroy(org1
);
91 g_object_set(adim
, "org1", NULL
, NULL
);
92 g_object_get(adim
, "org1", &org1
, NULL
);
95 g_object_set(adim
, "org1", explicit_point
, NULL
);
96 g_object_get(adim
, "org1", &org1
, NULL
);
97 g_assert_true(adg_point_equal(org1
, explicit_point
));
98 adg_point_destroy(org1
);
100 adg_adim_set_org1_from_model(adim
, model
, "dummy");
101 g_object_get(adim
, "org1", &org1
, NULL
);
102 g_assert_nonnull(org1
);
103 adg_point_destroy(org1
);
105 g_object_set(adim
, "org1", model_point
, NULL
);
106 g_object_get(adim
, "org1", &org1
, NULL
);
107 g_assert_true(adg_point_equal(org1
, model_point
));
108 adg_point_destroy(org1
);
110 adg_point_destroy(origin
);
111 adg_point_destroy(explicit_point
);
112 adg_point_destroy(model_point
);
113 adg_entity_destroy(ADG_ENTITY(adim
));
114 g_object_unref(model
);
118 _adg_property_org2(void)
122 AdgPoint
*origin
, *explicit_point
, *model_point
;
125 adim
= adg_adim_new();
126 model
= ADG_MODEL(adg_path_new());
127 origin
= adg_point_new();
128 explicit_point
= adg_point_new();
129 model_point
= adg_point_new();
131 adg_point_set_pair_explicit(origin
, 0, 0);
132 adg_point_set_pair_explicit(explicit_point
, 123, 321);
133 adg_model_set_named_pair(model
, "named-pair", (CpmlPair
*) explicit_point
);
134 adg_point_set_pair_from_model(model_point
, model
, "named-pair");
136 /* Ensure ADG does not consider an explicit point equals to
137 * a point bound to a named pair with the same coordinates */
138 g_assert_false(adg_point_equal(explicit_point
, model_point
));
140 org2
= adg_adim_get_org2(adim
);
143 /* Using the public APIs */
144 adg_adim_set_org2_explicit(adim
, 0, 0);
145 org2
= adg_adim_get_org2(adim
);
146 g_assert_true(adg_point_equal(org2
, origin
));
148 adg_adim_set_org2(adim
, NULL
);
149 org2
= adg_adim_get_org2(adim
);
152 adg_adim_set_org2(adim
, explicit_point
);
153 org2
= adg_adim_get_org2(adim
);
154 g_assert_true(adg_point_equal(org2
, explicit_point
));
156 adg_adim_set_org2_from_model(adim
, model
, "dummy");
157 org2
= adg_adim_get_org2(adim
);
158 g_assert_nonnull(org2
);
160 adg_adim_set_org2_from_model(adim
, model
, "named-pair");
161 org2
= adg_adim_get_org2(adim
);
162 g_assert_true(adg_point_equal(org2
, model_point
));
164 /* Using GObject property methods */
165 g_object_set(adim
, "org2", origin
, NULL
);
166 g_object_get(adim
, "org2", &org2
, NULL
);
167 g_assert_true(adg_point_equal(org2
, origin
));
168 adg_point_destroy(org2
);
170 g_object_set(adim
, "org2", NULL
, NULL
);
171 g_object_get(adim
, "org2", &org2
, NULL
);
174 g_object_set(adim
, "org2", explicit_point
, NULL
);
175 g_object_get(adim
, "org2", &org2
, NULL
);
176 g_assert_true(adg_point_equal(org2
, explicit_point
));
177 adg_point_destroy(org2
);
179 adg_adim_set_org2_from_model(adim
, model
, "dummy");
180 g_object_get(adim
, "org2", &org2
, NULL
);
181 g_assert_nonnull(org2
);
182 adg_point_destroy(org2
);
184 g_object_set(adim
, "org2", model_point
, NULL
);
185 g_object_get(adim
, "org2", &org2
, NULL
);
186 g_assert_true(adg_point_equal(org2
, model_point
));
187 adg_point_destroy(org2
);
189 adg_point_destroy(origin
);
190 adg_point_destroy(explicit_point
);
191 adg_point_destroy(model_point
);
192 adg_entity_destroy(ADG_ENTITY(adim
));
193 g_object_unref(model
);
197 _adg_property_has_extension1(void)
200 gboolean invalid_boolean
;
201 gboolean has_extension1
;
203 adim
= adg_adim_new();
204 invalid_boolean
= (gboolean
) 1234;
206 /* Using the public APIs */
207 adg_adim_switch_extension1(adim
, FALSE
);
208 has_extension1
= adg_adim_has_extension1(adim
);
209 g_assert_false(has_extension1
);
211 adg_adim_switch_extension1(adim
, invalid_boolean
);
212 has_extension1
= adg_adim_has_extension1(adim
);
213 g_assert_false(has_extension1
);
215 adg_adim_switch_extension1(adim
, TRUE
);
216 has_extension1
= adg_adim_has_extension1(adim
);
217 g_assert_true(has_extension1
);
219 /* Using GObject property methods */
220 g_object_set(adim
, "has-extension1", FALSE
, NULL
);
221 g_object_get(adim
, "has-extension1", &has_extension1
, NULL
);
222 g_assert_false(has_extension1
);
224 g_object_set(adim
, "has-extension1", invalid_boolean
, NULL
);
225 g_object_get(adim
, "has-extension1", &has_extension1
, NULL
);
226 g_assert_false(has_extension1
);
228 g_object_set(adim
, "has-extension1", TRUE
, NULL
);
229 g_object_get(adim
, "has-extension1", &has_extension1
, NULL
);
230 g_assert_true(has_extension1
);
232 adg_entity_destroy(ADG_ENTITY(adim
));
236 _adg_property_has_extension2(void)
239 gboolean invalid_boolean
;
240 gboolean has_extension2
;
242 adim
= adg_adim_new();
243 invalid_boolean
= (gboolean
) 1234;
245 /* Using the public APIs */
246 adg_adim_switch_extension2(adim
, FALSE
);
247 has_extension2
= adg_adim_has_extension2(adim
);
248 g_assert_false(has_extension2
);
250 adg_adim_switch_extension2(adim
, invalid_boolean
);
251 has_extension2
= adg_adim_has_extension2(adim
);
252 g_assert_false(has_extension2
);
254 adg_adim_switch_extension2(adim
, TRUE
);
255 has_extension2
= adg_adim_has_extension2(adim
);
256 g_assert_true(has_extension2
);
258 /* Using GObject property methods */
259 g_object_set(adim
, "has-extension2", FALSE
, NULL
);
260 g_object_get(adim
, "has-extension2", &has_extension2
, NULL
);
261 g_assert_false(has_extension2
);
263 g_object_set(adim
, "has-extension2", invalid_boolean
, NULL
);
264 g_object_get(adim
, "has-extension2", &has_extension2
, NULL
);
265 g_assert_false(has_extension2
);
267 g_object_set(adim
, "has-extension2", TRUE
, NULL
);
268 g_object_get(adim
, "has-extension2", &has_extension2
, NULL
);
269 g_assert_true(has_extension2
);
271 adg_entity_destroy(ADG_ENTITY(adim
));
276 main(int argc
, char *argv
[])
278 adg_test_init(&argc
, &argv
);
280 adg_test_add_object_checks("/adg/adim/type/object", ADG_TYPE_ADIM
);
281 adg_test_add_entity_checks("/adg/adim/type/entity", ADG_TYPE_ADIM
);
283 adg_test_add_global_space_checks("/adg/adim/behavior/global-space",
284 adg_adim_new_full_explicit(1, 2, 3, 4,
287 adg_test_add_local_space_checks("/adg/adim/behavior/local-space",
288 adg_adim_new_full_explicit(4, 3, 2, 1,
292 g_test_add_func("/adg/adim/property/dim-dress", _adg_property_dim_dress
);
293 g_test_add_func("/adg/adim/property/org1", _adg_property_org1
);
294 g_test_add_func("/adg/adim/property/org2", _adg_property_org2
);
295 g_test_add_func("/adg/adim/property/has-extension1", _adg_property_has_extension1
);
296 g_test_add_func("/adg/adim/property/has-extension2", _adg_property_has_extension2
);