1 /* ADG - Automatic Drawing Generation
2 * Copyright (C) 2010 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.
21 #include "test-internal.h"
25 _adg_test_axis_dress(void)
27 AdgProjection
*projection
;
28 AdgDress valid_dress_1
, valid_dress_2
, incompatible_dress
;
31 projection
= adg_projection_new(ADG_PROJECTION_FIRST_ANGLE
);
32 valid_dress_1
= ADG_DRESS_LINE_THICKER
;
33 valid_dress_2
= ADG_DRESS_LINE_GRID
;
34 incompatible_dress
= ADG_DRESS_COLOR_STROKE
;
36 /* Using the public APIs */
37 adg_projection_set_axis_dress(projection
, valid_dress_1
);
38 axis_dress
= adg_projection_get_axis_dress(projection
);
39 g_assert_cmpint(axis_dress
, ==, valid_dress_1
);
41 adg_projection_set_axis_dress(projection
, incompatible_dress
);
42 axis_dress
= adg_projection_get_axis_dress(projection
);
43 g_assert_cmpint(axis_dress
, ==, valid_dress_1
);
45 adg_projection_set_axis_dress(projection
, valid_dress_2
);
46 axis_dress
= adg_projection_get_axis_dress(projection
);
47 g_assert_cmpint(axis_dress
, ==, valid_dress_2
);
49 /* Using GObject property methods */
50 g_object_set(projection
, "axis-dress", valid_dress_1
, NULL
);
51 g_object_get(projection
, "axis-dress", &axis_dress
, NULL
);
52 g_assert_cmpint(axis_dress
, ==, valid_dress_1
);
54 g_object_set(projection
, "axis-dress", incompatible_dress
, NULL
);
55 g_object_get(projection
, "axis-dress", &axis_dress
, NULL
);
56 g_assert_cmpint(axis_dress
, ==, valid_dress_1
);
58 g_object_set(projection
, "axis-dress", valid_dress_2
, NULL
);
59 g_object_get(projection
, "axis-dress", &axis_dress
, NULL
);
60 g_assert_cmpint(axis_dress
, ==, valid_dress_2
);
62 g_object_unref(projection
);
66 _adg_test_scheme(void)
68 AdgProjection
*projection
;
69 AdgProjectionScheme valid_scheme_1
, valid_scheme_2
, invalid_scheme
;
70 AdgProjectionScheme scheme
;
72 projection
= adg_projection_new(G_MAXINT
);
73 valid_scheme_1
= ADG_PROJECTION_THIRD_ANGLE
;
74 valid_scheme_2
= ADG_PROJECTION_UNDEFINED
;
75 invalid_scheme
= G_MININT
;
77 /* Using the public APIs */
78 adg_projection_set_scheme(projection
, valid_scheme_1
);
79 scheme
= adg_projection_get_scheme(projection
);
80 g_assert_cmpint(scheme
, ==, valid_scheme_1
);
82 adg_projection_set_scheme(projection
, invalid_scheme
);
83 scheme
= adg_projection_get_scheme(projection
);
84 g_assert_cmpint(scheme
, ==, valid_scheme_1
);
86 adg_projection_set_scheme(projection
, valid_scheme_2
);
87 scheme
= adg_projection_get_scheme(projection
);
88 g_assert_cmpint(scheme
, ==, valid_scheme_2
);
90 /* Using GObject property methods */
91 g_object_set(projection
, "scheme", valid_scheme_1
, NULL
);
92 g_object_get(projection
, "scheme", &scheme
, NULL
);
93 g_assert_cmpint(scheme
, ==, valid_scheme_1
);
95 g_object_set(projection
, "scheme", invalid_scheme
, NULL
);
96 g_object_get(projection
, "scheme", &scheme
, NULL
);
97 g_assert_cmpint(scheme
, ==, valid_scheme_1
);
99 g_object_set(projection
, "scheme", valid_scheme_2
, NULL
);
100 g_object_get(projection
, "scheme", &scheme
, NULL
);
101 g_assert_cmpint(scheme
, ==, valid_scheme_2
);
103 g_object_unref(projection
);
107 _adg_test_symbol_dress(void)
109 AdgProjection
*projection
;
110 AdgDress valid_dress_1
, valid_dress_2
, incompatible_dress
;
111 AdgDress symbol_dress
;
113 projection
= adg_projection_new(ADG_PROJECTION_UNDEFINED
);
114 valid_dress_1
= ADG_DRESS_LINE
;
115 valid_dress_2
= ADG_DRESS_LINE_MEDIUM
;
116 incompatible_dress
= ADG_DRESS_COLOR_DIMENSION
;
118 /* Using the public APIs */
119 adg_projection_set_symbol_dress(projection
, valid_dress_1
);
120 symbol_dress
= adg_projection_get_symbol_dress(projection
);
121 g_assert_cmpint(symbol_dress
, ==, valid_dress_1
);
123 adg_projection_set_symbol_dress(projection
, incompatible_dress
);
124 symbol_dress
= adg_projection_get_symbol_dress(projection
);
125 g_assert_cmpint(symbol_dress
, ==, valid_dress_1
);
127 adg_projection_set_symbol_dress(projection
, valid_dress_2
);
128 symbol_dress
= adg_projection_get_symbol_dress(projection
);
129 g_assert_cmpint(symbol_dress
, ==, valid_dress_2
);
131 /* Using GObject property methods */
132 g_object_set(projection
, "symbol-dress", valid_dress_1
, NULL
);
133 g_object_get(projection
, "symbol-dress", &symbol_dress
, NULL
);
134 g_assert_cmpint(symbol_dress
, ==, valid_dress_1
);
136 g_object_set(projection
, "symbol-dress", incompatible_dress
, NULL
);
137 g_object_get(projection
, "symbol-dress", &symbol_dress
, NULL
);
138 g_assert_cmpint(symbol_dress
, ==, valid_dress_1
);
140 g_object_set(projection
, "symbol-dress", valid_dress_2
, NULL
);
141 g_object_get(projection
, "symbol-dress", &symbol_dress
, NULL
);
142 g_assert_cmpint(symbol_dress
, ==, valid_dress_2
);
144 g_object_unref(projection
);
149 main(int argc
, char *argv
[])
151 adg_test_init(&argc
, &argv
);
153 adg_test_add_func("/adg/projection/axis-dress", _adg_test_axis_dress
);
154 adg_test_add_func("/adg/projection/scheme", _adg_test_scheme
);
155 adg_test_add_func("/adg/projection/symbol-dress", _adg_test_symbol_dress
);