Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/mobile
Path: blob/master/test/jdk/java/text/Format/NumberFormat/PositionTest.java
41152 views
1
/*
2
* Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
3
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4
*
5
* This code is free software; you can redistribute it and/or modify it
6
* under the terms of the GNU General Public License version 2 only, as
7
* published by the Free Software Foundation.
8
*
9
* This code is distributed in the hope that it will be useful, but WITHOUT
10
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12
* version 2 for more details (a copy is included in the LICENSE file that
13
* accompanied this code).
14
*
15
* You should have received a copy of the GNU General Public License version
16
* 2 along with this work; if not, write to the Free Software Foundation,
17
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18
*
19
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20
* or visit www.oracle.com if you need additional information or have any
21
* questions.
22
*/
23
24
/**
25
* @test
26
* @bug 4109023 4153060 4153061
27
* @library /java/text/testlib
28
* @summary test ParsePosition and FieldPosition
29
*/
30
/*
31
(C) Copyright Taligent, Inc. 1996 - All Rights Reserved
32
(C) Copyright IBM Corp. 1996 - All Rights Reserved
33
34
The original version of this source code and documentation is copyrighted and
35
owned by Taligent, Inc., a wholly-owned subsidiary of IBM. These materials are
36
provided under terms of a License Agreement between Taligent and Sun. This
37
technology is protected by multiple US and International patents. This notice and
38
attribution to Taligent may not be removed.
39
Taligent is a registered trademark of Taligent, Inc.
40
*/
41
42
import java.text.*;
43
import java.io.*;
44
45
public class PositionTest extends IntlTest {
46
47
public static void main(String[] args) throws Exception {
48
new PositionTest().run(args);
49
}
50
51
public void TestParsePosition() {
52
ParsePosition pp1 = new ParsePosition(0);
53
if (pp1.getIndex() == 0) {
54
logln("PP constructor() tested.");
55
}else{
56
errln("*** PP getIndex or constructor() result");
57
}
58
59
{
60
int to = 5;
61
ParsePosition pp2 = new ParsePosition ( to );
62
if (pp2.getIndex() == 5) {
63
logln("PP getIndex and constructor(TextOffset) tested.");
64
}else{
65
errln("*** PP getIndex or constructor(TextOffset) result");
66
}
67
pp2.setIndex( 3 );
68
if (pp2.getIndex() == 3) {
69
logln("PP setIndex tested.");
70
}else{
71
errln("*** PP getIndex or setIndex result");
72
}
73
}
74
75
ParsePosition pp2, pp3;
76
pp2 = new ParsePosition( 3 );
77
pp3 = new ParsePosition( 5 );
78
ParsePosition pp4 = new ParsePosition(5);
79
if (! pp2.equals(pp3)) {
80
logln("PP not equals tested.");
81
}else{
82
errln("*** PP not equals fails");
83
}
84
if (pp3.equals(pp4)) {
85
logln("PP equals tested.");
86
}else{
87
errln("*** PP equals fails (" + pp3.getIndex() + " != " + pp4.getIndex() + ")");
88
}
89
90
ParsePosition pp5;
91
pp5 = pp4;
92
if (pp4.equals(pp5)) {
93
logln("PP operator= tested.");
94
}else{
95
errln("*** PP operator= operator== or operator != result");
96
}
97
98
}
99
100
public void TestFieldPosition() {
101
FieldPosition fp = new FieldPosition( 7 );
102
103
if (fp.getField() == 7) {
104
logln("FP constructor(int) and getField tested.");
105
}else{
106
errln("*** FP constructor(int) or getField");
107
}
108
109
FieldPosition fph = new FieldPosition( 3 );
110
if ( fph.getField() != 3) errln("*** FP getField or heap constr.");
111
112
boolean err1 = false;
113
boolean err2 = false;
114
boolean err3 = false;
115
// for (long i = -50; i < 50; i++ ) {
116
// fp.setField( i+8 );
117
// fp.setBeginIndex( i+6 );
118
// fp.setEndIndex( i+7 );
119
// if (fp.getField() != i+8) err1 = true;
120
// if (fp.getBeginIndex() != i+6) err2 = true;
121
// if (fp.getEndIndex() != i+7) err3 = true;
122
// }
123
if (!err1) {
124
logln("FP setField and getField tested.");
125
}else{
126
errln("*** FP setField or getField");
127
}
128
if (!err2) {
129
logln("FP setBeginIndex and getBeginIndex tested.");
130
}else{
131
errln("*** FP setBeginIndex or getBeginIndex");
132
}
133
if (!err3) {
134
logln("FP setEndIndex and getEndIndex tested.");
135
}else{
136
errln("*** FP setEndIndex or getEndIndex");
137
}
138
139
logln("");
140
}
141
142
public void TestFieldPosition_example() {
143
//***** no error detection yet !!!!!!!
144
//***** this test is for compiler checks and visual verification only.
145
double doubleNum[] = { 123456789.0, -12345678.9, 1234567.89, -123456.789,
146
12345.6789, -1234.56789, 123.456789, -12.3456789, 1.23456789};
147
int dNumSize = doubleNum.length;
148
149
DecimalFormat fmt = (DecimalFormat) NumberFormat.getInstance();
150
fmt.setDecimalSeparatorAlwaysShown(true);
151
152
final int tempLen = 20;
153
StringBuffer temp;
154
155
for (int i=0; i<dNumSize; i++) {
156
temp = new StringBuffer(); // Get new buffer
157
158
FieldPosition pos = new FieldPosition(NumberFormat.INTEGER_FIELD);
159
StringBuffer buf = new StringBuffer();
160
//char fmtText[tempLen];
161
//ToCharString(fmt->format(doubleNum[i], buf, pos), fmtText);
162
StringBuffer res = fmt.format(doubleNum[i], buf, pos);
163
int tempOffset = (tempLen <= (tempLen - pos.getEndIndex())) ?
164
tempLen : (tempLen - pos.getEndIndex());
165
for (int j=0; j<tempOffset; j++) temp.append('='); // initialize
166
//cout << temp << fmtText << endl;
167
logln("FP " + temp + res);
168
}
169
170
logln("");
171
}
172
/* @bug 4109023
173
* Need to override ParsePosition.equals and FieldPosition.equals.
174
*/
175
public void Test4109023()
176
{
177
178
ParsePosition p = new ParsePosition(3);
179
ParsePosition p2 = new ParsePosition(3);
180
if (!p.equals(p2))
181
errln("Error : ParsePosition.equals() failed");
182
FieldPosition fp = new FieldPosition(2);
183
FieldPosition fp2 = new FieldPosition(2);
184
if (!fp.equals(fp2))
185
errln("Error : FieldPosition.equals() failed");
186
}
187
188
/**
189
* @bug 4153060
190
* ParsePosition.hashCode() returns different values on equal objects.
191
*/
192
public void Test4153060() {
193
ParsePosition p = new ParsePosition(53);
194
ParsePosition q = new ParsePosition(53);
195
if (!p.equals(q)) {
196
errln("" + p + " and " + q + " are not equal and should be");
197
}
198
if (p.hashCode() != q.hashCode()) {
199
errln("ParsePosition.hashCode() different for equal objects");
200
} else {
201
logln("hashCode(" + p + ") = " + p.hashCode());
202
}
203
}
204
205
/**
206
* @bug 4153061
207
* FieldPosition.hashCode() returns different values on equal objects.
208
*/
209
public void Test4153061() {
210
FieldPosition p = new FieldPosition(53);
211
FieldPosition q = new FieldPosition(53);
212
if (!p.equals(q)) {
213
errln("" + p + " and " + q + " are not equal and should be");
214
}
215
if (p.hashCode() != q.hashCode()) {
216
errln("FieldPosition.hashCode() different for equal objects");
217
} else {
218
logln("hashCode(" + p + ") = " + p.hashCode());
219
}
220
}
221
}
222
223