1cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath/*
2cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath *  Licensed to the Apache Software Foundation (ASF) under one or more
3cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath *  contributor license agreements.  See the NOTICE file distributed with
4cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath *  this work for additional information regarding copyright ownership.
5cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath *  The ASF licenses this file to You under the Apache License, Version 2.0
6cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath *  (the "License"); you may not use this file except in compliance with
7cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath *  the License.  You may obtain a copy of the License at
8cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath *
9cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath *     http://www.apache.org/licenses/LICENSE-2.0
10cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath *
11cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath *  Unless required by applicable law or agreed to in writing, software
12cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath *  distributed under the License is distributed on an "AS IS" BASIS,
13cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath *  See the License for the specific language governing permissions and
15cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath *  limitations under the License.
16cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */
17cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
18ab762bb740405d0fefcccf4a0899a234f995be13Narayan Kamathpackage org.apache.harmony.tests.java.io;
19cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
20cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.io.ByteArrayInputStream;
21cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.io.CharArrayReader;
22cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.io.IOException;
23cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.io.PipedInputStream;
24cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.io.PipedOutputStream;
25cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.io.Reader;
26cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.io.StreamTokenizer;
27cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.io.StringBufferInputStream;
28cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
29cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport tests.support.Support_StringReader;
30cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
31cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathpublic class StreamTokenizerTest extends junit.framework.TestCase {
32cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    Support_StringReader r;
33cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
34cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    StreamTokenizer st;
35cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
36cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    String testString;
37cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
38cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
39cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.io.StreamTokenizer#StreamTokenizer(java.io.InputStream)
40cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
41cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    @SuppressWarnings("deprecation")
42cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_ConstructorLjava_io_InputStream() throws IOException {
43cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        st = new StreamTokenizer(new StringBufferInputStream(
44cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                "/comments\n d 8 'h'"));
45cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
46cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("the next token returned should be the letter d",
47cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                StreamTokenizer.TT_WORD, st.nextToken());
48cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("the next token returned should be the letter d",
49cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                "d", st.sval);
50cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
51cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("the next token returned should be the digit 8",
52cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                StreamTokenizer.TT_NUMBER, st.nextToken());
53cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("the next token returned should be the digit 8",
54cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                8.0, st.nval);
55cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
56cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("the next token returned should be the quote character",
57cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                39, st.nextToken());
58cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("the next token returned should be the quote character",
59cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                "h", st.sval);
60cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
61cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
62cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
63cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.io.StreamTokenizer#StreamTokenizer(java.io.Reader)
64cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
65cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_ConstructorLjava_io_Reader() throws IOException {
66cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        setTest("/testing\n d 8 'h' ");
67cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("the next token returned should be the letter d skipping the comments",
68cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                StreamTokenizer.TT_WORD, st.nextToken());
69cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("the next token returned should be the letter d",
70cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                "d", st.sval);
71cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
72cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("the next token returned should be the digit 8",
73cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                StreamTokenizer.TT_NUMBER, st.nextToken());
74cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("the next token returned should be the digit 8",
75cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                8.0, st.nval);
76cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
77cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("the next token returned should be the quote character",
78cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                39, st.nextToken());
79cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("the next token returned should be the quote character",
80cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                "h", st.sval);
81cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
82cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
83cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
84cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.io.StreamTokenizer#commentChar(int)
85cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
86cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_commentCharI() throws IOException {
87cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        setTest("*comment \n / 8 'h' ");
88cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        st.ordinaryChar('/');
89cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        st.commentChar('*');
90cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("nextToken() did not return the character / skiping the comments starting with *",
91cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                47, st.nextToken());
92cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertTrue("the next token returned should be the digit 8", st
93cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                .nextToken() == StreamTokenizer.TT_NUMBER
94cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                && st.nval == 8.0);
95cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertTrue("the next token returned should be the quote character",
96cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                st.nextToken() == 39 && st.sval.equals("h"));
97cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
98cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
99cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
100cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.io.StreamTokenizer#eolIsSignificant(boolean)
101cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
102cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_eolIsSignificantZ() throws IOException {
103cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        setTest("d 8\n");
104cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        // by default end of line characters are not significant
105cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertTrue("nextToken did not return d",
106cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                st.nextToken() == StreamTokenizer.TT_WORD
107cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                        && st.sval.equals("d"));
108cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertTrue("nextToken did not return 8",
109cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                st.nextToken() == StreamTokenizer.TT_NUMBER
110cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                        && st.nval == 8.0);
111cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertTrue("nextToken should be the end of file",
112cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                st.nextToken() == StreamTokenizer.TT_EOF);
113cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        setTest("d\n");
114cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        st.eolIsSignificant(true);
115cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        // end of line characters are significant
116cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertTrue("nextToken did not return d",
117cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                st.nextToken() == StreamTokenizer.TT_WORD
118cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                        && st.sval.equals("d"));
119cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertTrue("nextToken is the end of line",
120cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                st.nextToken() == StreamTokenizer.TT_EOL);
121cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
122cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
123cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
124cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.io.StreamTokenizer#lineno()
125cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
126cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_lineno() throws IOException {
127cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        setTest("d\n 8\n");
128cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("the lineno should be 1", 1, st.lineno());
129cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        st.nextToken();
130cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        st.nextToken();
131cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("the lineno should be 2", 2, st.lineno());
132cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        st.nextToken();
133cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("the next line no should be 3", 3, st.lineno());
134cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
135cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
136cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
137cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.io.StreamTokenizer#lowerCaseMode(boolean)
138cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
139cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_lowerCaseModeZ() throws Exception {
140cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        // SM.
141cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        setTest("HELLOWORLD");
142cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        st.lowerCaseMode(true);
143cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
144cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        st.nextToken();
145cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("sval not converted to lowercase.", "helloworld", st.sval
146cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        );
147cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
148cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
149cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
150cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.io.StreamTokenizer#nextToken()
151cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
152cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    @SuppressWarnings("deprecation")
153cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_nextToken() throws IOException {
154cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        // SM.
155cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        setTest("\r\n/* fje fje 43.4 f \r\n f g */  456.459 \r\n"
156cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                + "Hello  / 	\r\n \r\n \n \r \257 Hi \'Hello World\'");
157cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        st.ordinaryChar('/');
158cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        st.slashStarComments(true);
159cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        st.nextToken();
160cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertTrue("Wrong Token type1: " + (char) st.ttype,
161cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                st.ttype == StreamTokenizer.TT_NUMBER);
162cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        st.nextToken();
163cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertTrue("Wrong Token type2: " + st.ttype,
164cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                st.ttype == StreamTokenizer.TT_WORD);
165cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        st.nextToken();
166cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertTrue("Wrong Token type3: " + st.ttype, st.ttype == '/');
167cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        st.nextToken();
168cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertTrue("Wrong Token type4: " + st.ttype,
169cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                st.ttype == StreamTokenizer.TT_WORD);
170cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        st.nextToken();
171cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertTrue("Wrong Token type5: " + st.ttype,
172cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                st.ttype == StreamTokenizer.TT_WORD);
173cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        st.nextToken();
174cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertTrue("Wrong Token type6: " + st.ttype, st.ttype == '\'');
175cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertTrue("Wrong Token type7: " + st.ttype, st.sval
176cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                .equals("Hello World"));
177cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        st.nextToken();
178cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertTrue("Wrong Token type8: " + st.ttype, st.ttype == -1);
179cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
180cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        final PipedInputStream pin = new PipedInputStream();
181cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        PipedOutputStream pout = new PipedOutputStream(pin);
182cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        pout.write("hello\n\r\r".getBytes("UTF-8"));
183cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        StreamTokenizer s = new StreamTokenizer(pin);
184cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        s.eolIsSignificant(true);
185cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertTrue("Wrong token 1,1",
186cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                s.nextToken() == StreamTokenizer.TT_WORD
187cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                        && s.sval.equals("hello"));
188cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertTrue("Wrong token 1,2", s.nextToken() == '\n');
189cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertTrue("Wrong token 1,3", s.nextToken() == '\n');
190cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertTrue("Wrong token 1,4", s.nextToken() == '\n');
191cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        pout.close();
192cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertTrue("Wrong token 1,5",
193cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                s.nextToken() == StreamTokenizer.TT_EOF);
194cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        StreamTokenizer tokenizer = new StreamTokenizer(
195cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                new Support_StringReader("\n \r\n#"));
196cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        tokenizer.ordinaryChar('\n'); // make \n ordinary
197cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        tokenizer.eolIsSignificant(true);
198cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertTrue("Wrong token 2,1", tokenizer.nextToken() == '\n');
199cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertTrue("Wrong token 2,2", tokenizer.nextToken() == '\n');
200cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("Wrong token 2,3", '#', tokenizer.nextToken());
201cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
202cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
203cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
204cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.io.StreamTokenizer#ordinaryChar(int)
205cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
206cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_ordinaryCharI() throws IOException {
207cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        // SM.
208cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        setTest("Ffjein 893");
209cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        st.ordinaryChar('F');
210cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        st.nextToken();
211cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertTrue("OrdinaryChar failed." + (char) st.ttype,
212cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                st.ttype == 'F');
213cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
214cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
215cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
216cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.io.StreamTokenizer#ordinaryChars(int, int)
217cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
218cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_ordinaryCharsII() throws IOException {
219cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        // SM.
220cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        setTest("azbc iof z 893");
221cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        st.ordinaryChars('a', 'z');
222cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("OrdinaryChars failed.", 'a', st.nextToken());
223cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("OrdinaryChars failed.", 'z', st.nextToken());
224cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
225cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
226cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
227cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.io.StreamTokenizer#parseNumbers()
228cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
229cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_parseNumbers() throws IOException {
230cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        // SM
231cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        setTest("9.9 678");
232cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertTrue("Base behavior failed.",
233cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                st.nextToken() == StreamTokenizer.TT_NUMBER);
234cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        st.ordinaryChars('0', '9');
235cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("setOrdinary failed.", '6', st.nextToken());
236cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        st.parseNumbers();
237cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertTrue("parseNumbers failed.",
238cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                st.nextToken() == StreamTokenizer.TT_NUMBER);
239cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
240cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
241cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
242cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.io.StreamTokenizer#pushBack()
243cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
244cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_pushBack() throws IOException {
245cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        // SM.
246cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        setTest("Hello 897");
247cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        st.nextToken();
248cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        st.pushBack();
249cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertTrue("PushBack failed.",
250cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                st.nextToken() == StreamTokenizer.TT_WORD);
251cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
252cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
253cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
254cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.io.StreamTokenizer#quoteChar(int)
255cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
256cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_quoteCharI() throws IOException {
257cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        // SM
258cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        setTest("<Hello World<    HelloWorldH");
259cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        st.quoteChar('<');
260cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("QuoteChar failed.", '<', st.nextToken());
261cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("QuoteChar failed.", "Hello World", st.sval);
262cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        st.quoteChar('H');
263cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        st.nextToken();
264cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("QuoteChar failed for word.", "elloWorld", st.sval
265cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        );
266cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
267cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
268cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
269cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.io.StreamTokenizer#resetSyntax()
270cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
271cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_resetSyntax() throws IOException {
272cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        // SM
273cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        setTest("H 9\' ello World");
274cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        st.resetSyntax();
275cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertTrue("resetSyntax failed1." + (char) st.ttype,
276cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                st.nextToken() == 'H');
277cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertTrue("resetSyntax failed1." + (char) st.ttype,
278cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                st.nextToken() == ' ');
279cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertTrue("resetSyntax failed2." + (char) st.ttype,
280cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                st.nextToken() == '9');
281cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertTrue("resetSyntax failed3." + (char) st.ttype,
282cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                st.nextToken() == '\'');
283cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
284cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
285cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
286cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.io.StreamTokenizer#slashSlashComments(boolean)
287cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
288cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_slashSlashCommentsZ() throws IOException {
289cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        // SM.
290cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        setTest("// foo \r\n /fiji \r\n -456");
291cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        st.ordinaryChar('/');
292cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        st.slashSlashComments(true);
293cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("Test failed.", '/', st.nextToken());
294cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertTrue("Test failed.",
295cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                st.nextToken() == StreamTokenizer.TT_WORD);
296cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
297cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
298cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
299cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.io.StreamTokenizer#slashSlashComments(boolean)
300cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
301cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_slashSlashComments_withSSOpen() throws IOException {
302cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        Reader reader = new CharArrayReader("t // t t t".toCharArray());
303cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
304cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        StreamTokenizer st = new StreamTokenizer(reader);
305cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        st.slashSlashComments(true);
306cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
307cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(StreamTokenizer.TT_WORD, st.nextToken());
308cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(StreamTokenizer.TT_EOF, st.nextToken());
309cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
310cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
311cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
312cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.io.StreamTokenizer#slashSlashComments(boolean)
313cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
314cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_slashSlashComments_withSSOpen_NoComment() throws IOException {
315cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        Reader reader = new CharArrayReader("// t".toCharArray());
316cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
317cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        StreamTokenizer st = new StreamTokenizer(reader);
318cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        st.slashSlashComments(true);
319cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        st.ordinaryChar('/');
320cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
321cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(StreamTokenizer.TT_EOF, st.nextToken());
322cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
323cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
324cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
325cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.io.StreamTokenizer#slashSlashComments(boolean)
326cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
327cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_slashSlashComments_withSSClosed() throws IOException {
328cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        Reader reader = new CharArrayReader("// t".toCharArray());
329cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
330cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        StreamTokenizer st = new StreamTokenizer(reader);
331cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        st.slashSlashComments(false);
332cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        st.ordinaryChar('/');
333cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
334cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals('/', st.nextToken());
335cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals('/', st.nextToken());
336cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(StreamTokenizer.TT_WORD, st.nextToken());
337cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
338cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
339cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
340cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.io.StreamTokenizer#slashStarComments(boolean)
341cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
342cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_slashStarCommentsZ() throws IOException {
343cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        setTest("/* foo \r\n /fiji \r\n*/ -456");
344cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        st.ordinaryChar('/');
345cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        st.slashStarComments(true);
346cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertTrue("Test failed.",
347cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                st.nextToken() == StreamTokenizer.TT_NUMBER);
348cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
349cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
350cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
351cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.io.StreamTokenizer#slashStarComments(boolean)
352cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
353cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_slashStarComments_withSTOpen() throws IOException {
354cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        Reader reader = new CharArrayReader("t /* t */ t".toCharArray());
355cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
356cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        StreamTokenizer st = new StreamTokenizer(reader);
357cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        st.slashStarComments(true);
358cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
359cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(StreamTokenizer.TT_WORD, st.nextToken());
360cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(StreamTokenizer.TT_WORD, st.nextToken());
361cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(StreamTokenizer.TT_EOF, st.nextToken());
362cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
363cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
364cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
365cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.io.StreamTokenizer#slashStarComments(boolean)
366cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
367cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_slashStarComments_withSTClosed() throws IOException {
368cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        Reader reader = new CharArrayReader("t /* t */ t".toCharArray());
369cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
370cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        StreamTokenizer st = new StreamTokenizer(reader);
371cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        st.slashStarComments(false);
372cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
373cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(StreamTokenizer.TT_WORD, st.nextToken());
374cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(StreamTokenizer.TT_EOF, st.nextToken());
375cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
376cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
377cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
378cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.io.StreamTokenizer#toString()
379cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
380cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_toString() throws IOException {
381cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        setTest("ABC Hello World");
382cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        st.nextToken();
383cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertTrue("toString failed." + st.toString(),
384cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                st.toString().equals(
385cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                        "Token[ABC], line 1"));
386cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
387cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        // Regression test for HARMONY-4070
388cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        byte[] data = new byte[] { (byte) '-' };
389cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        StreamTokenizer tokenizer = new StreamTokenizer(
390cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                new ByteArrayInputStream(data));
391cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        tokenizer.nextToken();
392cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        String result = tokenizer.toString();
393cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("Token['-'], line 1", result);
394cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
395cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
396cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
397cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.io.StreamTokenizer#whitespaceChars(int, int)
398cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
399cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_whitespaceCharsII() throws IOException {
400cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        setTest("azbc iof z 893");
401cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        st.whitespaceChars('a', 'z');
402cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertTrue("OrdinaryChar failed.",
403cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                st.nextToken() == StreamTokenizer.TT_NUMBER);
404cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
405cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
406cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
407cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.io.StreamTokenizer#wordChars(int, int)
408cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
409cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_wordCharsII() throws IOException {
410cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        setTest("A893 -9B87");
411cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        st.wordChars('0', '9');
412cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertTrue("WordChar failed1.",
413cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                st.nextToken() == StreamTokenizer.TT_WORD);
414cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("WordChar failed2.", "A893", st.sval);
415cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertTrue("WordChar failed3.",
416cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                st.nextToken() == StreamTokenizer.TT_NUMBER);
417cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        st.nextToken();
418cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("WordChar failed4.", "B87", st.sval);
419cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
420cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        setTest("    Hello World");
421cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        st.wordChars(' ', ' ');
422cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        st.nextToken();
423cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("WordChars failed for whitespace.", "Hello World", st.sval
424cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        );
425cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
426cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        setTest("    Hello World\r\n  \'Hello World\' Hello\' World");
427cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        st.wordChars(' ', ' ');
428cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        st.wordChars('\'', '\'');
429cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        st.nextToken();
430cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertTrue("WordChars failed for whitespace: " + st.sval, st.sval
431cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                .equals("Hello World"));
432cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        st.nextToken();
433cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertTrue("WordChars failed for quote1: " + st.sval, st.sval
434cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                .equals("\'Hello World\' Hello\' World"));
435cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
436cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
437cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    private void setTest(String s) {
438cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        testString = s;
439cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        r = new Support_StringReader(testString);
440cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        st = new StreamTokenizer(r);
441cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
442cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
443cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    protected void setUp() {
444cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
445cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
446cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    protected void tearDown() {
447cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
448cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath}
449