From aae5684127a32e9bc74612d992aa8e0cae044363 Mon Sep 17 00:00:00 2001 From: Henry Schimke Date: Wed, 31 Aug 2022 13:32:56 -0500 Subject: [PATCH] moving aroudn test cases for integration --- .DS_Store | Bin 0 -> 6148 bytes java_test/.DS_Store | Bin 0 -> 6148 bytes java_test/java/.DS_Store | Bin 0 -> 6148 bytes java_test/java/com/.DS_Store | Bin 0 -> 6148 bytes java_test/java/com/google/.DS_Store | Bin 0 -> 6148 bytes java_test/java/com/google/zxing/.DS_Store | Bin 0 -> 6148 bytes .../java/com/google/zxing/aztec/.DS_Store | Bin 0 -> 6148 bytes .../java/com/google/zxing/client/.DS_Store | Bin 0 -> 6148 bytes .../java/com/google/zxing/common/.DS_Store | Bin 0 -> 6148 bytes .../com/google/zxing/datamatrix/.DS_Store | Bin 0 -> 6148 bytes .../java/com/google/zxing/multi/.DS_Store | Bin 0 -> 6148 bytes .../java/com/google/zxing/oned/.DS_Store | Bin 0 -> 6148 bytes .../java/com/google/zxing/oned/rss/.DS_Store | Bin 0 -> 6148 bytes .../google/zxing/oned/rss/expanded/.DS_Store | Bin 0 -> 6148 bytes .../java/com/google/zxing/pdf417/.DS_Store | Bin 0 -> 6148 bytes .../java/com/google/zxing/qrcode/.DS_Store | Bin 0 -> 6148 bytes src/.DS_Store | Bin 0 -> 6148 bytes src/common/.DS_Store | Bin 0 -> 6148 bytes src/common/AbstractBlackBoxTestCase.java | 357 ------------------ .../AbstractNegativeBlackBoxTestCase.java | 159 -------- tests/.DS_Store | Bin 0 -> 6148 bytes .../AztecBlackBox1TestCase.java | 0 .../AztecBlackBox2TestCase.java | 0 .../CodabarBlackBox1TestCase.java | 0 .../Code128BlackBox1TestCase.java | 0 .../Code128BlackBox2TestCase.java | 0 .../Code128BlackBox3TestCase.java | 0 .../Code39BlackBox1TestCase.java | 0 .../Code39BlackBox3TestCase.java | 0 .../Code39ExtendedBlackBox2TestCase.java | 0 .../Code39ExtendedModeTestCase.java | 0 .../Code93BlackBox1TestCase.java | 0 .../DataMatrixBlackBox1TestCase.java | 0 .../DataMatrixBlackBox2TestCase.java | 0 .../DataMatrixBlackBox3TestCase.java | 0 .../EAN13BlackBox1TestCase.java | 0 .../EAN13BlackBox2TestCase.java | 0 .../EAN13BlackBox3TestCase.java | 0 .../EAN13BlackBox4TestCase.java | 0 .../EAN13BlackBox5BlurryTestCase.java | 0 .../oned => tests}/EAN8BlackBox1TestCase.java | 0 .../oned => tests}/ITFBlackBox1TestCase.java | 0 .../oned => tests}/ITFBlackBox2TestCase.java | 0 .../MaxiCodeBlackBox1TestCase.java | 0 .../maxicode => tests}/Maxicode1TestCase.java | 0 .../PDF417BlackBox1TestCase.java | 0 .../PDF417BlackBox2TestCase.java | 0 .../PDF417BlackBox3TestCase.java | 0 .../PDF417BlackBox4TestCase.java | 0 .../QRCodeBlackBox1TestCase.java | 0 .../QRCodeBlackBox2TestCase.java | 0 .../QRCodeBlackBox3TestCase.java | 0 .../QRCodeBlackBox4TestCase.java | 0 .../QRCodeBlackBox5TestCase.java | 0 .../QRCodeBlackBox6TestCase.java | 0 .../rss => tests}/RSS14BlackBox1TestCase.java | 0 .../rss => tests}/RSS14BlackBox2TestCase.java | 0 .../RSSExpandedBlackBox1TestCase.java | 0 .../RSSExpandedBlackBox2TestCase.java | 0 .../RSSExpandedBlackBox3TestCase.java | 0 .../RSSExpandedStackedBlackBox1TestCase.java | 0 .../RSSExpandedStackedBlackBox2TestCase.java | 0 .../oned => tests}/UPCABlackBox1TestCase.java | 0 .../oned => tests}/UPCABlackBox2TestCase.java | 0 .../UPCABlackBox3ReflectiveTestCase.java | 0 .../oned => tests}/UPCABlackBox4TestCase.java | 0 .../oned => tests}/UPCABlackBox5TestCase.java | 0 .../UPCABlackBox6BlurryTestCase.java | 0 .../UPCEANExtensionBlackBox1TestCase.java | 0 .../oned => tests}/UPCEBlackBox1TestCase.java | 0 .../oned => tests}/UPCEBlackBox2TestCase.java | 0 .../UPCEBlackBox3ReflectiveTestCase.java | 0 .../common/AbstractBlackBoxTestCase.java | 0 .../AbstractNegativeBlackBoxTestCase.java | 0 {src => tests}/common/TestResult.java | 0 .../FalsePositives2BlackBoxTestCase.java | 0 .../FalsePositivesBlackBoxTestCase.java | 0 .../negative/PartialBlackBoxTestCase.java | 0 .../negative/UnsupportedBlackBoxTestCase.java | 0 79 files changed, 516 deletions(-) create mode 100644 .DS_Store create mode 100644 java_test/.DS_Store create mode 100644 java_test/java/.DS_Store create mode 100644 java_test/java/com/.DS_Store create mode 100644 java_test/java/com/google/.DS_Store create mode 100644 java_test/java/com/google/zxing/.DS_Store create mode 100644 java_test/java/com/google/zxing/aztec/.DS_Store create mode 100644 java_test/java/com/google/zxing/client/.DS_Store create mode 100644 java_test/java/com/google/zxing/common/.DS_Store create mode 100644 java_test/java/com/google/zxing/datamatrix/.DS_Store create mode 100644 java_test/java/com/google/zxing/multi/.DS_Store create mode 100644 java_test/java/com/google/zxing/oned/.DS_Store create mode 100644 java_test/java/com/google/zxing/oned/rss/.DS_Store create mode 100644 java_test/java/com/google/zxing/oned/rss/expanded/.DS_Store create mode 100644 java_test/java/com/google/zxing/pdf417/.DS_Store create mode 100644 java_test/java/com/google/zxing/qrcode/.DS_Store create mode 100644 src/.DS_Store create mode 100644 src/common/.DS_Store delete mode 100644 src/common/AbstractBlackBoxTestCase.java delete mode 100644 src/common/AbstractNegativeBlackBoxTestCase.java create mode 100644 tests/.DS_Store rename {java_test/java/com/google/zxing/aztec => tests}/AztecBlackBox1TestCase.java (100%) rename {java_test/java/com/google/zxing/aztec => tests}/AztecBlackBox2TestCase.java (100%) rename {java_test/java/com/google/zxing/oned => tests}/CodabarBlackBox1TestCase.java (100%) rename {java_test/java/com/google/zxing/oned => tests}/Code128BlackBox1TestCase.java (100%) rename {java_test/java/com/google/zxing/oned => tests}/Code128BlackBox2TestCase.java (100%) rename {java_test/java/com/google/zxing/oned => tests}/Code128BlackBox3TestCase.java (100%) rename {java_test/java/com/google/zxing/oned => tests}/Code39BlackBox1TestCase.java (100%) rename {java_test/java/com/google/zxing/oned => tests}/Code39BlackBox3TestCase.java (100%) rename {java_test/java/com/google/zxing/oned => tests}/Code39ExtendedBlackBox2TestCase.java (100%) rename {java_test/java/com/google/zxing/oned => tests}/Code39ExtendedModeTestCase.java (100%) rename {java_test/java/com/google/zxing/oned => tests}/Code93BlackBox1TestCase.java (100%) rename {java_test/java/com/google/zxing/datamatrix => tests}/DataMatrixBlackBox1TestCase.java (100%) rename {java_test/java/com/google/zxing/datamatrix => tests}/DataMatrixBlackBox2TestCase.java (100%) rename {java_test/java/com/google/zxing/datamatrix => tests}/DataMatrixBlackBox3TestCase.java (100%) rename {java_test/java/com/google/zxing/oned => tests}/EAN13BlackBox1TestCase.java (100%) rename {java_test/java/com/google/zxing/oned => tests}/EAN13BlackBox2TestCase.java (100%) rename {java_test/java/com/google/zxing/oned => tests}/EAN13BlackBox3TestCase.java (100%) rename {java_test/java/com/google/zxing/oned => tests}/EAN13BlackBox4TestCase.java (100%) rename {java_test/java/com/google/zxing/oned => tests}/EAN13BlackBox5BlurryTestCase.java (100%) rename {java_test/java/com/google/zxing/oned => tests}/EAN8BlackBox1TestCase.java (100%) rename {java_test/java/com/google/zxing/oned => tests}/ITFBlackBox1TestCase.java (100%) rename {java_test/java/com/google/zxing/oned => tests}/ITFBlackBox2TestCase.java (100%) rename {java_test/java/com/google/zxing/maxicode => tests}/MaxiCodeBlackBox1TestCase.java (100%) rename {java_test/java/com/google/zxing/maxicode => tests}/Maxicode1TestCase.java (100%) rename {java_test/java/com/google/zxing/pdf417 => tests}/PDF417BlackBox1TestCase.java (100%) rename {java_test/java/com/google/zxing/pdf417 => tests}/PDF417BlackBox2TestCase.java (100%) rename {java_test/java/com/google/zxing/pdf417 => tests}/PDF417BlackBox3TestCase.java (100%) rename {java_test/java/com/google/zxing/pdf417 => tests}/PDF417BlackBox4TestCase.java (100%) rename {java_test/java/com/google/zxing/qrcode => tests}/QRCodeBlackBox1TestCase.java (100%) rename {java_test/java/com/google/zxing/qrcode => tests}/QRCodeBlackBox2TestCase.java (100%) rename {java_test/java/com/google/zxing/qrcode => tests}/QRCodeBlackBox3TestCase.java (100%) rename {java_test/java/com/google/zxing/qrcode => tests}/QRCodeBlackBox4TestCase.java (100%) rename {java_test/java/com/google/zxing/qrcode => tests}/QRCodeBlackBox5TestCase.java (100%) rename {java_test/java/com/google/zxing/qrcode => tests}/QRCodeBlackBox6TestCase.java (100%) rename {java_test/java/com/google/zxing/oned/rss => tests}/RSS14BlackBox1TestCase.java (100%) rename {java_test/java/com/google/zxing/oned/rss => tests}/RSS14BlackBox2TestCase.java (100%) rename {java_test/java/com/google/zxing/oned/rss/expanded => tests}/RSSExpandedBlackBox1TestCase.java (100%) rename {java_test/java/com/google/zxing/oned/rss/expanded => tests}/RSSExpandedBlackBox2TestCase.java (100%) rename {java_test/java/com/google/zxing/oned/rss/expanded => tests}/RSSExpandedBlackBox3TestCase.java (100%) rename {java_test/java/com/google/zxing/oned/rss/expanded => tests}/RSSExpandedStackedBlackBox1TestCase.java (100%) rename {java_test/java/com/google/zxing/oned/rss/expanded => tests}/RSSExpandedStackedBlackBox2TestCase.java (100%) rename {java_test/java/com/google/zxing/oned => tests}/UPCABlackBox1TestCase.java (100%) rename {java_test/java/com/google/zxing/oned => tests}/UPCABlackBox2TestCase.java (100%) rename {java_test/java/com/google/zxing/oned => tests}/UPCABlackBox3ReflectiveTestCase.java (100%) rename {java_test/java/com/google/zxing/oned => tests}/UPCABlackBox4TestCase.java (100%) rename {java_test/java/com/google/zxing/oned => tests}/UPCABlackBox5TestCase.java (100%) rename {java_test/java/com/google/zxing/oned => tests}/UPCABlackBox6BlurryTestCase.java (100%) rename {java_test/java/com/google/zxing/oned => tests}/UPCEANExtensionBlackBox1TestCase.java (100%) rename {java_test/java/com/google/zxing/oned => tests}/UPCEBlackBox1TestCase.java (100%) rename {java_test/java/com/google/zxing/oned => tests}/UPCEBlackBox2TestCase.java (100%) rename {java_test/java/com/google/zxing/oned => tests}/UPCEBlackBox3ReflectiveTestCase.java (100%) rename {java_test/java/com/google/zxing => tests}/common/AbstractBlackBoxTestCase.java (100%) rename {java_test/java/com/google/zxing => tests}/common/AbstractNegativeBlackBoxTestCase.java (100%) rename {src => tests}/common/TestResult.java (100%) rename {java_test/java/com/google/zxing => tests}/negative/FalsePositives2BlackBoxTestCase.java (100%) rename {java_test/java/com/google/zxing => tests}/negative/FalsePositivesBlackBoxTestCase.java (100%) rename {java_test/java/com/google/zxing => tests}/negative/PartialBlackBoxTestCase.java (100%) rename {java_test/java/com/google/zxing => tests}/negative/UnsupportedBlackBoxTestCase.java (100%) diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..23cfb48b95c952975677fef54b86d580d1062fd0 GIT binary patch literal 6148 zcmeHK%}T>S5T5OiO(;SS3LXPq3)UZm;w9Aj0!H+pQj?}=G-gYawue&4O<%}Y@p+ut z-IkWxqhe(SX203lna%FEWw!$WqBRT;0crqXp%NBsY`zg1CtZ<(@stsTnxg|5^dN;S zOjn}W@fR7Ov$NqDd>ElFoL@H%q>S-cp@;`MfNq#-7ww`vJ7-9PaoP`J8KCzg=*Ll- zH5#9yP%M?VDptj+TKC?Q9DA9c4bzrCxTW3|&K%5aKe<4$eoTqcmjf3uXqGfuCl8 z?gs~z&^4HAR96Q!ssunRp<4;sR7+5fW6(92Ys3*0p;HlcsxT#n(CO%ROq^>l*QnD$ znBqg2FAGzl2=#TG-%;TpT#ei^1I)lO14Z4f(ffa~zW!fM;vO@=4E!qwM5*nyTev0j zwytcB-dYFs0hNT}a*gv8G}Kd!vGf%0p(;VYLk6O2FxQA46#gTiXyAq!_*DkJ02)nN A?*IS* literal 0 HcmV?d00001 diff --git a/java_test/.DS_Store b/java_test/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..55c1fcbeb4ba2bef02771ea2748f3e4b0ea5c07d GIT binary patch literal 6148 zcmeH~J&wXa427SU6iC~oq@0EW>)m< zk%er^j=Knh3!DIf); zz>E~gV|@8Jqi52iNC7D@4+Z@DQ0UH@Y@PAxV2BZb99RzHI%Wy7c!8|R*2xOZa(b|A zwHQOZ9_?hw>uR!f_I6kfAC`AEpJHg%+hK(X&1yhF3P^#80*juHe*W+1ujcQ^n8@Auu4PPqH)~DC=`aY|^Zges(XZZ6Iz{HQ@6+Mjm#TR5vwoX=P`Vj~j6r{kv GD)0dNyb`AX literal 0 HcmV?d00001 diff --git a/java_test/java/.DS_Store b/java_test/java/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..35a54bf0595027f28217af82c3d32981e121b5e7 GIT binary patch literal 6148 zcmeH~Jr2S!425mVP>H1@V-^m;4I%_5-~tF3K^+i#j?VMXLSaS~dY0@jc51bKLsN^0 z?w;4J$RHv;+$b9h6I0}!Tx68{^>MkK$MI$*w?)zl@IfZ~xlK?3DnJFO02QDDGg2TA z@_sd=XX2w!0V*&L1?>A!;KrJ4LH~3h_y_tMAK>5S|49o|DnJGPOaWc) zkNX{7D$mxB*R%R5tF~@%&@V@L`w2i|NAVi&hW%m-uqIm&6&Qa6Tm}Xz@KXg|*oF~o literal 0 HcmV?d00001 diff --git a/java_test/java/com/.DS_Store b/java_test/java/com/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..b7133245b87bec7db48712cd6662fe15119bbb7a GIT binary patch literal 6148 zcmeHKI}XAy47C9vBo;=-T!9-z2u{ES5FfEr>VVigaW0O=^Jf4RHW)z9mGctEFIC?V z*CL|J%V8lh6OjqrP_8!g&GyZEHpqwq;W(p_8QcutRe+n`Ya zDnJFO02QDDA6Fnt>}2}!lX)N&paQ?HfZY!TZden$K)*ULcnbg=A?${^_Y%Nj0bot+ z0ug~}P=P_!Y%w(Gh?mT(iCtjOMYH+Pe6wbUqW*TAUp!s326ChVRNz^GVJv4>|JU$0 z{r@wGD=I(*{z?HItv0JAJ}GN!@8hi27Wfu!IXAc&=1#%j*Hzs$ zKi^_{3V>~Xj_<$@BYHy=i3j9+lW6<;{x^Z0!@?Jt*;r!mXD9?*G>$Msy6h=2%) zfCz|y2uz4T9O69xUnlfTdK3{5foTx%??a)x*3{NDJ{=sQ1)wgN4&yv}32N~KwWhYN z%+M^m2g_26HpKH$PA$2wrnauV9G1<8<(@{~z?< z`u|ahLJ<&we@4I-!*;4?h76{3u@2!?<32LanK-D>F3x M2m}TVBJigK?!fgEod5s; literal 0 HcmV?d00001 diff --git a/java_test/java/com/google/zxing/.DS_Store b/java_test/java/com/google/zxing/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..eb0a0ef3fd540009021530aa0729882d07f8ccd4 GIT binary patch literal 6148 zcmeHK%TB{E5FA5V1-SIsqko}NC9Y9bzJMP9k|I?~6DTP{obu_+dfmzqIhP9UR`%HY zvOQAmEC9DUR107RAZHVFG8hq2kD9Kc^9|939A))U)-P>akEFRwmF#_jXMCf>27~=i zQKH6{>IPkUFfp{)@zuwIoKCyY99#SYt4oyjVU zIQf!lO!3CGUa`ai_eXCvyfe4#ufirZTqgatD`UVIFb0f)KVU%K3rc>cXuUCD3>X6^ z2IPM5Y=T9^UNKx9>_Q1Z%%~2+vD6Y0<0BRkdqr9(PD6SBrEG@N=L{fdaaqK3o8 z;={$2kHw1%t24h3?r?>o^~QiPFl69br!#r~ANZFUE%JvUHZul{fq%w;%hr$U6%Q5P z)?deyx7M>gv5AOZF9Qn4gO31C literal 0 HcmV?d00001 diff --git a/java_test/java/com/google/zxing/aztec/.DS_Store b/java_test/java/com/google/zxing/aztec/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..48503ca1a1b4761b85b99187d451681f30d55bf7 GIT binary patch literal 6148 zcmeHKF;2ul47A~-i$rrJ<$i%5tWL)Z_yFQUcOnuTeLB9)jBOC7gq8x0CGRA&o~$xO z9GjW%-^V+%otX_tqJ3~#2KSkZxGLrv=<$rvp6zvfJD#4VMfEyC?bfI}+7wv&=|sU0 z)H$}#D7e_%f__=otsf><4#)vHAP3}t9AM983^$2d<$xTJ1K$qt`_PcYUN|Slrvpoj z0Kg6C2wcZ30c<3Iy>LzhgYc9BQ|dKhc*?=Is_TVwV#>{H`0zT}YeMlj9nWu3Zr&5M z$^kiW=>TVM#E$*{9{J1s&l-gskOTkJ0pA=R4tu;@_148}ve!1`Bl0Uy8|7G{6$7Ic gyNK>->|&LoZ}QKne0 zMMUS9-ArU6A|tq=Ty5x@?VES3mk|ZRaYiHO-D%rw4u__b{W@UWp&Vr|C%HWGZG%Py zr~nn90#twsd|ZJnv7_H1@V-^m;4Wg<&0T*E43hX&L&p$$qDprKhvt+--jT7}7np#A3 zem<@ulZcFPQ@L2!n>{z**++&mCkOWA81W14cNZlEfg7;MkzE(HCqgga^y>{tEnwC%0;vJ&^%eQ zLs35+`xjp>T0H1@V-^m;4Wg<&0T*E43hX&L&p$$qDprKhvt+--jT7}7np#A3 zem<@ulZcFPQ@L2!n>{z**++&mCkOWA81W14cNZlEfg7;MkzE(HCqgga^y>{tEnwC%0;vJ&^%eQ zLs35+`xjp>T041vI)z6#m+=T zboc1DBAtjV;ij^&Ffqk`E_WGZ=!eVoe7jx8idn9#2Hwf!`B=yW36KB@kN^pgz|Rn{ za~rl?g)))=36Q`@!2S;fZdy}YsQ)?;d<1|lkaok`X9;Mr1hl5MP-I{lt-v z{c*p;N9Ec2_IZ{+W!BaW4)t<`mrDRPb`-DSZg^g70j;Sm6d4#V0*--!1inh(3H-AW Ag8%>k literal 0 HcmV?d00001 diff --git a/java_test/java/com/google/zxing/oned/rss/.DS_Store b/java_test/java/com/google/zxing/oned/rss/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..ed8e17150d41c7e2906fdaad2e16e6e70a328148 GIT binary patch literal 6148 zcmeHKJ8r`;3?*9+2D)VIs4MgaLg1XB7id~%GwJ|AfsUSXt{$zApCN{mEm@35fO-pr@)|#X7izWvu1~)eml-Do-SGgIZ^>CFjwF? zmK&@8JNS+Me@^0x3Q&PnDWFaF-fi)utgVa3S*M0rD9 zi-@kS-BP3#kp^xkHyg%g`{pB?WJG~*oYBcq&T{E4htnwgeZaVl^A6HK^Y?v!vP~Kl zpaN8Y3Qz$m@Kpt}yf*W%p31|h02TNL1?>A!;D$AE2=q?}25$j?GlbnR_g(^6EC8&D zLm(nB4Jt6Gnk|L~9r2QRHE{?Gx@a~Znm229DC)Q4{Nm}NHIO3}paQQ7Ok>$v{olYp z^#89UuBZSN_$vi;w%)E+cv9BZ(c`Sv7WfWsId`}j=1#%jh&vs~p8?Z_Mg@MYzyl8@6@~x+ literal 0 HcmV?d00001 diff --git a/java_test/java/com/google/zxing/pdf417/.DS_Store b/java_test/java/com/google/zxing/pdf417/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6 GIT binary patch literal 6148 zcmeH~Jr2S!425mzP>H1@V-^m;4Wg<&0T*E43hX&L&p$$qDprKhvt+--jT7}7np#A3 zem<@ulZcFPQ@L2!n>{z**++&mCkOWA81W14cNZlEfg7;MkzE(HCqgga^y>{tEnwC%0;vJ&^%eQ zLs35+`xjp>T0H1@V-^m;4Wg<&0T*E43hX&L&p$$qDprKhvt+--jT7}7np#A3 zem<@ulZcFPQ@L2!n>{z**++&mCkOWA81W14cNZlEfg7;MkzE(HCqgga^y>{tEnwC%0;vJ&^%eQ zLs35+`xjp>T00pS>fwZOr_z9V#`Qga_*7=8 z02QDDRDcRlflmrp?}g3gfs9mu3Q&QU0``3VBs?x+A2_$vi;ve|9cc%|&Ey_d6ITi|=R)jZ&4SUUy5+cD7FF*eqYmtGWg#n!lA V6T3jCBkyz|e+En!8Ws4p0#Am?6`lY9 literal 0 HcmV?d00001 diff --git a/src/common/.DS_Store b/src/common/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6 GIT binary patch literal 6148 zcmeH~Jr2S!425mzP>H1@V-^m;4Wg<&0T*E43hX&L&p$$qDprKhvt+--jT7}7np#A3 zem<@ulZcFPQ@L2!n>{z**++&mCkOWA81W14cNZlEfg7;MkzE(HCqgga^y>{tEnwC%0;vJ&^%eQ zLs35+`xjp>T0 testRXingResults; - private final EnumMap hints = new EnumMap<>(DecodeHintType.class); - - public static Path buildTestBase(String testBasePathSuffix) { - // A little workaround to prevent aggravation in my IDE - Path testBase = Paths.get(testBasePathSuffix); - if (!Files.exists(testBase)) { - // try starting with 'core' since the test base is often given as the project root - testBase = Paths.get("core").resolve(testBasePathSuffix); - } - return testBase; - } - - protected AbstractBlackBoxTestCase(String testBasePathSuffix, - Reader barcodeReader, - BarcodeFormat expectedFormat) { - this.testBase = buildTestBase(testBasePathSuffix); - this.barcodeReader = barcodeReader; - this.expectedFormat = expectedFormat; - testRXingResults = new ArrayList<>(); - - System.setProperty("java.util.logging.SimpleFormatter.format", "%4$s: %5$s%6$s%n"); - } - - protected final Path getTestBase() { - return testBase; - } - - protected final void addTest(int mustPassCount, int tryHarderCount, float rotation) { - addTest(mustPassCount, tryHarderCount, 0, 0, rotation); - } - - protected void addHint(DecodeHintType hint) { - hints.put(hint, Boolean.TRUE); - } - - /** - * Adds a new test for the current directory of images. - * - * @param mustPassCount The number of images which must decode for the test to pass. - * @param tryHarderCount The number of images which must pass using the try harder flag. - * @param maxMisreads Maximum number of images which can fail due to successfully reading the wrong contents - * @param maxTryHarderMisreads Maximum number of images which can fail due to successfully - * reading the wrong contents using the try harder flag - * @param rotation The rotation in degrees clockwise to use for this test. - */ - protected final void addTest(int mustPassCount, - int tryHarderCount, - int maxMisreads, - int maxTryHarderMisreads, - float rotation) { - testRXingResults.add(new TestRXingResult(mustPassCount, tryHarderCount, maxMisreads, maxTryHarderMisreads, rotation)); - } - - protected final List getImageFiles() throws IOException { - assertTrue("Please download and install test images, and run from the 'core' directory", Files.exists(testBase)); - List paths = new ArrayList<>(); - try (DirectoryStream pathIt = Files.newDirectoryStream(testBase, "*.{jpg,jpeg,gif,png,JPG,JPEG,GIF,PNG}")) { - for (Path path : pathIt) { - paths.add(path); - } - } - return paths; - } - - final Reader getReader() { - return barcodeReader; - } - - @Test - public void testBlackBox() throws IOException { - assertFalse(testRXingResults.isEmpty()); - - List imageFiles = getImageFiles(); - int testCount = testRXingResults.size(); - - int[] passedCounts = new int[testCount]; - int[] misreadCounts = new int[testCount]; - int[] tryHarderCounts = new int[testCount]; - int[] tryHarderMisreadCounts = new int[testCount]; - - for (Path testImage : imageFiles) { - log.info(String.format("Starting %s", testImage)); - - BufferedImage image = ImageIO.read(testImage.toFile()); - - String testImageFileName = testImage.getFileName().toString(); - String fileBaseName = testImageFileName.substring(0, testImageFileName.indexOf('.')); - Path expectedTextFile = testBase.resolve(fileBaseName + ".txt"); - String expectedText; - if (Files.exists(expectedTextFile)) { - expectedText = readFileAsString(expectedTextFile, StandardCharsets.UTF_8); - } else { - expectedTextFile = testBase.resolve(fileBaseName + ".bin"); - assertTrue(Files.exists(expectedTextFile)); - expectedText = readFileAsString(expectedTextFile, StandardCharsets.ISO_8859_1); - } - - Path expectedMetadataFile = testBase.resolve(fileBaseName + ".metadata.txt"); - Properties expectedMetadata = new Properties(); - if (Files.exists(expectedMetadataFile)) { - try (BufferedReader reader = Files.newBufferedReader(expectedMetadataFile, StandardCharsets.UTF_8)) { - expectedMetadata.load(reader); - } - } - - for (int x = 0; x < testCount; x++) { - float rotation = testRXingResults.get(x).getRotation(); - BufferedImage rotatedImage = rotateImage(image, rotation); - LuminanceSource source = new BufferedImageLuminanceSource(rotatedImage); - BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source)); - try { - if (decode(bitmap, rotation, expectedText, expectedMetadata, false)) { - passedCounts[x]++; - } else { - misreadCounts[x]++; - } - } catch (ReaderException ignored) { - log.fine(String.format("could not read at rotation %f", rotation)); - } - try { - if (decode(bitmap, rotation, expectedText, expectedMetadata, true)) { - tryHarderCounts[x]++; - } else { - tryHarderMisreadCounts[x]++; - } - } catch (ReaderException ignored) { - log.fine(String.format("could not read at rotation %f w/TH", rotation)); - } - } - } - - // Print the results of all tests first - int totalFound = 0; - int totalMustPass = 0; - int totalMisread = 0; - int totalMaxMisread = 0; - - for (int x = 0; x < testRXingResults.size(); x++) { - TestRXingResult testRXingResult = testRXingResults.get(x); - log.info(String.format("Rotation %d degrees:", (int) testRXingResult.getRotation())); - log.info(String.format(" %d of %d images passed (%d required)", - passedCounts[x], imageFiles.size(), testRXingResult.getMustPassCount())); - int failed = imageFiles.size() - passedCounts[x]; - log.info(String.format(" %d failed due to misreads, %d not detected", - misreadCounts[x], failed - misreadCounts[x])); - log.info(String.format(" %d of %d images passed with try harder (%d required)", - tryHarderCounts[x], imageFiles.size(), testRXingResult.getTryHarderCount())); - failed = imageFiles.size() - tryHarderCounts[x]; - log.info(String.format(" %d failed due to misreads, %d not detected", - tryHarderMisreadCounts[x], failed - tryHarderMisreadCounts[x])); - totalFound += passedCounts[x] + tryHarderCounts[x]; - totalMustPass += testRXingResult.getMustPassCount() + testRXingResult.getTryHarderCount(); - totalMisread += misreadCounts[x] + tryHarderMisreadCounts[x]; - totalMaxMisread += testRXingResult.getMaxMisreads() + testRXingResult.getMaxTryHarderMisreads(); - } - - int totalTests = imageFiles.size() * testCount * 2; - log.info(String.format("Decoded %d images out of %d (%d%%, %d required)", - totalFound, totalTests, totalFound * 100 / totalTests, totalMustPass)); - if (totalFound > totalMustPass) { - log.warning(String.format("+++ Test too lax by %d images", totalFound - totalMustPass)); - } else if (totalFound < totalMustPass) { - log.warning(String.format("--- Test failed by %d images", totalMustPass - totalFound)); - } - - if (totalMisread < totalMaxMisread) { - log.warning(String.format("+++ Test expects too many misreads by %d images", totalMaxMisread - totalMisread)); - } else if (totalMisread > totalMaxMisread) { - log.warning(String.format("--- Test had too many misreads by %d images", totalMisread - totalMaxMisread)); - } - - // Then run through again and assert if any failed - for (int x = 0; x < testCount; x++) { - TestRXingResult testRXingResult = testRXingResults.get(x); - String label = "Rotation " + testRXingResult.getRotation() + " degrees: Too many images failed"; - assertTrue(label, - passedCounts[x] >= testRXingResult.getMustPassCount()); - assertTrue("Try harder, " + label, - tryHarderCounts[x] >= testRXingResult.getTryHarderCount()); - label = "Rotation " + testRXingResult.getRotation() + " degrees: Too many images misread"; - assertTrue(label, - misreadCounts[x] <= testRXingResult.getMaxMisreads()); - assertTrue("Try harder, " + label, - tryHarderMisreadCounts[x] <= testRXingResult.getMaxTryHarderMisreads()); - } - } - - private boolean decode(BinaryBitmap source, - float rotation, - String expectedText, - Map expectedMetadata, - boolean tryHarder) throws ReaderException { - - String suffix = String.format(" (%srotation: %d)", tryHarder ? "try harder, " : "", (int) rotation); - - Map hints = this.hints.clone(); - if (tryHarder) { - hints.put(DecodeHintType.TRY_HARDER, Boolean.TRUE); - } - - // Try in 'pure' mode mostly to exercise PURE_BARCODE code paths for exceptions; - // not expected to pass, generally - RXingResult result = null; - try { - Map pureHints = new EnumMap<>(hints); - pureHints.put(DecodeHintType.PURE_BARCODE, Boolean.TRUE); - result = barcodeReader.decode(source, pureHints); - } catch (ReaderException re) { - // continue - } - - if (result == null) { - result = barcodeReader.decode(source, hints); - } - - if (expectedFormat != result.getBarcodeFormat()) { - log.info(String.format("Format mismatch: expected '%s' but got '%s'%s", - expectedFormat, result.getBarcodeFormat(), suffix)); - return false; - } - - String resultText = result.getText(); - if (!expectedText.equals(resultText)) { - log.info(String.format("Content mismatch: expected '%s' but got '%s'%s", - expectedText, resultText, suffix)); - return false; - } - - Map resultMetadata = result.getRXingResultMetadata(); - for (Map.Entry metadatum : expectedMetadata.entrySet()) { - RXingResultMetadataType key = RXingResultMetadataType.valueOf(metadatum.getKey().toString()); - Object expectedValue = metadatum.getValue(); - Object actualValue = resultMetadata == null ? null : resultMetadata.get(key); - if (!expectedValue.equals(actualValue)) { - log.info(String.format("Metadata mismatch for key '%s': expected '%s' but got '%s'", - key, expectedValue, actualValue)); - return false; - } - } - - return true; - } - - protected static String readFileAsString(Path file, Charset charset) throws IOException { - String stringContents = new String(Files.readAllBytes(file), charset); - if (stringContents.endsWith("\n")) { - log.info("String contents of file " + file + " end with a newline. " + - "This may not be intended and cause a test failure"); - } - return stringContents; - } - - protected static BufferedImage rotateImage(BufferedImage original, float degrees) { - if (degrees == 0.0f) { - return original; - } - - switch (original.getType()) { - case BufferedImage.TYPE_BYTE_INDEXED: - case BufferedImage.TYPE_BYTE_BINARY: - BufferedImage argb = new BufferedImage(original.getWidth(), - original.getHeight(), - BufferedImage.TYPE_INT_ARGB); - Graphics g = argb.createGraphics(); - g.drawImage(original, 0, 0, null); - g.dispose(); - original = argb; - break; - } - - double radians = Math.toRadians(degrees); - - // Transform simply to find out the new bounding box (don't actually run the image through it) - AffineTransform at = new AffineTransform(); - at.rotate(radians, original.getWidth() / 2.0, original.getHeight() / 2.0); - BufferedImageOp op = new AffineTransformOp(at, AffineTransformOp.TYPE_BICUBIC); - - RectangularShape r = op.getBounds2D(original); - int width = (int) Math.ceil(r.getWidth()); - int height = (int) Math.ceil(r.getHeight()); - - // Real transform, now that we know the size of the new image and how to translate after we rotate - // to keep it centered - at = new AffineTransform(); - at.rotate(radians, width / 2.0, height / 2.0); - at.translate((width - original.getWidth()) / 2.0, - (height - original.getHeight()) / 2.0); - op = new AffineTransformOp(at, AffineTransformOp.TYPE_BICUBIC); - - return op.filter(original, new BufferedImage(width, height, original.getType())); - } - -} diff --git a/src/common/AbstractNegativeBlackBoxTestCase.java b/src/common/AbstractNegativeBlackBoxTestCase.java deleted file mode 100644 index 0b734cc..0000000 --- a/src/common/AbstractNegativeBlackBoxTestCase.java +++ /dev/null @@ -1,159 +0,0 @@ -/* - * Copyright 2008 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.common; - -import com.google.zxing.BinaryBitmap; -import com.google.zxing.BufferedImageLuminanceSource; -import com.google.zxing.DecodeHintType; -import com.google.zxing.LuminanceSource; -import com.google.zxing.MultiFormatReader; -import com.google.zxing.ReaderException; -import com.google.zxing.RXingResult; -import org.junit.Test; - -import javax.imageio.ImageIO; -import java.awt.image.BufferedImage; -import java.io.IOException; -import java.nio.file.Path; -import java.util.ArrayList; -import java.util.EnumMap; -import java.util.List; -import java.util.Map; -import java.util.logging.Logger; - -/** - * This abstract class looks for negative results, i.e. it only allows a certain number of false - * positives in images which should not decode. This helps ensure that we are not too lenient. - * - * @author dswitkin@google.com (Daniel Switkin) - */ -public abstract class AbstractNegativeBlackBoxTestCase extends AbstractBlackBoxTestCase { - - private static final Logger log = Logger.getLogger(AbstractNegativeBlackBoxTestCase.class.getSimpleName()); - - private final List testRXingResults; - - private static final class TestRXingResult { - private final int falsePositivesAllowed; - private final float rotation; - - TestRXingResult(int falsePositivesAllowed, float rotation) { - this.falsePositivesAllowed = falsePositivesAllowed; - this.rotation = rotation; - } - - int getFalsePositivesAllowed() { - return falsePositivesAllowed; - } - - float getRotation() { - return rotation; - } - } - - // Use the multiformat reader to evaluate all decoders in the system. - protected AbstractNegativeBlackBoxTestCase(String testBasePathSuffix) { - super(testBasePathSuffix, new MultiFormatReader(), null); - testRXingResults = new ArrayList<>(); - } - - protected final void addTest(int falsePositivesAllowed, float rotation) { - testRXingResults.add(new TestRXingResult(falsePositivesAllowed, rotation)); - } - - @Override - @Test - public void testBlackBox() throws IOException { - assertFalse(testRXingResults.isEmpty()); - - List imageFiles = getImageFiles(); - int[] falsePositives = new int[testRXingResults.size()]; - for (Path testImage : imageFiles) { - log.info(String.format("Starting %s", testImage)); - BufferedImage image = ImageIO.read(testImage.toFile()); - if (image == null) { - throw new IOException("Could not read image: " + testImage); - } - for (int x = 0; x < testRXingResults.size(); x++) { - TestRXingResult testRXingResult = testRXingResults.get(x); - if (!checkForFalsePositives(image, testRXingResult.getRotation())) { - falsePositives[x]++; - } - } - } - - int totalFalsePositives = 0; - int totalAllowed = 0; - - for (int x = 0; x < testRXingResults.size(); x++) { - TestRXingResult testRXingResult = testRXingResults.get(x); - totalFalsePositives += falsePositives[x]; - totalAllowed += testRXingResult.getFalsePositivesAllowed(); - } - - if (totalFalsePositives < totalAllowed) { - log.warning(String.format("+++ Test too lax by %d images", totalAllowed - totalFalsePositives)); - } else if (totalFalsePositives > totalAllowed) { - log.warning(String.format("--- Test failed by %d images", totalFalsePositives - totalAllowed)); - } - - for (int x = 0; x < testRXingResults.size(); x++) { - TestRXingResult testRXingResult = testRXingResults.get(x); - log.info(String.format("Rotation %d degrees: %d of %d images were false positives (%d allowed)", - (int) testRXingResult.getRotation(), falsePositives[x], imageFiles.size(), - testRXingResult.getFalsePositivesAllowed())); - assertTrue("Rotation " + testRXingResult.getRotation() + " degrees: Too many false positives found", - falsePositives[x] <= testRXingResult.getFalsePositivesAllowed()); - } - } - - /** - * Make sure ZXing does NOT find a barcode in the image. - * - * @param image The image to test - * @param rotationInDegrees The amount of rotation to apply - * @return true if nothing found, false if a non-existent barcode was detected - */ - private boolean checkForFalsePositives(BufferedImage image, float rotationInDegrees) { - BufferedImage rotatedImage = rotateImage(image, rotationInDegrees); - LuminanceSource source = new BufferedImageLuminanceSource(rotatedImage); - BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source)); - RXingResult result; - try { - result = getReader().decode(bitmap); - log.info(String.format("Found false positive: '%s' with format '%s' (rotation: %d)", - result.getText(), result.getBarcodeFormat(), (int) rotationInDegrees)); - return false; - } catch (ReaderException re) { - // continue - } - - // Try "try harder" getMode - Map hints = new EnumMap<>(DecodeHintType.class); - hints.put(DecodeHintType.TRY_HARDER, Boolean.TRUE); - try { - result = getReader().decode(bitmap, hints); - log.info(String.format("Try harder found false positive: '%s' with format '%s' (rotation: %d)", - result.getText(), result.getBarcodeFormat(), (int) rotationInDegrees)); - return false; - } catch (ReaderException re) { - // continue - } - return true; - } - -} diff --git a/tests/.DS_Store b/tests/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..42ade580745c980a63fa369b463bfe60d80df94d GIT binary patch literal 6148 zcmeHKyH3ME5S)bwSxS?V@_vCou%hq<`2iq_5K@Q>9%@~a7<)`W=SO`)vCp?q%+B@cMsC|D*puCTS%Fq`+AzV6)YFwd5yNZJm6a*V;zEqkGOL-Hr30 oaENkDjB?C{m*eY5%Dm=tzV8di#Go@CbfSI+To;)X_-_Ti0A)ZNP5=M^ literal 0 HcmV?d00001 diff --git a/java_test/java/com/google/zxing/aztec/AztecBlackBox1TestCase.java b/tests/AztecBlackBox1TestCase.java similarity index 100% rename from java_test/java/com/google/zxing/aztec/AztecBlackBox1TestCase.java rename to tests/AztecBlackBox1TestCase.java diff --git a/java_test/java/com/google/zxing/aztec/AztecBlackBox2TestCase.java b/tests/AztecBlackBox2TestCase.java similarity index 100% rename from java_test/java/com/google/zxing/aztec/AztecBlackBox2TestCase.java rename to tests/AztecBlackBox2TestCase.java diff --git a/java_test/java/com/google/zxing/oned/CodabarBlackBox1TestCase.java b/tests/CodabarBlackBox1TestCase.java similarity index 100% rename from java_test/java/com/google/zxing/oned/CodabarBlackBox1TestCase.java rename to tests/CodabarBlackBox1TestCase.java diff --git a/java_test/java/com/google/zxing/oned/Code128BlackBox1TestCase.java b/tests/Code128BlackBox1TestCase.java similarity index 100% rename from java_test/java/com/google/zxing/oned/Code128BlackBox1TestCase.java rename to tests/Code128BlackBox1TestCase.java diff --git a/java_test/java/com/google/zxing/oned/Code128BlackBox2TestCase.java b/tests/Code128BlackBox2TestCase.java similarity index 100% rename from java_test/java/com/google/zxing/oned/Code128BlackBox2TestCase.java rename to tests/Code128BlackBox2TestCase.java diff --git a/java_test/java/com/google/zxing/oned/Code128BlackBox3TestCase.java b/tests/Code128BlackBox3TestCase.java similarity index 100% rename from java_test/java/com/google/zxing/oned/Code128BlackBox3TestCase.java rename to tests/Code128BlackBox3TestCase.java diff --git a/java_test/java/com/google/zxing/oned/Code39BlackBox1TestCase.java b/tests/Code39BlackBox1TestCase.java similarity index 100% rename from java_test/java/com/google/zxing/oned/Code39BlackBox1TestCase.java rename to tests/Code39BlackBox1TestCase.java diff --git a/java_test/java/com/google/zxing/oned/Code39BlackBox3TestCase.java b/tests/Code39BlackBox3TestCase.java similarity index 100% rename from java_test/java/com/google/zxing/oned/Code39BlackBox3TestCase.java rename to tests/Code39BlackBox3TestCase.java diff --git a/java_test/java/com/google/zxing/oned/Code39ExtendedBlackBox2TestCase.java b/tests/Code39ExtendedBlackBox2TestCase.java similarity index 100% rename from java_test/java/com/google/zxing/oned/Code39ExtendedBlackBox2TestCase.java rename to tests/Code39ExtendedBlackBox2TestCase.java diff --git a/java_test/java/com/google/zxing/oned/Code39ExtendedModeTestCase.java b/tests/Code39ExtendedModeTestCase.java similarity index 100% rename from java_test/java/com/google/zxing/oned/Code39ExtendedModeTestCase.java rename to tests/Code39ExtendedModeTestCase.java diff --git a/java_test/java/com/google/zxing/oned/Code93BlackBox1TestCase.java b/tests/Code93BlackBox1TestCase.java similarity index 100% rename from java_test/java/com/google/zxing/oned/Code93BlackBox1TestCase.java rename to tests/Code93BlackBox1TestCase.java diff --git a/java_test/java/com/google/zxing/datamatrix/DataMatrixBlackBox1TestCase.java b/tests/DataMatrixBlackBox1TestCase.java similarity index 100% rename from java_test/java/com/google/zxing/datamatrix/DataMatrixBlackBox1TestCase.java rename to tests/DataMatrixBlackBox1TestCase.java diff --git a/java_test/java/com/google/zxing/datamatrix/DataMatrixBlackBox2TestCase.java b/tests/DataMatrixBlackBox2TestCase.java similarity index 100% rename from java_test/java/com/google/zxing/datamatrix/DataMatrixBlackBox2TestCase.java rename to tests/DataMatrixBlackBox2TestCase.java diff --git a/java_test/java/com/google/zxing/datamatrix/DataMatrixBlackBox3TestCase.java b/tests/DataMatrixBlackBox3TestCase.java similarity index 100% rename from java_test/java/com/google/zxing/datamatrix/DataMatrixBlackBox3TestCase.java rename to tests/DataMatrixBlackBox3TestCase.java diff --git a/java_test/java/com/google/zxing/oned/EAN13BlackBox1TestCase.java b/tests/EAN13BlackBox1TestCase.java similarity index 100% rename from java_test/java/com/google/zxing/oned/EAN13BlackBox1TestCase.java rename to tests/EAN13BlackBox1TestCase.java diff --git a/java_test/java/com/google/zxing/oned/EAN13BlackBox2TestCase.java b/tests/EAN13BlackBox2TestCase.java similarity index 100% rename from java_test/java/com/google/zxing/oned/EAN13BlackBox2TestCase.java rename to tests/EAN13BlackBox2TestCase.java diff --git a/java_test/java/com/google/zxing/oned/EAN13BlackBox3TestCase.java b/tests/EAN13BlackBox3TestCase.java similarity index 100% rename from java_test/java/com/google/zxing/oned/EAN13BlackBox3TestCase.java rename to tests/EAN13BlackBox3TestCase.java diff --git a/java_test/java/com/google/zxing/oned/EAN13BlackBox4TestCase.java b/tests/EAN13BlackBox4TestCase.java similarity index 100% rename from java_test/java/com/google/zxing/oned/EAN13BlackBox4TestCase.java rename to tests/EAN13BlackBox4TestCase.java diff --git a/java_test/java/com/google/zxing/oned/EAN13BlackBox5BlurryTestCase.java b/tests/EAN13BlackBox5BlurryTestCase.java similarity index 100% rename from java_test/java/com/google/zxing/oned/EAN13BlackBox5BlurryTestCase.java rename to tests/EAN13BlackBox5BlurryTestCase.java diff --git a/java_test/java/com/google/zxing/oned/EAN8BlackBox1TestCase.java b/tests/EAN8BlackBox1TestCase.java similarity index 100% rename from java_test/java/com/google/zxing/oned/EAN8BlackBox1TestCase.java rename to tests/EAN8BlackBox1TestCase.java diff --git a/java_test/java/com/google/zxing/oned/ITFBlackBox1TestCase.java b/tests/ITFBlackBox1TestCase.java similarity index 100% rename from java_test/java/com/google/zxing/oned/ITFBlackBox1TestCase.java rename to tests/ITFBlackBox1TestCase.java diff --git a/java_test/java/com/google/zxing/oned/ITFBlackBox2TestCase.java b/tests/ITFBlackBox2TestCase.java similarity index 100% rename from java_test/java/com/google/zxing/oned/ITFBlackBox2TestCase.java rename to tests/ITFBlackBox2TestCase.java diff --git a/java_test/java/com/google/zxing/maxicode/MaxiCodeBlackBox1TestCase.java b/tests/MaxiCodeBlackBox1TestCase.java similarity index 100% rename from java_test/java/com/google/zxing/maxicode/MaxiCodeBlackBox1TestCase.java rename to tests/MaxiCodeBlackBox1TestCase.java diff --git a/java_test/java/com/google/zxing/maxicode/Maxicode1TestCase.java b/tests/Maxicode1TestCase.java similarity index 100% rename from java_test/java/com/google/zxing/maxicode/Maxicode1TestCase.java rename to tests/Maxicode1TestCase.java diff --git a/java_test/java/com/google/zxing/pdf417/PDF417BlackBox1TestCase.java b/tests/PDF417BlackBox1TestCase.java similarity index 100% rename from java_test/java/com/google/zxing/pdf417/PDF417BlackBox1TestCase.java rename to tests/PDF417BlackBox1TestCase.java diff --git a/java_test/java/com/google/zxing/pdf417/PDF417BlackBox2TestCase.java b/tests/PDF417BlackBox2TestCase.java similarity index 100% rename from java_test/java/com/google/zxing/pdf417/PDF417BlackBox2TestCase.java rename to tests/PDF417BlackBox2TestCase.java diff --git a/java_test/java/com/google/zxing/pdf417/PDF417BlackBox3TestCase.java b/tests/PDF417BlackBox3TestCase.java similarity index 100% rename from java_test/java/com/google/zxing/pdf417/PDF417BlackBox3TestCase.java rename to tests/PDF417BlackBox3TestCase.java diff --git a/java_test/java/com/google/zxing/pdf417/PDF417BlackBox4TestCase.java b/tests/PDF417BlackBox4TestCase.java similarity index 100% rename from java_test/java/com/google/zxing/pdf417/PDF417BlackBox4TestCase.java rename to tests/PDF417BlackBox4TestCase.java diff --git a/java_test/java/com/google/zxing/qrcode/QRCodeBlackBox1TestCase.java b/tests/QRCodeBlackBox1TestCase.java similarity index 100% rename from java_test/java/com/google/zxing/qrcode/QRCodeBlackBox1TestCase.java rename to tests/QRCodeBlackBox1TestCase.java diff --git a/java_test/java/com/google/zxing/qrcode/QRCodeBlackBox2TestCase.java b/tests/QRCodeBlackBox2TestCase.java similarity index 100% rename from java_test/java/com/google/zxing/qrcode/QRCodeBlackBox2TestCase.java rename to tests/QRCodeBlackBox2TestCase.java diff --git a/java_test/java/com/google/zxing/qrcode/QRCodeBlackBox3TestCase.java b/tests/QRCodeBlackBox3TestCase.java similarity index 100% rename from java_test/java/com/google/zxing/qrcode/QRCodeBlackBox3TestCase.java rename to tests/QRCodeBlackBox3TestCase.java diff --git a/java_test/java/com/google/zxing/qrcode/QRCodeBlackBox4TestCase.java b/tests/QRCodeBlackBox4TestCase.java similarity index 100% rename from java_test/java/com/google/zxing/qrcode/QRCodeBlackBox4TestCase.java rename to tests/QRCodeBlackBox4TestCase.java diff --git a/java_test/java/com/google/zxing/qrcode/QRCodeBlackBox5TestCase.java b/tests/QRCodeBlackBox5TestCase.java similarity index 100% rename from java_test/java/com/google/zxing/qrcode/QRCodeBlackBox5TestCase.java rename to tests/QRCodeBlackBox5TestCase.java diff --git a/java_test/java/com/google/zxing/qrcode/QRCodeBlackBox6TestCase.java b/tests/QRCodeBlackBox6TestCase.java similarity index 100% rename from java_test/java/com/google/zxing/qrcode/QRCodeBlackBox6TestCase.java rename to tests/QRCodeBlackBox6TestCase.java diff --git a/java_test/java/com/google/zxing/oned/rss/RSS14BlackBox1TestCase.java b/tests/RSS14BlackBox1TestCase.java similarity index 100% rename from java_test/java/com/google/zxing/oned/rss/RSS14BlackBox1TestCase.java rename to tests/RSS14BlackBox1TestCase.java diff --git a/java_test/java/com/google/zxing/oned/rss/RSS14BlackBox2TestCase.java b/tests/RSS14BlackBox2TestCase.java similarity index 100% rename from java_test/java/com/google/zxing/oned/rss/RSS14BlackBox2TestCase.java rename to tests/RSS14BlackBox2TestCase.java diff --git a/java_test/java/com/google/zxing/oned/rss/expanded/RSSExpandedBlackBox1TestCase.java b/tests/RSSExpandedBlackBox1TestCase.java similarity index 100% rename from java_test/java/com/google/zxing/oned/rss/expanded/RSSExpandedBlackBox1TestCase.java rename to tests/RSSExpandedBlackBox1TestCase.java diff --git a/java_test/java/com/google/zxing/oned/rss/expanded/RSSExpandedBlackBox2TestCase.java b/tests/RSSExpandedBlackBox2TestCase.java similarity index 100% rename from java_test/java/com/google/zxing/oned/rss/expanded/RSSExpandedBlackBox2TestCase.java rename to tests/RSSExpandedBlackBox2TestCase.java diff --git a/java_test/java/com/google/zxing/oned/rss/expanded/RSSExpandedBlackBox3TestCase.java b/tests/RSSExpandedBlackBox3TestCase.java similarity index 100% rename from java_test/java/com/google/zxing/oned/rss/expanded/RSSExpandedBlackBox3TestCase.java rename to tests/RSSExpandedBlackBox3TestCase.java diff --git a/java_test/java/com/google/zxing/oned/rss/expanded/RSSExpandedStackedBlackBox1TestCase.java b/tests/RSSExpandedStackedBlackBox1TestCase.java similarity index 100% rename from java_test/java/com/google/zxing/oned/rss/expanded/RSSExpandedStackedBlackBox1TestCase.java rename to tests/RSSExpandedStackedBlackBox1TestCase.java diff --git a/java_test/java/com/google/zxing/oned/rss/expanded/RSSExpandedStackedBlackBox2TestCase.java b/tests/RSSExpandedStackedBlackBox2TestCase.java similarity index 100% rename from java_test/java/com/google/zxing/oned/rss/expanded/RSSExpandedStackedBlackBox2TestCase.java rename to tests/RSSExpandedStackedBlackBox2TestCase.java diff --git a/java_test/java/com/google/zxing/oned/UPCABlackBox1TestCase.java b/tests/UPCABlackBox1TestCase.java similarity index 100% rename from java_test/java/com/google/zxing/oned/UPCABlackBox1TestCase.java rename to tests/UPCABlackBox1TestCase.java diff --git a/java_test/java/com/google/zxing/oned/UPCABlackBox2TestCase.java b/tests/UPCABlackBox2TestCase.java similarity index 100% rename from java_test/java/com/google/zxing/oned/UPCABlackBox2TestCase.java rename to tests/UPCABlackBox2TestCase.java diff --git a/java_test/java/com/google/zxing/oned/UPCABlackBox3ReflectiveTestCase.java b/tests/UPCABlackBox3ReflectiveTestCase.java similarity index 100% rename from java_test/java/com/google/zxing/oned/UPCABlackBox3ReflectiveTestCase.java rename to tests/UPCABlackBox3ReflectiveTestCase.java diff --git a/java_test/java/com/google/zxing/oned/UPCABlackBox4TestCase.java b/tests/UPCABlackBox4TestCase.java similarity index 100% rename from java_test/java/com/google/zxing/oned/UPCABlackBox4TestCase.java rename to tests/UPCABlackBox4TestCase.java diff --git a/java_test/java/com/google/zxing/oned/UPCABlackBox5TestCase.java b/tests/UPCABlackBox5TestCase.java similarity index 100% rename from java_test/java/com/google/zxing/oned/UPCABlackBox5TestCase.java rename to tests/UPCABlackBox5TestCase.java diff --git a/java_test/java/com/google/zxing/oned/UPCABlackBox6BlurryTestCase.java b/tests/UPCABlackBox6BlurryTestCase.java similarity index 100% rename from java_test/java/com/google/zxing/oned/UPCABlackBox6BlurryTestCase.java rename to tests/UPCABlackBox6BlurryTestCase.java diff --git a/java_test/java/com/google/zxing/oned/UPCEANExtensionBlackBox1TestCase.java b/tests/UPCEANExtensionBlackBox1TestCase.java similarity index 100% rename from java_test/java/com/google/zxing/oned/UPCEANExtensionBlackBox1TestCase.java rename to tests/UPCEANExtensionBlackBox1TestCase.java diff --git a/java_test/java/com/google/zxing/oned/UPCEBlackBox1TestCase.java b/tests/UPCEBlackBox1TestCase.java similarity index 100% rename from java_test/java/com/google/zxing/oned/UPCEBlackBox1TestCase.java rename to tests/UPCEBlackBox1TestCase.java diff --git a/java_test/java/com/google/zxing/oned/UPCEBlackBox2TestCase.java b/tests/UPCEBlackBox2TestCase.java similarity index 100% rename from java_test/java/com/google/zxing/oned/UPCEBlackBox2TestCase.java rename to tests/UPCEBlackBox2TestCase.java diff --git a/java_test/java/com/google/zxing/oned/UPCEBlackBox3ReflectiveTestCase.java b/tests/UPCEBlackBox3ReflectiveTestCase.java similarity index 100% rename from java_test/java/com/google/zxing/oned/UPCEBlackBox3ReflectiveTestCase.java rename to tests/UPCEBlackBox3ReflectiveTestCase.java diff --git a/java_test/java/com/google/zxing/common/AbstractBlackBoxTestCase.java b/tests/common/AbstractBlackBoxTestCase.java similarity index 100% rename from java_test/java/com/google/zxing/common/AbstractBlackBoxTestCase.java rename to tests/common/AbstractBlackBoxTestCase.java diff --git a/java_test/java/com/google/zxing/common/AbstractNegativeBlackBoxTestCase.java b/tests/common/AbstractNegativeBlackBoxTestCase.java similarity index 100% rename from java_test/java/com/google/zxing/common/AbstractNegativeBlackBoxTestCase.java rename to tests/common/AbstractNegativeBlackBoxTestCase.java diff --git a/src/common/TestResult.java b/tests/common/TestResult.java similarity index 100% rename from src/common/TestResult.java rename to tests/common/TestResult.java diff --git a/java_test/java/com/google/zxing/negative/FalsePositives2BlackBoxTestCase.java b/tests/negative/FalsePositives2BlackBoxTestCase.java similarity index 100% rename from java_test/java/com/google/zxing/negative/FalsePositives2BlackBoxTestCase.java rename to tests/negative/FalsePositives2BlackBoxTestCase.java diff --git a/java_test/java/com/google/zxing/negative/FalsePositivesBlackBoxTestCase.java b/tests/negative/FalsePositivesBlackBoxTestCase.java similarity index 100% rename from java_test/java/com/google/zxing/negative/FalsePositivesBlackBoxTestCase.java rename to tests/negative/FalsePositivesBlackBoxTestCase.java diff --git a/java_test/java/com/google/zxing/negative/PartialBlackBoxTestCase.java b/tests/negative/PartialBlackBoxTestCase.java similarity index 100% rename from java_test/java/com/google/zxing/negative/PartialBlackBoxTestCase.java rename to tests/negative/PartialBlackBoxTestCase.java diff --git a/java_test/java/com/google/zxing/negative/UnsupportedBlackBoxTestCase.java b/tests/negative/UnsupportedBlackBoxTestCase.java similarity index 100% rename from java_test/java/com/google/zxing/negative/UnsupportedBlackBoxTestCase.java rename to tests/negative/UnsupportedBlackBoxTestCase.java