// unittest for set_exposure_target #include "ae_gray_test.h" #include #include #include #include "common/util.h" #include "selfdrive/camerad/cameras/camera_common.h" int main() { // set up fake camerabuf CameraBuf cb = {}; VisionBuf vb = {}; uint8_t * fb_y = new uint8_t[W*H]; vb.y = fb_y; cb.cur_yuv_buf = &vb; cb.rgb_width = W; cb.rgb_height = H; printf("AE test patterns %dx%d\n", cb.rgb_width, cb.rgb_height); // mix of 5 tones uint8_t l[5] = {0, 24, 48, 96, 235}; // 235 is yuv max bool passed = true; float rtol = 0.05; // generate pattern and calculate EV int cnt = 0; for (int i_0=0; i_0 rtol*evgt) { passed = false; } // report printf("%d/%d/%d/%d/%d: ev %f, gt %f, err %f\n", h_0, h_1, h_2, h_3, h_4, ev, evgt, fabs(ev - evgt) / (evgt != 0 ? evgt : 0.00001f)); cnt++; } } } } assert(passed); delete[] fb_y; return 0; }