DEF_TEST(ColorSpaceWriteICC, r) { // Test writing a new ICC profile sk_sp<SkColorSpace> namedColorSpace = SkColorSpace::NewNamed(SkColorSpace::kSRGB_Named); sk_sp<SkData> namedData = as_CSB(namedColorSpace)->writeToICC(); sk_sp<SkColorSpace> iccColorSpace = SkColorSpace::NewICC(namedData->data(), namedData->size()); test_space(r, iccColorSpace.get(), g_sRGB_XYZ, &g_sRGB_XYZ[3], &g_sRGB_XYZ[6], SkColorSpace::k2Dot2Curve_GammaNamed); // FIXME (msarett): Test disabled. sRGB profiles are written approximately as 2.2f curves. // REPORTER_ASSERT(r, iccColorSpace == namedColorSpace); // Test saving the original ICC data sk_sp<SkData> monitorData = SkData::MakeFromFileName( GetResourcePath("monitor_profiles/HP_ZR30w.icc").c_str()); REPORTER_ASSERT(r, monitorData); if (!monitorData) { return; } sk_sp<SkColorSpace> monitorSpace = SkColorSpace::NewICC(monitorData->data(), monitorData->size()); sk_sp<SkData> newMonitorData = as_CSB(monitorSpace)->writeToICC(); sk_sp<SkColorSpace> newMonitorSpace = SkColorSpace::NewICC(newMonitorData->data(), newMonitorData->size()); REPORTER_ASSERT(r, monitorSpace->xyz() == newMonitorSpace->xyz()); REPORTER_ASSERT(r, monitorSpace->gammaNamed() == newMonitorSpace->gammaNamed()); }
void run() { test_empty(); test_space(); test_alpha(); test_alpha_bravo(); test_escape_quote(); test_escape_reverse_solidus(); test_escape_solidus(); test_escape_backspace(); test_escape_formfeed(); test_escape_newline(); test_escape_carriage_return(); test_escape_tab(); test_escape_unicode_one(); test_escape_unicode_a(); test_escape_unicode_0123(); test_escape_unicode_4567(); test_escape_unicode_89AB(); test_escape_unicode_CDEF(); fail_escape_unicode_missing_one(); fail_escape_unicode_missing_two(); fail_escape_unicode_missing_three(); fail_escape_unicode_missing_four(); fail_escape_unicode_eof(); fail_escape_unicode_eof_one(); fail_escape_unicode_eof_two(); fail_escape_unicode_eof_three(); fail_escape_unicode_eof_four(); fail_escape(); fail_begin(); fail_as_int(); fail_as_float(); }
int add_room(t_lem_env *env, char *s) { int i; if (test_space(s)) exit(ft_putstr("DSL: room sans space pour visu_hex\n")); i = ft_strlen(s); while (--i >= 0 && env->tmp != 2) { if (s[i] == ' ') env->tmp += 1; } i++; if (env->nbroom == 0) { env->str = ft_strjoin(ft_strsub(s, 0, i), "\n"); env->nbroom += 1; coord(s, i, env); } else { if (add_room2(env, s, i) == 0) return (0); } env->tmp = 0; return (1); }
int main(void) { test_printf(); test_output(); test_space(); test_no_placeholder(); test_default_out(); test_custom_type(); test_follower(); return 0; }
static void test_path(skiatest::Reporter* r, const char* path, const float red[], const float green[], const float blue[], bool expectSRGB = false) { std::unique_ptr<SkStream> stream(GetResourceAsStream(path)); REPORTER_ASSERT(r, nullptr != stream); if (!stream) { return; } std::unique_ptr<SkCodec> codec(SkCodec::MakeFromStream(std::move(stream))); REPORTER_ASSERT(r, nullptr != codec); if (!codec) { return; } auto colorSpace = codec->getInfo().refColorSpace(); test_space(r, colorSpace.get(), red, green, blue, expectSRGB); }
DEF_TEST(ColorSpaceParsePngICCProfile, r) { SkAutoTDelete<SkStream> stream(resource("color_wheel_with_profile.png")); REPORTER_ASSERT(r, nullptr != stream); if (!stream) { return; } SkAutoTDelete<SkCodec> codec(SkCodec::NewFromStream(stream.release())); REPORTER_ASSERT(r, nullptr != codec); #if (PNG_LIBPNG_VER_MAJOR > 1) || (PNG_LIBPNG_VER_MAJOR == 1 && PNG_LIBPNG_VER_MINOR >= 6) SkColorSpace* colorSpace = codec->getColorSpace(); REPORTER_ASSERT(r, nullptr != colorSpace); test_space(r, colorSpace, &g_sRGB_XYZ[0], &g_sRGB_XYZ[3], &g_sRGB_XYZ[6], SkColorSpace::kSRGB_GammaNamed); #endif }
DEF_TEST(ColorSpaceParseJpegICCProfile, r) { SkAutoTDelete<SkStream> stream(resource("icc-v2-gbr.jpg")); REPORTER_ASSERT(r, nullptr != stream); if (!stream) { return; } SkAutoTDelete<SkCodec> codec(SkCodec::NewFromStream(stream.release())); REPORTER_ASSERT(r, nullptr != codec); if (!codec) { return; } SkColorSpace* colorSpace = codec->getColorSpace(); REPORTER_ASSERT(r, nullptr != colorSpace); const float red[] = { 0.385117f, 0.716904f, 0.0970612f }; const float green[] = { 0.143051f, 0.0606079f, 0.713913f }; const float blue[] = { 0.436035f, 0.222488f, 0.013916f }; test_space(r, colorSpace, red, green, blue, SkColorSpace::k2Dot2Curve_GammaNamed); }
DEF_TEST(ColorSpace_sRGB, r) { test_space(r, sk_srgb_singleton(), g_sRGB_R, g_sRGB_G, g_sRGB_B, true); }
DEF_TEST(ColorSpace_sRGB, r) { test_space(r, SkColorSpace::NewNamed(SkColorSpace::kSRGB_Named).get(), g_sRGB_XYZ, &g_sRGB_XYZ[3], &g_sRGB_XYZ[6], SkColorSpace::kSRGB_GammaNamed); }