43 #define DATA(...) { __VA_ARGS__ } 46 PIX ( pbm_ascii, &pnm_image_type,
48 "# This is an example bitmap of the letter \"J\"\n" 61 DATA ( 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0xffffff,
62 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0xffffff,
63 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0xffffff,
64 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0xffffff,
65 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0xffffff,
66 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0xffffff,
67 0x000000, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0xffffff,
68 0xffffff, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff,
69 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff,
70 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff ) );
73 PIX ( pgm_ascii, &pnm_image_type,
75 "# Shows the word \"FEEP\" (example from Netpbm man page on PGM)\n" 78 "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n" 79 "0 3 3 3 3 0 0 7 7 7 7 0 0 11 11 11 11 0 0 15 15 15 15 0\n" 80 "0 3 0 0 0 0 0 7 0 0 0 0 0 11 0 0 0 0 0 15 0 0 15 0\n" 81 "0 3 3 3 0 0 0 7 7 7 0 0 0 11 11 11 0 0 0 15 15 15 15 0\n" 82 "0 3 0 0 0 0 0 7 0 0 0 0 0 11 0 0 0 0 0 15 0 0 0 0\n" 83 "0 3 0 0 0 0 0 7 7 7 7 0 0 11 11 11 11 0 0 15 0 0 0 0\n" 84 "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n" 86 DATA ( 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
87 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
88 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
89 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
90 0x000000, 0x333333, 0x333333, 0x333333, 0x333333, 0x000000,
91 0x000000, 0x777777, 0x777777, 0x777777, 0x777777, 0x000000,
92 0x000000, 0xbbbbbb, 0xbbbbbb, 0xbbbbbb, 0xbbbbbb, 0x000000,
93 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000,
94 0x000000, 0x333333, 0x000000, 0x000000, 0x000000, 0x000000,
95 0x000000, 0x777777, 0x000000, 0x000000, 0x000000, 0x000000,
96 0x000000, 0xbbbbbb, 0x000000, 0x000000, 0x000000, 0x000000,
97 0x000000, 0xffffff, 0x000000, 0x000000, 0xffffff, 0x000000,
98 0x000000, 0x333333, 0x333333, 0x333333, 0x000000, 0x000000,
99 0x000000, 0x777777, 0x777777, 0x777777, 0x000000, 0x000000,
100 0x000000, 0xbbbbbb, 0xbbbbbb, 0xbbbbbb, 0x000000, 0x000000,
101 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000,
102 0x000000, 0x333333, 0x000000, 0x000000, 0x000000, 0x000000,
103 0x000000, 0x777777, 0x000000, 0x000000, 0x000000, 0x000000,
104 0x000000, 0xbbbbbb, 0x000000, 0x000000, 0x000000, 0x000000,
105 0x000000, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000,
106 0x000000, 0x333333, 0x000000, 0x000000, 0x000000, 0x000000,
107 0x000000, 0x777777, 0x777777, 0x777777, 0x777777, 0x000000,
108 0x000000, 0xbbbbbb, 0xbbbbbb, 0xbbbbbb, 0xbbbbbb, 0x000000,
109 0x000000, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000,
110 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
111 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
112 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
113 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000 ) );
116 PIX ( ppm_ascii, &pnm_image_type,
118 "# The P3 means colors are in ASCII, then 3 columns and 2 rows,\n" 119 "# then 255 for max color, then RGB triplets\n" 122 "255 0 0 0 255 0 0 0 255\n" 123 "255 255 0 255 255 255 0 0 0\n",
125 DATA ( 0xff0000, 0x00ff00, 0x0000ff, 0xffff00, 0xffffff, 0x000000 ) );
128 PIX ( pbm_ascii_no_space, &pnm_image_type,
135 DATA ( 0xffffff, 0xffffff, 0x000000, 0xffffff, 0x000000, 0xffffff,
136 0x000000, 0x000000, 0x000000 ) );
139 PIX ( pbm_binary, &pnm_image_type,
140 DATA ( 0x50, 0x34, 0x0a, 0x23, 0x20, 0x43, 0x52, 0x45, 0x41, 0x54, 0x4f,
141 0x52, 0x3a, 0x20, 0x47, 0x49, 0x4d, 0x50, 0x20, 0x50, 0x4e, 0x4d,
142 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x56, 0x65, 0x72,
143 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x31, 0x2e, 0x31, 0x0a, 0x36, 0x20,
144 0x31, 0x30, 0x0a, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x88, 0x70,
147 DATA ( 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0xffffff,
148 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0xffffff,
149 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0xffffff,
150 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0xffffff,
151 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0xffffff,
152 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0xffffff,
153 0x000000, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0xffffff,
154 0xffffff, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff,
155 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff,
156 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff ) );
159 PIX ( pgm_binary, &pnm_image_type,
160 DATA ( 0x50, 0x35, 0x0a, 0x32, 0x34, 0x20, 0x37, 0x0a, 0x31, 0x35, 0x0a,
161 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
162 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
163 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x07, 0x07,
164 0x07, 0x07, 0x00, 0x00, 0x0b, 0x0b, 0x0b, 0x0b, 0x00, 0x00, 0x0f,
165 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
166 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x00,
167 0x00, 0x0f, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x03, 0x03, 0x03, 0x00,
168 0x00, 0x00, 0x07, 0x07, 0x07, 0x00, 0x00, 0x00, 0x0b, 0x0b, 0x0b,
169 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x03, 0x00,
170 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b,
171 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00,
172 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, 0x07, 0x07, 0x00,
173 0x00, 0x0b, 0x0b, 0x0b, 0x0b, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00,
174 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
175 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
178 DATA ( 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
179 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
180 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
181 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
182 0x000000, 0x333333, 0x333333, 0x333333, 0x333333, 0x000000,
183 0x000000, 0x777777, 0x777777, 0x777777, 0x777777, 0x000000,
184 0x000000, 0xbbbbbb, 0xbbbbbb, 0xbbbbbb, 0xbbbbbb, 0x000000,
185 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000,
186 0x000000, 0x333333, 0x000000, 0x000000, 0x000000, 0x000000,
187 0x000000, 0x777777, 0x000000, 0x000000, 0x000000, 0x000000,
188 0x000000, 0xbbbbbb, 0x000000, 0x000000, 0x000000, 0x000000,
189 0x000000, 0xffffff, 0x000000, 0x000000, 0xffffff, 0x000000,
190 0x000000, 0x333333, 0x333333, 0x333333, 0x000000, 0x000000,
191 0x000000, 0x777777, 0x777777, 0x777777, 0x000000, 0x000000,
192 0x000000, 0xbbbbbb, 0xbbbbbb, 0xbbbbbb, 0x000000, 0x000000,
193 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000,
194 0x000000, 0x333333, 0x000000, 0x000000, 0x000000, 0x000000,
195 0x000000, 0x777777, 0x000000, 0x000000, 0x000000, 0x000000,
196 0x000000, 0xbbbbbb, 0x000000, 0x000000, 0x000000, 0x000000,
197 0x000000, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000,
198 0x000000, 0x333333, 0x000000, 0x000000, 0x000000, 0x000000,
199 0x000000, 0x777777, 0x777777, 0x777777, 0x777777, 0x000000,
200 0x000000, 0xbbbbbb, 0xbbbbbb, 0xbbbbbb, 0xbbbbbb, 0x000000,
201 0x000000, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000,
202 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
203 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
204 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
205 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000 ) );
208 PIX ( ppm_binary, &pnm_image_type,
209 DATA ( 0x50, 0x36, 0x0a, 0x33, 0x20, 0x32, 0x0a, 0x32, 0x35, 0x35, 0x0a,
210 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff,
211 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00 ),
213 DATA ( 0xff0000, 0x00ff00, 0x0000ff, 0xffff00, 0xffffff, 0x000000 ) );
Self-test infrastructure.
const char * name
Test set name.
#define DATA(...)
Define inline pixel data.
static void pnm_test_exec(void)
Perform PNM self-test.
PIX(pbm_ascii, &pnm_image_type, "P1\n" "# This is an example bitmap of the letter \"J\"\n" "6 10\n" "0 0 0 0 1 0\n" "0 0 0 0 1 0\n" "0 0 0 0 1 0\n" "0 0 0 0 1 0\n" "0 0 0 0 1 0\n" "0 0 0 0 1 0\n" "1 0 0 0 1 0\n" "0 1 1 1 0 0\n" "0 0 0 0 0 0\n" "0 0 0 0 0 0\n", 6, 10, DATA(0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0xffffff, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff))
PBM ASCII example (from Wikipedia)
#define pixbuf_ok(test)
Report pixel buffer test result.
FILE_LICENCE(GPL2_OR_LATER_OR_UBDL)
Portable anymap format (PNM)
struct self_test pnm_test __self_test
PNM self-test.