1--TEST--
2product_numbers.phpt: Unit tests for
3--FILE--
4<?php
5// $Id$
6// Validate test script
7$noYes = array('NO', 'YES');
8
9require 'Validate/ISPN.php';
10
11echo "Test Validate_ISPN\n";
12echo "******************\n";
13
14$ucc12s = array(
15    '614141210220', // OK
16    '614141210221', // NOK
17);
18
19$ean8s = array(
20    '43210121', // OK
21    '43210128', // NOK
22);
23
24$ean13s = array(
25    '1014541210223', // OK
26    '1014541210228', // NOK
27);
28
29$ean14s = array(
30    '91014541210226', // OK
31    '91014541210221', // NOK
32);
33
34$ssccs = array(
35    '106141411928374657', // OK
36    '106141411928374651', // NOK
37);
38
39$issns = array(
40    '0366-3590', // OK
41    '03663590', // OK
42    '0004-6620', // OK
43    '0394-6320', // OK
44    '0395-7500', // OK
45    '8675-4548', // OK
46    '4342-7677', // OK
47    '4545-6569', // OK
48    '3434-6872', // OK
49    '1044-789X', // OK
50    '1044-7890', // NOK
51    '1044-789', // NOK
52    '9685-5656', // NOK
53    '8768-4564', // NOK
54    '4564-7786', // NOK
55    '2317-8472', // NOK
56    '8675-4543', // NOK
57    '4342-7675', // NOK
58    '1044-789X', // OK
59    '1044-7890', // NOK
60);
61
62$isbn10 = array(
63    '0-06-064831-7', // OK
64    '0-440-34319-4', // OK
65    'ISBN 0-8436-1072-7', // OK
66    'ISBN 0-7357-1410-X', // OK
67    'ISBN 0-7357-1410-0', // NOK
68    'ISBN 0-312-33177-0', // OK
69    '0-312-33177-0', // OK
70    'ISBN 0-201-63361-2', // OK
71    'ISBN 0-201-63361-3', // NOK
72    '1-873671-00-4', // NOK
73    '1873671003',    // NOK
74    '1-56619-909-2', // NOK
75    '1566199091',    // NOK
76    '0735714100',    // NOK
77    '013147149X',    // OK
78    '1590593804',    // OK
79    'ISBN 0-672-32704-X', // OK
80);
81
82$isbn13 = array(
83    '978-1-873671-00-9', // OK
84    '9781873671009',     // OK
85    '978-1-56619-909-4', // OK
86    '9781566199094',     // OK
87    '978-0131471498',    // OK
88    '978-1590593806',    // OK
89    '978-1590593803',    // NO
90    '978-0672327049', // OK
91);
92
93$ismns = array(
94    'M-345-24680-5', // OK
95    '2-345-24680-5', // NOK
96    'M-345-24680-4', // NOK
97    'M-2306-7118-7', // OK
98);
99
100$isrcs = array(
101    'FR-Z03-98-00212', // OK
102    'ISRC FR-Z03-98-00212', // OK
103    'ISRC FR - Z03 - 98 - 00212', // OK
104    'FR-Z03-91-01231', // OK
105    'FR-Z03-91-01232', // OK
106    'US-G34-04-25384', // OK
107    'US-MR1-63-10018', // OK
108    '34-234-34-12312', // NOK
109    'US-MR1-HE-ASDFG', // NOK
110);
111
112echo "\nTest UCC12\n";
113foreach ($ucc12s as $ucc12) {
114    echo "{$ucc12} : ".$noYes[Validate_ISPN::ucc12($ucc12)]."\n";
115}
116
117echo "\nTest EAN8\n";
118foreach ($ean8s as $ean8) {
119    echo "{$ean8} : ".$noYes[Validate_ISPN::ean8($ean8)]."\n";
120}
121
122echo "\nTest EAN13\n";
123foreach ($ean13s as $ean13) {
124    echo "{$ean13} : ".$noYes[Validate_ISPN::ean13($ean13)]."\n";
125}
126
127echo "\nTest EAN14\n";
128foreach ($ean14s as $ean14) {
129    echo "{$ean14} : ".$noYes[Validate_ISPN::ean14($ean14)]."\n";
130}
131
132echo "\nTest SSCC\n";
133foreach ($ssccs as $sscc) {
134    echo "{$sscc} : ".$noYes[Validate_ISPN::sscc($sscc)]."\n";
135}
136
137echo "\nTest ISSN\n";
138foreach ($issns as $issn) {
139    echo "{$issn} : ".$noYes[Validate_ISPN::issn($issn)]."\n";
140}
141
142echo "\nTest ISBN10\n";
143foreach ($isbn10 as $isbn) {
144    echo "{$isbn} : ".$noYes[Validate_ISPN::isbn10($isbn)]."\n";
145}
146
147echo "\nTest ISBN13\n";
148foreach ($isbn13 as $isbn) {
149    echo "{$isbn} : ".$noYes[Validate_ISPN::isbn13($isbn)]."\n";
150}
151
152echo "\nTest ISMN\n";
153foreach ($ismns as $ismn) {
154    echo "{$ismn} : ".$noYes[Validate_ISPN::ismn($ismn)]."\n";
155}
156
157echo "\nTest ISRC\n";
158foreach ($isrcs as $isrc) {
159    echo "{$isrc} : ".$noYes[Validate_ISPN::isrc($isrc)]."\n";
160}
161?>
162--EXPECT--
163Test Validate_ISPN
164******************
165
166Test UCC12
167614141210220 : YES
168614141210221 : NO
169
170Test EAN8
17143210121 : YES
17243210128 : NO
173
174Test EAN13
1751014541210223 : YES
1761014541210228 : NO
177
178Test EAN14
17991014541210226 : YES
18091014541210221 : NO
181
182Test SSCC
183106141411928374657 : YES
184106141411928374651 : NO
185
186Test ISSN
1870366-3590 : YES
18803663590 : YES
1890004-6620 : YES
1900394-6320 : YES
1910395-7500 : YES
1928675-4548 : YES
1934342-7677 : YES
1944545-6569 : YES
1953434-6872 : YES
1961044-789X : YES
1971044-7890 : NO
1981044-789 : NO
1999685-5656 : NO
2008768-4564 : NO
2014564-7786 : NO
2022317-8472 : NO
2038675-4543 : NO
2044342-7675 : NO
2051044-789X : YES
2061044-7890 : NO
207
208Test ISBN10
2090-06-064831-7 : YES
2100-440-34319-4 : YES
211ISBN 0-8436-1072-7 : YES
212ISBN 0-7357-1410-X : YES
213ISBN 0-7357-1410-0 : NO
214ISBN 0-312-33177-0 : YES
2150-312-33177-0 : YES
216ISBN 0-201-63361-2 : YES
217ISBN 0-201-63361-3 : NO
2181-873671-00-4 : NO
2191873671003 : NO
2201-56619-909-2 : NO
2211566199091 : NO
2220735714100 : NO
223013147149X : YES
2241590593804 : YES
225ISBN 0-672-32704-X : YES
226
227Test ISBN13
228978-1-873671-00-9 : YES
2299781873671009 : YES
230978-1-56619-909-4 : YES
2319781566199094 : YES
232978-0131471498 : YES
233978-1590593806 : YES
234978-1590593803 : NO
235978-0672327049 : YES
236
237Test ISMN
238M-345-24680-5 : YES
2392-345-24680-5 : NO
240M-345-24680-4 : NO
241M-2306-7118-7 : YES
242
243Test ISRC
244FR-Z03-98-00212 : YES
245ISRC FR-Z03-98-00212 : YES
246ISRC FR - Z03 - 98 - 00212 : YES
247FR-Z03-91-01231 : YES
248FR-Z03-91-01232 : YES
249US-G34-04-25384 : YES
250US-MR1-63-10018 : YES
25134-234-34-12312 : NO
252US-MR1-HE-ASDFG : NO