36 #include "visir_recipes_test.h"
38 #include <irplib_utils.h>
47 static cpl_error_code visir_util_clip_test_one_fill_frameset(cpl_frameset *);
48 static cpl_error_code visir_util_clip_test_one_save_imagelist(
const char *);
49 static cpl_error_code visir_util_clip_test_one_save_bpm(
const char *);
76 int (*recipe_create) (cpl_plugin *);
77 int (*recipe_exec ) (cpl_plugin *);
78 int (*recipe_deinit) (cpl_plugin *);
82 plugin = cpl_pluginlist_get_first(
self);
83 cpl_test_nonnull(plugin);
85 if (plugin == NULL)
return;
87 recipe_create = cpl_plugin_get_init(plugin);
88 cpl_test( recipe_create != NULL);
90 recipe_exec = cpl_plugin_get_exec(plugin);
91 cpl_test( recipe_exec != NULL);
93 recipe_deinit = cpl_plugin_get_deinit(plugin);
94 cpl_test( recipe_deinit != NULL);
97 cpl_test_eq(cpl_plugin_get_type(plugin), CPL_PLUGIN_TYPE_RECIPE);
99 if (cpl_plugin_get_type(plugin) != CPL_PLUGIN_TYPE_RECIPE)
return;
101 cpl_test_zero(recipe_create(plugin));
103 recipe = (cpl_recipe *) plugin;
105 cpl_test_nonnull( recipe->parameters );
107 recipe->frames = cpl_frameset_new();
109 error = visir_util_clip_test_one_fill_frameset(recipe->frames);
110 cpl_test_eq_error(error, CPL_ERROR_NONE);
112 error = recipe_exec(plugin);
114 cpl_test_eq_error(error, CPL_ERROR_NONE);
116 cpl_frameset_delete(recipe->frames);
118 error = recipe_deinit(plugin);
119 cpl_test_eq_error(error, CPL_ERROR_NONE);
127 cpl_error_code visir_util_clip_test_one_fill_frameset(cpl_frameset *
self)
130 cpl_frame * frame = cpl_frame_new();
131 const char * filename =
"visir_util_clip_one.fits";
132 const char * bpmname =
"visir_util_clip_one_bpm.fits";
134 bug_if(
self == NULL);
136 bug_if(visir_util_clip_test_one_save_imagelist(filename));
137 bug_if(visir_util_clip_test_one_save_bpm(bpmname));
139 bug_if(cpl_frame_set_filename(frame, filename));
140 bug_if(cpl_frame_set_tag(frame,
"RAW"));
142 bug_if(cpl_frameset_insert(
self, frame));
144 frame = cpl_frame_new();
146 bug_if(cpl_frame_set_filename(frame, bpmname));
147 bug_if(cpl_frame_set_tag(frame,
"BPM"));
149 bug_if(cpl_frameset_insert(
self, frame));
154 cpl_frame_delete(frame);
156 return cpl_error_get_code();
162 cpl_error_code visir_util_clip_test_one_save_imagelist(
const char * filename)
165 cpl_image * image = cpl_image_new(1, 1, CPL_TYPE_FLOAT);
168 skip_if(cpl_propertylist_save(NULL, filename, CPL_IO_CREATE));
170 for (i = 0; i < 300; i++) {
175 const double x = 3.0 * (i - 135) / 135.0;
176 value = 1.0 / (CPL_MATH_SQRT2PI * exp(x * x / 2.0));
178 bug_if(cpl_image_set(image, 1, 1, value));
180 skip_if(cpl_image_save(image, filename, CPL_TYPE_FLOAT, NULL,
186 cpl_image_delete(image);
188 return cpl_error_get_code();
194 cpl_error_code visir_util_clip_test_one_save_bpm(
const char * filename)
197 cpl_image * image = cpl_image_new(1, 1, CPL_TYPE_INT);
200 skip_if(cpl_propertylist_save(NULL, filename, CPL_IO_CREATE));
202 for (i = 0; i < 300; i++) {
204 skip_if(cpl_image_save(image, filename, CPL_TYPE_FLOAT, NULL,
210 cpl_image_delete(image);
212 return cpl_error_get_code();
void visir_util_clip_test_one(cpl_pluginlist *self)
Find a plugin and submit it to some tests.