11 #include "testing/testing.h"
15 TEST(udim, image_ensure_tile_token)
17 auto verify = [](
const char *original,
const char *expected) {
22 EXPECT_STREQ(
result, expected);
26 verify(
"test.<UDIM>.png",
"test.<UDIM>.png");
27 verify(
"test.<UVTILE>.png",
"test.<UVTILE>.png");
30 verify(
"test.1002.png",
"test.<UDIM>.png");
31 verify(
"test-1002-ao.png",
"test-<UDIM>-ao.png");
32 verify(
"test_1002_ao.png",
"test_<UDIM>_ao.png");
33 verify(
"test.1002.ver0023.png",
"test.<UDIM>.ver0023.png");
34 verify(
"test.ver0023.1002.png",
"test.ver0023.<UDIM>.png");
35 verify(
"test.1002.1.png",
"test.<UDIM>.1.png");
36 verify(
"test.1.1002.png",
"test.1.<UDIM>.png");
37 verify(
"test-2022-01-01.1002.png",
"test-2022-01-01.<UDIM>.png");
38 verify(
"1111_11.1002.png",
"1111_11.<UDIM>.png");
39 verify(
"2111_01.1002.png",
"2111_01.<UDIM>.png");
40 verify(
"2022_1002_100200.1002.png",
"2022_1002_100200.<UDIM>.png");
43 verify(
"uv-test.u2_v10.png",
"uv-test.<UVTILE>.png");
44 verify(
"uv-test-u2_v10-ao.png",
"uv-test-<UVTILE>-ao.png");
45 verify(
"uv-test_u2_v10_ao.png",
"uv-test_<UVTILE>_ao.png");
46 verify(
"uv-test.u10_v100.png",
"uv-test.<UVTILE>.png");
47 verify(
"u_v-test.u2_v10.png",
"u_v-test.<UVTILE>.png");
48 verify(
"u2_v10uv-test.png",
"<UVTILE>uv-test.png");
49 verify(
"u2_v10u_v-test.png",
"<UVTILE>u_v-test.png");
52 for (
const char *incorrect : {
"1002.png",
69 "test.u1_v12345.png"}) {
71 verify(incorrect, incorrect);
75 TEST(udim, image_get_tile_strformat)
98 EXPECT_STREQ(udim_pattern,
"test.%d.png");
103 EXPECT_STREQ(udim_pattern,
"test.u%d_v%d.png");
107 TEST(udim, image_get_tile_number_from_filepath)
115 EXPECT_NE(udim_pattern,
nullptr);
121 "test.1004.png",
nullptr, tile_format, &tile_number));
125 "test.1004.png", udim_pattern, tile_format,
nullptr));
129 "test.1004.png", udim_pattern, tile_format, &tile_number));
133 "has_no_number.png", udim_pattern, tile_format, &tile_number));
135 "test.X.png", udim_pattern, tile_format, &tile_number));
137 "wrong.1004.png", udim_pattern, tile_format, &tile_number));
144 EXPECT_NE(udim_pattern,
nullptr);
147 "test.u2_v2.png", udim_pattern, tile_format, &tile_number));
151 "has_no_number.png", udim_pattern, tile_format, &tile_number));
153 "test.u1_vX.png", udim_pattern, tile_format, &tile_number));
155 "test.uX_v1.png", udim_pattern, tile_format, &tile_number));
157 "wrong.u2_v2.png", udim_pattern, tile_format, &tile_number));
162 TEST(udim, image_set_filepath_from_tile_number)
169 EXPECT_NE(udim_pattern,
nullptr);
178 EXPECT_STREQ(filepath,
"xxxx");
180 EXPECT_STREQ(filepath,
"xxxx");
184 EXPECT_STREQ(filepath,
"test.1028.png");
190 EXPECT_NE(udim_pattern,
nullptr);
193 EXPECT_STREQ(filepath,
"test.u8_v3.png");
@ UDIM_TILE_FORMAT_UVTILE
void BKE_image_set_filepath_from_tile_number(char *filepath, const char *pattern, eUDIM_TILE_FORMAT tile_format, int tile_number)
bool BKE_image_get_tile_number_from_filepath(const char *filepath, const char *pattern, eUDIM_TILE_FORMAT tile_format, int *r_tile_number)
void BKE_image_ensure_tile_token(char *filename)
char * BKE_image_get_tile_strformat(const char *filepath, eUDIM_TILE_FORMAT *r_tile_format)
EXPECT_EQ(BLI_expr_pylike_eval(expr, nullptr, 0, &result), EXPR_PYLIKE_INVALID)
char * BLI_strncpy(char *__restrict dst, const char *__restrict src, size_t maxncpy) ATTR_NONNULL()
Read Guarded memory(de)allocation.
void(* MEM_freeN)(void *vmemh)
TEST(action_groups, ReconstructGroupsWithReordering)