Mercurial > hg > orthanc-stone
annotate UnitTestsSources/PixelTestPatternsTests.cpp @ 1327:4f8db2d202c8 broker
OrthancSeriesProgressiveLoader now has two modes that
can be selected at object creation :
- progressive (will first load jpeg50, then jpeg90 then PAM)
- non-progressive (will directly load PAM (uncompressed))
Please note that the slice loading order remains dynamic
and depending upon the slice that the client code wishes
to extract from the volume.
author | Benjamin Golinvaux <bgo@osimis.io> |
---|---|
date | Wed, 25 Mar 2020 14:34:27 +0100 |
parents | 8a0a62189f46 |
children | 30deba7bc8e2 |
rev | line source |
---|---|
1275
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
1 /** |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
2 * Stone of Orthanc |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
3 * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
4 * Department, University Hospital of Liege, Belgium |
1282 | 5 * Copyright (C) 2017-2020 Osimis S.A., Belgium |
1275
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
6 * |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
7 * This program is free software: you can redistribute it and/or |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
8 * modify it under the terms of the GNU Affero General Public License |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
9 * as published by the Free Software Foundation, either version 3 of |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
10 * the License, or (at your option) any later version. |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
11 * |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
12 * This program is distributed in the hope that it will be useful, but |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
13 * WITHOUT ANY WARRANTY; without even the implied warranty of |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
15 * Affero General Public License for more details. |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
16 * |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
17 * You should have received a copy of the GNU Affero General Public License |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
18 * along with this program. If not, see <http://www.gnu.org/licenses/>. |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
19 **/ |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
20 |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
21 #include <Core/Images/Image.h> |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
22 #include <Core/Images/PngWriter.h> |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
23 #include <Framework/Toolbox/PixelTestPatterns.h> |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
24 |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
25 #include <boost/chrono.hpp> |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
26 #include <boost/lexical_cast.hpp> |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
27 |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
28 #include "gtest/gtest.h" |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
29 |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
30 #include "stdint.h" |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
31 |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
32 #include <cmath> |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
33 |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
34 /* Autogenerated from prout.png */ |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
35 static const unsigned char bin2c_SimpleRedBlueHGradient_png[391] = "\211PNG\15\12\32\12\0\0\0\15IHDR\0\0\0\200\0\0\0\200\10\6\0\0\0\303>a\313\0\0\1MIDATx\234\355\322\1\15\3000\0\303\260~\3741o\7\342X\12\203|o{wgev\26Z\3\340\32\0\327\0\270\6\3005\0\256\1p\15\200k\0\\\3\340\32\0\327\0\270\6\3005\0\256\1p\15\200k\0\\\3\340\32\0\327\0\270\6\3005\0\256\1p\15\200k\0\\\3\340\32\0\327\0\270\6\3005\0\256\1p\15\200k\0\\\3\340\32\0\327\0\270\6\3005\0\256\1p\15\200k\0\\\3\340\32\0\327\0\270\6\3005\0\256\1p\15\200k\0\\\3\340\32\0\327\0\270\6\3005\0\256\1p\15\200k\0\\\3\340\32\0\327\0\270\6\3005\0\256\1p\15\200k\0\\\3\340\32\0\327\0\270\6\3005\0\256\1p\15\200k\0\\\3\340\32\0\327\0\270\6\3005\0\256\1p\15\200k\0\\\3\340\32\0\327\0\270\6\3005\0\256\1p\15\200k\0\\\3\340\32\0\327\0\270\6\3005\0\256\1p\15\200k\0\\\3\340\32\0\327\0\270\6\3005\0\256\1p\15\200k\0\\\3\340\32\0\327\0\270\6\3005\0\256\1p\15\200k\0\\\3\340\32\0\327\0\270\6\3005\0\256\1p\15\200k\0\\\3\340\32\0\327\0\270\6\3005\0\256\1p?\314\262\201\3760\355r\262\0\0\0\0IEND\256B`\202"; |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
36 |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
37 TEST(PixelTestPatterns, SimpleRedHGradient) |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
38 { |
1298
8a0a62189f46
replacing std::auto_ptr by std::unique_ptr
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1282
diff
changeset
|
39 std::unique_ptr<Orthanc::Image> texture; |
1275
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
40 |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
41 texture.reset(new Orthanc::Image( |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
42 Orthanc::PixelFormat_RGBA32, |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
43 128, |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
44 128, |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
45 /*forceMinimalPitch*/false)); |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
46 |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
47 Orthanc::ImageAccessor target; |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
48 texture->GetWriteableAccessor(target); |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
49 |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
50 OrthancStone::PixelTestPatterns::fillWithHGradient(target,255,0,0,0,0,255); |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
51 |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
52 Orthanc::PngWriter writer; |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
53 #if 0 |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
54 writer.WriteToFile("SimpleRedBlueHGradient.png", *texture); |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
55 #else |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
56 std::string contents; |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
57 writer.WriteToMemory(contents, *texture); |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
58 |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
59 ASSERT_EQ(1u, sizeof(unsigned char)); |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
60 ASSERT_EQ(391u, sizeof(bin2c_SimpleRedBlueHGradient_png)); |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
61 ASSERT_EQ(390u, contents.size()); |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
62 |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
63 char* resultPngBytes = &(contents[0]); |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
64 |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
65 int result = memcmp(resultPngBytes, bin2c_SimpleRedBlueHGradient_png, 390); |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
66 ASSERT_EQ(0, result); |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
67 #endif |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
68 } |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
69 |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
70 static const unsigned char bin2c_SimpleRedBlueVGradient_png[400] = "\211PNG\15\12\32\12\0\0\0\15IHDR\0\0\0\200\0\0\0\200\10\6\0\0\0\303>a\313\0\0\1VIDATx\234\355\322A\21\3000\14\300\260t7\376\220\327\301\310\303\22\2?|\356\314\35\262\336o\236\355\6\26\31 \316\0q\6\2103@\234\1\342\14\20g\2008\3\304\31 \316\0q\6\2103@\234\1\342\14\20g\2008\3\304\31 \316\0q\6\2103@\234\1\342\14\20g\2008\3\304\31 \316\0q\6\2103@\234\1\342\14\20g\2008\3\304\31 \316\0q\6\2103@\234\1\342\14\20g\2008\3\304\31 \316\0q\6\2103@\234\1\342\14\20g\2008\3\304\31 \316\0q\6\2103@\234\1\342\14\20g\2008\3\304\31 \316\0q\6\2103@\234\1\342\14\20g\2008\3\304\31 \316\0q\6\2103@\234\1\342\14\20g\2008\3\304\31 \316\0q\6\2103@\234\1\342\14\20g\2008\3\304\31 \316\0q\6\2103@\234\1\342\14\20g\2008\3\304\31 \316\0q\6\2103@\234\1\342\14\20g\2008\3\304\31 \316\0q\6\2103@\234\1\342\14\20g\2008\3\304\31 \316\0q\6\2103@\234\1\342\14\20g\2008\3\304\31 \316\0q\6\2103@\234\1\342\14\20g\2008\3\304\31 \316\0q\6\2103@\234\1\342\316\231\357nG\260\347\7\221\255\203\367~A)\36\0\0\0\0IEND\256B`\202"; |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
71 |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
72 |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
73 TEST(PixelTestPatterns, SimpleRedBlueVGradient) |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
74 { |
1298
8a0a62189f46
replacing std::auto_ptr by std::unique_ptr
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1282
diff
changeset
|
75 std::unique_ptr<Orthanc::Image> texture; |
1275
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
76 |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
77 texture.reset(new Orthanc::Image( |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
78 Orthanc::PixelFormat_RGBA32, |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
79 128, |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
80 128, |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
81 /*forceMinimalPitch*/false)); |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
82 |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
83 Orthanc::ImageAccessor target; |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
84 texture->GetWriteableAccessor(target); |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
85 |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
86 OrthancStone::PixelTestPatterns::fillWithVGradient(target, 255, 0, 0, 0, 0, 255); |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
87 |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
88 Orthanc::PngWriter writer; |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
89 #if 0 |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
90 writer.WriteToFile("SimpleRedBlueVGradient.png", *texture); |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
91 #else |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
92 std::string contents; |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
93 writer.WriteToMemory(contents, *texture); |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
94 |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
95 ASSERT_EQ(1u, sizeof(unsigned char)); |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
96 ASSERT_EQ(400u, sizeof(bin2c_SimpleRedBlueVGradient_png)); |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
97 ASSERT_EQ(399u, contents.size()); |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
98 |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
99 char* resultPngBytes = &(contents[0]); |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
100 |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
101 int result = memcmp(resultPngBytes, bin2c_SimpleRedBlueVGradient_png, 399); |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
102 ASSERT_EQ(0, result); |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
103 #endif |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
104 } |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
105 |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
106 |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
107 /* Autogenerated from MultiGradient.png */ |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
108 static const unsigned char bin2c_MultiGradient_png[774] = "\211PNG\15\12\32\12\0\0\0\15IHDR\0\0\1\0\0\0\0\200\10\6\0\0\0\344\265\267\12\0\0\2\314IDATx\234\355\325\301\11\3030\24\5\301/\242\376+6(E$ \314\354\30\337\215\364X\2573s\6\266\316\314\226\237\365\271}\5\227\255\331{\273\357s\373\374sY\13\220\25\0^\13\220\25\0^\13\220\25\0^\13\220\25\0^\13\220\25\0^\13\220\25\0^\13\220\25\0^\13\220\25\0^\13\220\25\0^\13\220\25\0^\13\220\25\0^\13\220\25\0^\13\220\25\0^\13\220\25\0^\13\220\25\0^\13\220\25\0^\13\220\25\0^\13\220\25\0^\13\220\25\0^\13\220\25\0^\13\220\25\0^\13\220\25\0^\13\220\25\0^\13\220\25\0^\13\220\25\0^\13\220\25\0^\13\220\25\0^\13\220\25\0^\13\220\25\0^\13\220\25\0^\13\220\25\0^\13\220\25\0^\13\220\25\0^\13\220\25\0^\13\220\25\0^\13\220\25\0^\13\220\25\0^\13\220\25\0^\13\220\25\0^\13\220\25\0^\13\220\25\0^\13\220\25\0^\13\220\25\0^\13\220\25\0^\13\220\25\0^\13\220\25\0^\13\220\25\0^\13\220\25\0^\13\220\25\0^\13\220\25\0^\13\220\25\0^\13\220\25\0^\13\220\25\0^\13\220\25\0^\13\220\25\0^\13\220\25\0^\13\220\25\0^\13\220\25\0^\13\220\25\0^\13\220\25\0^\13\220\25\0^\13\220\25\0^\13\220\2559\347\354\231Q\337\317\372\303)\276\331Ys\377\26\256.\340\3673|\261}\373\3n{\360?\240>\200\347\351\376i\5\300V\0pz\0t\5\0W\0l\5\0W\0l\5\0W\0l\5\0W\0l\5\0W\0l\5\0W\0l\5\0W\0l\5\0W\0l\5\0W\0l\5\0W\0l\5\0W\0l\5\0W\0l\5\0W\0l\5\0W\0l\5\0W\0l\5\0W\0l\5\0W\0l\5\0W\0l\5\0W\0l\5\0W\0l\5\0W\0l\5\0W\0l\5\0W\0l\5\0W\0l\5\0W\0l\5\0W\0l\5\0W\0l\5\0W\0l\5\0W\0l\5\0W\0l\5\0W\0l\5\0W\0l\5\0W\0l\5\0W\0l\5\0W\0l\5\0W\0l\5\0W\0l\5\0W\0l\5\0W\0l\5\0W\0l\5\0W\0l\5\0W\0l\5\0W\0l\5\0W\0l\5\0W\0l\5\0W\0l\5\0W\0l\5\0W\0l\5\0W\0l\5\0W\0l\5\0W\0l\5\0W\0l\5\0W\0l\5\0W\0l\5\0W\0l\5\0W\0l\5\0W\0l\5\0W\0l\5\0W\0l\5\0W\0lz\0\276!\352\302\35+U\244b\0\0\0\0IEND\256B`\202"; |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
109 |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
110 TEST(PixelTestPatterns, MultiGradient) |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
111 { |
1298
8a0a62189f46
replacing std::auto_ptr by std::unique_ptr
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1282
diff
changeset
|
112 std::unique_ptr<Orthanc::Image> texture; |
1275
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
113 |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
114 const int CELLW = 64; |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
115 const int CELLH = 64; |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
116 const int NHCELLS = 4; |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
117 const int NVCELLS = 2; |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
118 const int NCELLS = NHCELLS * NVCELLS; |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
119 |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
120 texture.reset(new Orthanc::Image( |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
121 Orthanc::PixelFormat_RGBA32, |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
122 NHCELLS * CELLW, |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
123 NVCELLS * CELLH, |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
124 /*forceMinimalPitch*/false)); |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
125 |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
126 // H:R->K, V:G->W, H:B->K |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
127 |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
128 // R G B K C M Y W |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
129 uint8_t startR[NCELLS] = {255,000,000,000,000,255,255,255}; |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
130 uint8_t startG[NCELLS] = {000,255,000,000,255,000,255,255}; |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
131 uint8_t startB[NCELLS] = {000,000,255,000,255,255,000,255}; |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
132 |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
133 // K W K W W K W K |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
134 uint8_t eeendR[NCELLS] = {000,255,000,255,255,000,255,000}; |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
135 uint8_t eeendG[NCELLS] = {000,255,000,255,255,000,255,000 }; |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
136 uint8_t eeendB[NCELLS] = {000,255,000,255,255,000,255,000 }; |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
137 |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
138 // vertical? |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
139 bool verticality[NCELLS] = { false,true,false,true,true,false,true,false }; |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
140 |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
141 for(size_t slot = 0; slot < NCELLS; ++slot) |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
142 { |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
143 int x0 = (slot % 4) * CELLW; |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
144 bool vertical = (((slot / NHCELLS) % 2) == 0) ? (slot % 2 == 0) : (slot % 2 == 1); |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
145 int y0 = static_cast<int>(slot / NHCELLS) * CELLH; |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
146 Orthanc::ImageAccessor target; |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
147 texture->GetRegion(target, x0, y0, CELLW, CELLH); |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
148 if (vertical) |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
149 OrthancStone::PixelTestPatterns::fillWithVGradient(target, startR[slot], startG[slot], startB[slot], eeendR[slot], eeendG[slot], eeendB[slot]); |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
150 else |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
151 OrthancStone::PixelTestPatterns::fillWithHGradient(target, startR[slot], startG[slot], startB[slot], eeendR[slot], eeendG[slot], eeendB[slot]); |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
152 } |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
153 |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
154 Orthanc::PngWriter writer; |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
155 #if 0 |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
156 writer.WriteToFile("MultiGradient.png", *texture); |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
157 #else |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
158 std::string contents; |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
159 writer.WriteToMemory(contents, *texture); |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
160 |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
161 ASSERT_EQ(1u, sizeof(unsigned char)); |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
162 ASSERT_EQ(774u, sizeof(bin2c_MultiGradient_png)); |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
163 ASSERT_EQ(773u, contents.size()); |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
164 |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
165 char* resultPngBytes = &(contents[0]); |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
166 |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
167 int result = memcmp(resultPngBytes, bin2c_MultiGradient_png, 773); |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
168 ASSERT_EQ(0, result); |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
169 #endif |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
170 } |
41d19fa749b7
Added PixelTestPattern class to debug invisible slice issues
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
171 |