1f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project/*
2f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *  Licensed to the Apache Software Foundation (ASF) under one or more
3f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *  contributor license agreements.  See the NOTICE file distributed with
4f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *  this work for additional information regarding copyright ownership.
5f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *  The ASF licenses this file to You under the Apache License, Version 2.0
6f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *  (the "License"); you may not use this file except in compliance with
7f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *  the License.  You may obtain a copy of the License at
8f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *
9f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *     http://www.apache.org/licenses/LICENSE-2.0
10f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *
11f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *  Unless required by applicable law or agreed to in writing, software
12f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *  distributed under the License is distributed on an "AS IS" BASIS,
13f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *  See the License for the specific language governing permissions and
15f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *  limitations under the License.
16f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */
17f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
18f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectpackage tests.api.java.io;
19f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
20f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.io.ByteArrayInputStream;
21f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.io.CharArrayReader;
22f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.io.IOException;
23f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.io.PipedInputStream;
24f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.io.PipedOutputStream;
25f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.io.Reader;
26f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.io.StreamTokenizer;
27f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.io.StringBufferInputStream;
28f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.io.StringReader;
29f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
30f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport junit.framework.Assert;
31f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport tests.support.Support_StringReader;
32f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport tests.support.Support_ASimpleInputStream;
33f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport dalvik.annotation.TestLevel;
34f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport dalvik.annotation.TestTargetClass;
35f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport dalvik.annotation.TestTargetNew;
36f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport dalvik.annotation.TestTargets;
37f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// TODO: most of the assertTrue calls in this test case should be
38f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// replaced with assertEquals (possibly two assertEquals) see
39f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// test_ConstructorLjava_io_InputStream for example.
40f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// This gives much more helpful error messages.
41f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
42f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project@TestTargetClass(StreamTokenizer.class)
43f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectpublic class StreamTokenizerTest extends junit.framework.TestCase {
44f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    Support_StringReader r;
45f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
46f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    StreamTokenizer st;
47f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
48f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    String testString;
49f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
50f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
51f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.io.StreamTokenizer#StreamTokenizer(java.io.InputStream)
52f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
53f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
54f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
55f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
56f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "StreamTokenizer",
57f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {java.io.InputStream.class}
58f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
59f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_ConstructorLjava_io_InputStream() throws IOException {
60f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        st = new StreamTokenizer(new StringBufferInputStream(
61f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                "/comments\n d 8 'h'"));
62f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
63f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("the next token returned should be the letter d",
64f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                 StreamTokenizer.TT_WORD, st.nextToken());
65f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("the next token returned should be the letter d",
66f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                 "d", st.sval);
67f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
68f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("the next token returned should be the digit 8",
69f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                 StreamTokenizer.TT_NUMBER, st.nextToken());
70f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("the next token returned should be the digit 8",
71f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                 8.0, st.nval);
72f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
73f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("the next token returned should be the quote character",
74f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                 39, st.nextToken());
75f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("the next token returned should be the quote character",
76f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                 "h", st.sval);
77f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
78f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
79f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
80f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.io.StreamTokenizer#StreamTokenizer(java.io.Reader)
81f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
82f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
83f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
84f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
85f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "StreamTokenizer",
86f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {java.io.Reader.class}
87f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
88f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_ConstructorLjava_io_Reader() throws IOException {
89f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        setTest("/testing\n d 8 'h' ");
90f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("the next token returned should be the letter d skipping the comments",
91f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                 StreamTokenizer.TT_WORD, st.nextToken());
92f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("the next token returned should be the letter d",
93f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                 "d", st.sval);
94f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
95f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("the next token returned should be the digit 8",
96f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                 StreamTokenizer.TT_NUMBER, st.nextToken());
97f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("the next token returned should be the digit 8",
98f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                 8.0, st.nval);
99f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
100f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("the next token returned should be the quote character",
101f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                 39, st.nextToken());
102f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("the next token returned should be the quote character",
103f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                 "h", st.sval);
104f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
105f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
106f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
107f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.io.StreamTokenizer#commentChar(int)
108f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
109f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
110f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
111f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
112f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "commentChar",
113f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {int.class}
114f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
115f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_commentCharI() throws IOException {
116f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        setTest("*comment \n / 8 'h' ");
117f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        st.ordinaryChar('/');
118f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        st.commentChar('*');
119f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("nextToken() did not return the character / skiping the comments starting with *",
120f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                 47, st.nextToken());
121f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("the next token returned should be the digit 8", st
122f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project               .nextToken() == StreamTokenizer.TT_NUMBER
123f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project               && st.nval == 8.0);
124f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("the next token returned should be the quote character",
125f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project               st.nextToken() == 39 && st.sval.equals("h"));
126f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
127f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
128f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
129f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.io.StreamTokenizer#eolIsSignificant(boolean)
130f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
131f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
132f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
133f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
134f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "eolIsSignificant",
135f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {boolean.class}
136f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
137f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_eolIsSignificantZ() throws IOException {
138f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        setTest("d 8\n");
139f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // by default end of line characters are not significant
140f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("nextToken did not return d",
141f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project               st.nextToken() == StreamTokenizer.TT_WORD
142f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project               && st.sval.equals("d"));
143f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("nextToken did not return 8",
144f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project               st.nextToken() == StreamTokenizer.TT_NUMBER
145f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project               && st.nval == 8.0);
146f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("nextToken should be the end of file",
147f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project               st.nextToken() == StreamTokenizer.TT_EOF);
148f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        setTest("d\n");
149f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        st.eolIsSignificant(true);
150f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // end of line characters are significant
151f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("nextToken did not return d",
152f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project               st.nextToken() == StreamTokenizer.TT_WORD
153f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project               && st.sval.equals("d"));
154f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("nextToken is the end of line",
155f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project               st.nextToken() == StreamTokenizer.TT_EOL);
156f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
157f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
158f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
159f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.io.StreamTokenizer#lineno()
160f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
161f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
162f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
163f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
164f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "lineno",
165f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {}
166f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
167f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_lineno() throws IOException {
168f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        setTest("d\n 8\n");
169f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("the lineno should be 1", 1, st.lineno());
170f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        st.nextToken();
171f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        st.nextToken();
172f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("the lineno should be 2", 2, st.lineno());
173f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        st.nextToken();
174f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("the next line no should be 3", 3, st.lineno());
175f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
176f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
177f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
178f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.io.StreamTokenizer#lowerCaseMode(boolean)
179f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
180f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
181f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
182f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
183f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "lowerCaseMode",
184f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {boolean.class}
185f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
186f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_lowerCaseModeZ() throws Exception {
187f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // SM.
188f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        setTest("HELLOWORLD");
189f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        st.lowerCaseMode(true);
190f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
191f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        st.nextToken();
192f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("sval not converted to lowercase.", "helloworld", st.sval
193f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                 );
194f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
195f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
196f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
197f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.io.StreamTokenizer#nextToken()
198f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
199f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
200f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.PARTIAL_COMPLETE,
201f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "nextToken",
202f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {}
203f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
204f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_nextToken() throws IOException {
205f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        setTest("\r\n/* fje fje 43.4 f \r\n f g */  456.459 \r\n"
206f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                + "Hello  /     \r\n \r\n \n \r \257 Hi \'Hello World\'");
207f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        st.ordinaryChar('/');
208f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        st.slashStarComments(true);
209f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        st.nextToken();
210f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Wrong Token type1: " + (char) st.ttype,
211f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project               st.ttype == StreamTokenizer.TT_NUMBER);
212f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        st.nextToken();
213f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Wrong Token type2: " + st.ttype,
214f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project               st.ttype == StreamTokenizer.TT_WORD);
215f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        st.nextToken();
216f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Wrong Token type3: " + st.ttype, st.ttype == '/');
217f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        st.nextToken();
218f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Wrong Token type4: " + st.ttype,
219f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project               st.ttype == StreamTokenizer.TT_WORD);
220f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        st.nextToken();
221f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Wrong Token type5: " + st.ttype,
222f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project               st.ttype == StreamTokenizer.TT_WORD);
223f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        st.nextToken();
224f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Wrong Token type6: " + st.ttype, st.ttype == '\'');
225f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Wrong Token type7: " + st.ttype, st.sval
226f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project               .equals("Hello World"));
227f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        st.nextToken();
228f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Wrong Token type8: " + st.ttype, st.ttype == -1);
229f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
230f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        final PipedInputStream pin = new PipedInputStream();
231f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        PipedOutputStream pout = new PipedOutputStream(pin);
232f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        pout.write("hello\n\r\r".getBytes());
233f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        st = new StreamTokenizer(pin);
234f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        st.eolIsSignificant(true);
235f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Wrong token 1,1",
236f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project               st.nextToken() == StreamTokenizer.TT_WORD
237f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project               && st.sval.equals("hello"));
238f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Wrong token 1,2", st.nextToken() == '\n');
239f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Wrong token 1,3", st.nextToken() == '\n');
240f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Wrong token 1,4", st.nextToken() == '\n');
241f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        pout.close();
242f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Wrong token 1,5",
243f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project               st.nextToken() == StreamTokenizer.TT_EOF);
244f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
245f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        st = new StreamTokenizer(new Support_StringReader("\n \r\n#"));
246f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        st.ordinaryChar('\n'); // make \n ordinary
247f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        st.eolIsSignificant(true);
248f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Wrong token 2,1", st.nextToken() == '\n');
249f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Wrong token 2,2", st.nextToken() == '\n');
250f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("Wrong token 2,3", '#', st.nextToken());
251f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
252f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        Support_ASimpleInputStream sis = new Support_ASimpleInputStream();
253f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        sis.throwExceptionOnNextUse = true;
254f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        st = new StreamTokenizer(sis);
255f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
256f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            st.nextToken();
257f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("IOException expected.");
258f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (IOException e) {
259f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            // Expected.
260f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
261f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
262f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
263f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
264f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.io.StreamTokenizer#ordinaryChar(int)
265f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
266f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
267f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
268f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
269f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "ordinaryChar",
270f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {int.class}
271f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
272f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_ordinaryCharI() throws IOException {
273f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // SM.
274f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        setTest("Ffjein 893");
275f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        st.ordinaryChar('F');
276f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        st.nextToken();
277f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("OrdinaryChar failed." + (char) st.ttype,
278f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project               st.ttype == 'F');
279f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
280f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
281f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
282f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.io.StreamTokenizer#ordinaryChars(int, int)
283f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
284f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
285f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
286f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
287f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "ordinaryChars",
288f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {int.class, int.class}
289f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
290f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_ordinaryCharsII() throws IOException {
291f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // SM.
292f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        setTest("azbc iof z 893");
293f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        st.ordinaryChars('a', 'z');
294f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("OrdinaryChars failed.", 'a', st.nextToken());
295f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("OrdinaryChars failed.", 'z', st.nextToken());
296f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
297f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
298f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
299f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.io.StreamTokenizer#parseNumbers()
300f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
301f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
302f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
303f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
304f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "parseNumbers",
305f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {}
306f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
307f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_parseNumbers() throws IOException {
308f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // SM
309f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        setTest("9.9 678");
310f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Base behavior failed.",
311f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project               st.nextToken() == StreamTokenizer.TT_NUMBER);
312f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        st.ordinaryChars('0', '9');
313f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("setOrdinary failed.", '6', st.nextToken());
314f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        st.parseNumbers();
315f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("parseNumbers failed.",
316f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project               st.nextToken() == StreamTokenizer.TT_NUMBER);
317f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
318f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
319f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
320f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.io.StreamTokenizer#pushBack()
321f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
322f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
323f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
324f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
325f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "pushBack",
326f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {}
327f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
328f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_pushBack() throws IOException {
329f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // SM.
330f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        setTest("Hello 897");
331f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        st.nextToken();
332f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        st.pushBack();
333f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("PushBack failed.",
334f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project               st.nextToken() == StreamTokenizer.TT_WORD);
335f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
336f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
337f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
338f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.io.StreamTokenizer#quoteChar(int)
339f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
340f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
341f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
342f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
343f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "quoteChar",
344f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {int.class}
345f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
346f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_quoteCharI() throws IOException {
347f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // SM
348f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        setTest("<Hello World<    HelloWorldH");
349f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        st.quoteChar('<');
350f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("QuoteChar failed.", '<', st.nextToken());
351f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("QuoteChar failed.", "Hello World", st.sval);
352f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        st.quoteChar('H');
353f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        st.nextToken();
354f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("QuoteChar failed for word.", "elloWorld", st.sval
355f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                 );
356f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
357f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
358f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
359f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.io.StreamTokenizer#resetSyntax()
360f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
361f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
362f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
363f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
364f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "resetSyntax",
365f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {}
366f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
367f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_resetSyntax() throws IOException {
368f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // SM
369f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        setTest("H 9\' ello World");
370f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        st.resetSyntax();
371f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("resetSyntax failed1." + (char) st.ttype,
372f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project               st.nextToken() == 'H');
373f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("resetSyntax failed1." + (char) st.ttype,
374f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project               st.nextToken() == ' ');
375f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("resetSyntax failed2." + (char) st.ttype,
376f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project               st.nextToken() == '9');
377f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("resetSyntax failed3." + (char) st.ttype,
378f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project               st.nextToken() == '\'');
379f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
380f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
381f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
382f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.io.StreamTokenizer#slashSlashComments(boolean)
383f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
384f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
385f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
386f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
387f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "slashSlashComments",
388f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {boolean.class}
389f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
390f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_slashSlashCommentsZ() throws IOException {
391f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // SM.
392f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        setTest("// foo \r\n /fiji \r\n -456");
393f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        st.ordinaryChar('/');
394f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        st.slashSlashComments(true);
395f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("Test failed.", '/', st.nextToken());
396f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Test failed.",
397f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project               st.nextToken() == StreamTokenizer.TT_WORD);
398f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
399f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
400f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
401f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.io.StreamTokenizer#slashSlashComments(boolean)
402f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
403f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
404f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.PARTIAL,
405f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
406f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "slashSlashComments",
407f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {boolean.class}
408f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
409f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_slashSlashComments_withSSOpen() throws IOException {
410f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        Reader reader = new CharArrayReader( "t // t t t".toCharArray());
411f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
412f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        StreamTokenizer st = new StreamTokenizer(reader);
413f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        st.slashSlashComments(true);
414f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
415f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals(StreamTokenizer.TT_WORD,st.nextToken());
416f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals(StreamTokenizer.TT_EOF,st.nextToken());
417f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
418f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
419f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
420f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.io.StreamTokenizer#slashSlashComments(boolean)
421f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
422f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
423f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.PARTIAL,
424f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
425f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "slashSlashComments",
426f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {boolean.class}
427f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
428f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_slashSlashComments_withSSOpen_NoComment() throws IOException {
429f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        Reader reader = new CharArrayReader( "// t".toCharArray());
430f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
431f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        StreamTokenizer st = new StreamTokenizer(reader);
432f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        st.slashSlashComments(true);
433f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        st.ordinaryChar('/');
434f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
435f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals(StreamTokenizer.TT_EOF,st.nextToken());
436f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
437f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
438f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
439f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.io.StreamTokenizer#slashSlashComments(boolean)
440f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
441f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
442f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.PARTIAL,
443f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
444f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "slashSlashComments",
445f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {boolean.class}
446f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
447f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_slashSlashComments_withSSClosed() throws IOException {
448f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        Reader reader = new CharArrayReader( "// t".toCharArray());
449f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
450f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        StreamTokenizer st = new StreamTokenizer(reader);
451f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        st.slashSlashComments(false);
452f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        st.ordinaryChar('/');
453f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
454f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals('/',st.nextToken());
455f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals('/',st.nextToken());
456f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals(StreamTokenizer.TT_WORD,st.nextToken());
457f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
458f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
459f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
460f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.io.StreamTokenizer#slashStarComments(boolean)
461f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
462f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
463f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
464f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
465f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "slashStarComments",
466f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {boolean.class}
467f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
468f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_slashStarCommentsZ() throws IOException {
469f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        setTest("/* foo \r\n /fiji \r\n*/ -456");
470f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        st.ordinaryChar('/');
471f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        st.slashStarComments(true);
472f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Test failed.",
473f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project               st.nextToken() == StreamTokenizer.TT_NUMBER);
474f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
475f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
476f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
477f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.io.StreamTokenizer#slashStarComments(boolean)
478f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
479f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
480f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.PARTIAL,
481f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
482f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "slashStarComments",
483f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {boolean.class}
484f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
485f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_slashStarComments_withSTOpen() throws IOException {
486f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        Reader reader = new CharArrayReader( "t /* t */ t".toCharArray());
487f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
488f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        StreamTokenizer st = new StreamTokenizer(reader);
489f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        st.slashStarComments(true);
490f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
491f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals(StreamTokenizer.TT_WORD,st.nextToken());
492f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals(StreamTokenizer.TT_WORD,st.nextToken());
493f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals(StreamTokenizer.TT_EOF,st.nextToken());
494f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
495f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
496f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
497f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.io.StreamTokenizer#slashStarComments(boolean)
498f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
499f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
500f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.PARTIAL,
501f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
502f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "slashStarComments",
503f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {boolean.class}
504f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
505f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_slashStarComments_withSTClosed() throws IOException {
506f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        Reader reader = new CharArrayReader( "t /* t */ t".toCharArray());
507f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
508f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        StreamTokenizer st = new StreamTokenizer(reader);
509f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        st.slashStarComments(false);
510f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
511f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals(StreamTokenizer.TT_WORD,st.nextToken());
512f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals(StreamTokenizer.TT_EOF,st.nextToken());
513f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
514f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
515f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
516f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.io.StreamTokenizer#toString()
517f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
518f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
519f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
520f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
521f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "toString",
522f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {}
523f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
524f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_toString() throws IOException {
525f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        setTest("ABC Hello World");
526f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        st.nextToken();
527f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("toString failed." + st.toString(),
528f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project               st.toString().equals(
529f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                        "Token[ABC], line 1"));
530f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
531f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
532f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
533f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.io.StreamTokenizer#whitespaceChars(int, int)
534f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
535f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
536f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
537f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
538f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "whitespaceChars",
539f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {int.class, int.class}
540f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
541f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_whitespaceCharsII() throws IOException {
542f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        setTest("azbc iof z 893");
543f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        st.whitespaceChars('a', 'z');
544f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("OrdinaryChar failed.",
545f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project               st.nextToken() == StreamTokenizer.TT_NUMBER);
546f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
547f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
548f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
549f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.io.StreamTokenizer#wordChars(int, int)
550f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
551f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
552f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
553f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
554f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "wordChars",
555f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {int.class, int.class}
556f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
557f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_wordCharsII() throws IOException {
558f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        setTest("A893 -9B87");
559f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        st.wordChars('0', '9');
560f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("WordChar failed1.",
561f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project               st.nextToken() == StreamTokenizer.TT_WORD);
562f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("WordChar failed2.", "A893", st.sval);
563f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("WordChar failed3.",
564f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project               st.nextToken() == StreamTokenizer.TT_NUMBER);
565f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        st.nextToken();
566f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("WordChar failed4.", "B87", st.sval);
567f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
568f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        setTest("    Hello World");
569f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        st.wordChars(' ', ' ');
570f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        st.nextToken();
571f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("WordChars failed for whitespace.", "Hello World", st.sval
572f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                 );
573f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
574f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        setTest("    Hello World\r\n  \'Hello World\' Hello\' World");
575f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        st.wordChars(' ', ' ');
576f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        st.wordChars('\'', '\'');
577f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        st.nextToken();
578f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("WordChars failed for whitespace: " + st.sval, st.sval
579f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project               .equals("Hello World"));
580f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        st.nextToken();
581f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("WordChars failed for quote1: " + st.sval, st.sval
582f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project               .equals("\'Hello World\' Hello\' World"));
583f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
584f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
585f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    private void setTest(String s) {
586f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        testString = s;
587f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        r = new Support_StringReader(testString);
588f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        st = new StreamTokenizer(r);
589f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
590f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
591f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    protected void setUp() {
592f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
593f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
594f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    protected void tearDown() {
595f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
596f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
597f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargets({
598f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        @TestTargetNew(
599f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            level = TestLevel.PARTIAL,
600f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            notes = "General functionality of these methods tested in separate tests.",
601f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            method = "lineno",
602f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            args = {}
603f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        ),
604f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        @TestTargetNew(
605f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            level = TestLevel.PARTIAL_COMPLETE,
606f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            notes = "General functionality of these methods tested in separate tests.",
607f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            method = "nextToken",
608f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            args = {}
609f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        ),
610f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        @TestTargetNew(
611f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            level = TestLevel.PARTIAL,
612f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            notes = "General functionality of these methods tested in separate tests.",
613f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            method = "toString",
614f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            args = {}
615f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        ),
616f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        @TestTargetNew(
617f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            level = TestLevel.PARTIAL,
618f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            notes = "General functionality of these methods tested in separate tests.",
619f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            method = "commentChar",
620f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            args = {int.class}
621f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        ),
622f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        @TestTargetNew(
623f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            level = TestLevel.PARTIAL,
624f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            notes = "General functionality of these methods tested in separate tests.",
625f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            method = "eolIsSignificant",
626f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            args = {boolean.class}
627f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        ),
628f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        @TestTargetNew(
629f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            level = TestLevel.PARTIAL,
630f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            notes = "General functionality of these methods tested in separate tests.",
631f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            method = "lowerCaseMode",
632f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            args = {boolean.class}
633f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        ),
634f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        @TestTargetNew(
635f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            level = TestLevel.PARTIAL,
636f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            notes = "General functionality of these methods tested in separate tests.",
637f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            method = "ordinaryChar",
638f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            args = {int.class}
639f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        ),
640f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        @TestTargetNew(
641f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            level = TestLevel.PARTIAL,
642f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            notes = "General functionality of these methods tested in separate tests.",
643f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            method = "slashStarComments",
644f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            args = {boolean.class}
645f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        )
646f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    })
647f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_basicStringTokenizerMethods()
648f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    {
649f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        String str = "Testing 12345 \n alpha \r\n omega";
650f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        String strb = "-3.8 'BLIND mice' \r sEe /* how */ they run";
651f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        StringReader aa = new StringReader(str);
652f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        StringReader ba = new StringReader(strb);
653f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        StreamTokenizer a = new StreamTokenizer(aa);
654f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        StreamTokenizer b = new StreamTokenizer(ba);
655f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
656f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
657f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            Assert.assertTrue(a.lineno() == 1);
658f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            Assert.assertTrue(a.nextToken() == StreamTokenizer.TT_WORD);
659f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            Assert.assertTrue(a.toString().equals("Token[Testing], line 1"));
660f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            Assert.assertTrue(a.nextToken() == StreamTokenizer.TT_NUMBER);
661f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            Assert.assertTrue(a.toString().equals("Token[n=12345.0], line 1"));
662f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            Assert.assertTrue(a.nextToken() == StreamTokenizer.TT_WORD);
663f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            Assert.assertTrue(a.toString().equals("Token[alpha], line 2"));
664f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            Assert.assertTrue(a.nextToken() == StreamTokenizer.TT_WORD);
665f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            Assert.assertTrue(a.toString().equals("Token[omega], line 3"));
666f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            Assert.assertTrue(a.nextToken() == StreamTokenizer.TT_EOF);
667f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            Assert.assertTrue(a.toString().equals("Token[EOF], line 3"));
668f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
669f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            b.commentChar('u');
670f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            b.eolIsSignificant(true);
671f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            b.lowerCaseMode(true);
672f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            b.ordinaryChar('y');
673f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            b.slashStarComments(true);
674f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
675f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            Assert.assertTrue(b.nextToken() == StreamTokenizer.TT_NUMBER);
676f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            Assert.assertTrue(b.nval == -3.8);
677f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            Assert.assertTrue(b.toString().equals("Token[n=-3.8], line 1"));
678f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            Assert.assertTrue(b.nextToken() == 39); // '
679f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            Assert.assertTrue(b.toString().equals("Token[BLIND mice], line 1"));
680f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            Assert.assertTrue(b.nextToken() == 10); // \n
681f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            Assert.assertTrue(b.toString().equals("Token[EOL], line 2"));
682f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            Assert.assertTrue(b.nextToken() == StreamTokenizer.TT_WORD);
683f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            Assert.assertTrue(b.toString().equals("Token[see], line 2"));
684f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            Assert.assertTrue(b.nextToken() == StreamTokenizer.TT_WORD);
685f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            Assert.assertTrue(b.toString().equals("Token[the], line 2"));
686f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            Assert.assertTrue(b.nextToken() == 121); // y
687f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            Assert.assertTrue(b.toString().equals("Token['y'], line 2"));
688f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            Assert.assertTrue(b.nextToken() == StreamTokenizer.TT_WORD);
689f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            Assert.assertTrue(b.toString().equals("Token[r], line 2"));
690f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            Assert.assertTrue(b.nextToken() == StreamTokenizer.TT_EOF);
691f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            Assert.assertTrue(b.toString().equals("Token[EOF], line 2"));
692f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
693f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        catch (Exception ex){
694f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            System.out.println("Exception found in StreamTokenizer");
695f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            ex.printStackTrace();
696f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            throw new RuntimeException("error in test, see stdout");
697f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
698f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
699f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
700f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargets({
701f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        @TestTargetNew(
702f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            level = TestLevel.PARTIAL_COMPLETE,
703f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            notes = "",
704f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            method = "nextToken",
705f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            args = {}
706f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        ),
707f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        @TestTargetNew(
708f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            level = TestLevel.PARTIAL,
709f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            notes = "",
710f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            method = "toString",
711f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            args = {}
712f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        )
713f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    })
714f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_harmonyRegressionTest() {
715f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        byte[] data = new byte[] {(byte) '-'};
716f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        StreamTokenizer tokenizer = new StreamTokenizer(new ByteArrayInputStream(data));
717f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
718f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            tokenizer.nextToken();
719f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch(Exception e) {
720f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            Assert.fail(e.getMessage());
721f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
722f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        String result = tokenizer.toString();
723f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        Assert.assertEquals("Token['-'], line 1", result);
724f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
725f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
726f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargets({
727f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        @TestTargetNew(
728f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            level = TestLevel.PARTIAL_COMPLETE,
729f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            notes = "",
730f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            method = "nextToken",
731f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            args = {}
732f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        ),
733f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        @TestTargetNew(
734f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            level = TestLevel.PARTIAL,
735f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            notes = "",
736f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            method = "toString",
737f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            args = {}
738f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        )
739f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    })
740f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_harmonyRegressionTest2() {
741f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        byte[] data = new byte[] {(byte) '"',
742f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                                  (byte) 'H',
743f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                                  (byte) 'e',
744f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                                  (byte) 'l',
745f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                                  (byte) 'l',
746f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                                  (byte) 'o',
747f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                                  (byte) '"'};
748f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        StreamTokenizer tokenizer = new StreamTokenizer(new ByteArrayInputStream(data));
749f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
750f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            tokenizer.nextToken();
751f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (Exception e) {
752f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            e.printStackTrace();
753f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
754f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        String result = tokenizer.toString();
755f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        Assert.assertEquals("Token[Hello], line 1", result);
756f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
757f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project}
758