1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
|
{{header}}
{{object 1 0}} <<
/Type /Catalog
/Pages 2 0 R
/OpenAction 10 0 R
>>
endobj
{{object 2 0}} <<
/Type /Pages
/Count 1
/Kids [
3 0 R
]
>>
endobj
% Page number 0.
{{object 3 0}} <<
/Type /Page
/Parent 2 0 R
/MediaBox [0 0 612 792]
>>
endobj
% OpenAction action
{{object 10 0}} <<
/Type /Action
/S /JavaScript
/JS 11 0 R
>>
endobj
% JS program to exexute
{{object 11 0}} <<
{{streamlen}}
>>
stream
function expect(str, expected) {
try {
var result = eval(str);
if (result == expected) {
app.alert('PASS: ' + str + ' = ' + result);
} else {
app.alert('FAIL: ' + str + ' = ' + result + ', expected = ' + expected);
}
} catch (e) {
app.alert('ERROR: ' + e.toString());
}
}
function expectError(str) {
try {
var result = eval(str);
app.alert('FAIL: ' + str + ' = ' + result + ', expected to throw error');
} catch (e) {
app.alert('PASS: ' + str + ' threw error ' + e.toString());
}
}
try {
expectError("color.convert()");
expectError("color.convert(1)");
expectError("color.convert(undefined, 'RGB')");
expectError("color.convert('BOGUS', 'RGB')");
expectError("color.convert('{}', 'RGB')");
// Can't convert transparent into anything else.
expect("color.convert(['T'], 'BOGUS')", "T");
expect("color.convert(['T'], 'T')", "T");
expect("color.convert(['T'], 'G')", "T");
expect("color.convert(['T'], 'RGB')", "T");
expect("color.convert(['T'], 'CMYK')", "T");
expect("color.convert(['G', 0.50], 'BOGUS')", "T");
expect("color.convert(['G', 0.50], 'T')", "T");
expect("color.convert(['G', 0.50], 'G')", "G,0.5");
expect("color.convert(['G', 0.50], 'RGB')", "RGB,0.5,0.5,0.5");
expect("color.convert(['G', 0.50], 'CMYK')", "CMYK,0,0,0,0.5");
expect("color.convert(['RGB', 0.25, 0.50, 0.75], 'BOGUS')", "T");
expect("color.convert(['RGB', 0.25, 0.50, 0.75], 'T')", "T");
expect("color.convert(['RGB', 1.00, 1.00, 1.00], 'G')", "G,1");
expect("color.convert(['RGB', 0.25, 0.50, 0.75], 'RGB')", "RGB,0.25,0.5,0.75");
expect("color.convert(['RGB', 0.25, 0.50, 0.75], 'CMYK')", "CMYK,0.75,0.5,0.25,0.25");
expect("color.convert(['CMYK',0.25,0.25,0.25,0.50], 'BOGUS')", "T");
expect("color.convert(['CMYK',0.25,0.25,0.25,0.50], 'T')", "T");
expect("color.convert(['CMYK',0.25,0.25,0.25,0.50], 'G')", "G,0.25");
expect("color.convert(['CMYK',0.25,0.25,0.25,0.50], 'RGB')", "RGB,0.25,0.25,0.25");
expect("color.convert(['CMYK',0.25,0.25,0.25,0.50], 'CMYK')", "CMYK,0.25,0.25,0.25,0.5");
expectError("color.equal()");
expectError("color.equal(1)");
expectError("color.equal(undefined, undefined)");
expectError("color.equal(undefined, 'BOGUS')");
expectError("color.equal('BOGUS', 'BOGUS')");
expectError("color.equal('BOGUS', ['T'])");
expectError("color.equal(['T'], 'BOGUS')");
expect("color.equal(['T'], ['T'])", true);
expect("color.equal(['T'], ['G', 0])", false);
expect("color.equal(['T'], ['RGB', 0, 0, 0])", false);
expect("color.equal(['T'], ['CMYK', 0, 0, 0, 0])", false);
expect("color.equal(['G', 0.50], ['T'])", false);
expect("color.equal(['G', 0.50], ['G', 0])", false);
expect("color.equal(['G', 0.50], ['G', 0.50])", true);
expect("color.equal(['G', 0.50], ['RGB', 0, 0, 0])", false);
expect("color.equal(['G', 0.50], ['RGB', 0.50, 0.50, 0.50])", true);
expect("color.equal(['G', 0.50], ['CMYK', 0, 0, 0, 0])", false);
expect("color.equal(['G', 0.50], ['CMYK', 0, 0, 0, 0.50])", true);
expect("color.equal(['RGB', 0.25, 0.25, 0.25], ['T'])", false);
expect("color.equal(['RGB', 0.25, 0.25, 0.25], ['G', 0])", false);
expect("color.equal(['RGB', 0.25, 0.25, 0.25], ['G', 0.25])", true);
expect("color.equal(['RGB', 0.25, 0.25, 0.25], ['RGB', 0, 0, 0])", false);
expect("color.equal(['RGB', 0.25, 0.25, 0.25], ['RGB', 0.25, 0.25, 0.25])", true);
expect("color.equal(['RGB', 0.25, 0.25, 0.25], ['CMYK', 0, 0, 0, 0])", false);
expect("color.equal(['RGB', 0.25, 0.25, 0.25], ['CMYK', 0.75, 0.75, 0.75, 0.75])", true);
expect("color.equal(['CMYK', 0.25, 0.25, 0.25, 0.50], ['T'])", false);
expect("color.equal(['CMYK', 0.00, 0.25, 0.25, 0.50], ['G', 0])", false);
expect("color.equal(['CMYK', 0.00, 0.00, 0.00, 0.50], ['G', 0.50])", true);
expect("color.equal(['CMYK', 0.75, 0.50, 0.25, 0.25], ['RGB', 0, 0, 0])", false);
expect("color.equal(['CMYK', 0.75, 0.50, 0.25, 0.25], ['RGB', 0.25, 0.50, 0.75])", true);
expect("color.equal(['CMYK', 0.25, 0.25, 0.25, 0.50], ['CMYK', 0, 0, 0, 0])", false);
expect("color.equal(['CMYK', 0.25, 0.25, 0.25, 0.50], ['CMYK', 0.25, 0.25, 0.25, 0.50])", true);
} catch (e) {
app.alert("Truly unexpected error: " + e);
}
endstream
endobj
{{xref}}
{{trailer}}
{{startxref}}
%%EOF
|