File: check_mode.c

package info (click to toggle)
libdng 0.2.2-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,476 kB
  • sloc: ansic: 3,130; sh: 157; makefile: 13; python: 8
file content (68 lines) | stat: -rw-r--r-- 1,818 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#include <stdbool.h>
#include "greatest.h"
#include "libdng.h"

#define R 0
#define G 1
#define B 2

static enum greatest_test_res
check_mode(const char *name, int depth, int cfa1, int cfa2, int cfa3, int cfa4, bool needs_repack)
{
	libdng_info info = {0};
	libdng_new(&info);
	libdng_set_mode_from_name(&info, name);
		ASSERT_EQ_FMTm("Bit depth", depth, info.bit_depth, "%d");
		ASSERT_EQ_FMTm("CFA1", cfa1, info.cfapattern[0], "%d");
		ASSERT_EQ_FMTm("CFA2", cfa2, info.cfapattern[1], "%d");
		ASSERT_EQ_FMTm("CFA3", cfa3, info.cfapattern[2], "%d");
		ASSERT_EQ_FMTm("CFA4", cfa4, info.cfapattern[3], "%d");
		ASSERT_EQ_FMTm("Repack", needs_repack, info.needs_repack, "%d");
		PASS();
}

TEST mode_from_name_8bit(void)
{
		CHECK_CALL(check_mode("RGGB", 8, R, G, G, B, false));
		CHECK_CALL(check_mode("BGGR", 8, B, G, G, R, false));
		CHECK_CALL(check_mode("GRBG", 8, G, R, B, G, false));
		CHECK_CALL(check_mode("GBRG", 8, G, B, R, G, false));
		PASS();
}

TEST mode_from_name_10bit(void)
{
		CHECK_CALL(check_mode("SRGGB10", 10, R, G, G, B, false));
		CHECK_CALL(check_mode("SBGGR10", 10, B, G, G, R, false));
		CHECK_CALL(check_mode("SGRBG10", 10, G, R, B, G, false));
		CHECK_CALL(check_mode("SGBRG10", 10, G, B, R, G, false));
		PASS();
}

TEST mode_from_name_10bit_packed(void)
{
		CHECK_CALL(check_mode("SRGGB10P", 10, R, G, G, B, true));
		CHECK_CALL(check_mode("SBGGR10P", 10, B, G, G, R, true));
		CHECK_CALL(check_mode("SGRBG10P", 10, G, R, B, G, true));
		CHECK_CALL(check_mode("SGBRG10P", 10, G, B, R, G, true));
		PASS();
}


SUITE (test_suite)
{
		RUN_TEST(mode_from_name_8bit);
		RUN_TEST(mode_from_name_10bit);
		RUN_TEST(mode_from_name_10bit_packed);
}

GREATEST_MAIN_DEFS();

int
main(int argc, char **argv)
{
	GREATEST_MAIN_BEGIN();
	libdng_init();
	RUN_SUITE(test_suite);
	GREATEST_MAIN_END();
}