1f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project/* Licensed to the Apache Software Foundation (ASF) under one or more 2f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * contributor license agreements. See the NOTICE file distributed with 3f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * this work for additional information regarding copyright ownership. 4f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * The ASF licenses this file to You under the Apache License, Version 2.0 5f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * (the "License"); you may not use this file except in compliance with 6f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the License. You may obtain a copy of the License at 7f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 8f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 9f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 10f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 11f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 12f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * See the License for the specific language governing permissions and 14f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * limitations under the License. 15f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 16f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectpackage tests.api.java.util; 17f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 18f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport dalvik.annotation.TestTargetNew; 19f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport dalvik.annotation.TestTargets; 20f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport dalvik.annotation.TestLevel; 21f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport dalvik.annotation.TestTargetClass; 22f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport dalvik.annotation.KnownFailure; 23f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 24f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.io.Closeable; 25f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.io.EOFException; 26f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.io.File; 27f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.io.FileNotFoundException; 28f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.io.FileOutputStream; 29f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.io.IOException; 30f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.io.InputStream; 31f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.io.OutputStream; 32f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.io.PipedInputStream; 33f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.io.StringReader; 34f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.math.BigDecimal; 35f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.math.BigInteger; 36f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.net.InetSocketAddress; 37f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.net.ServerSocket; 38f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.net.Socket; 39f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.net.SocketAddress; 40f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.nio.CharBuffer; 41f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.nio.channels.FileChannel; 42f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.nio.channels.ReadableByteChannel; 43f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.nio.channels.ServerSocketChannel; 44f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.nio.channels.SocketChannel; 45f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.nio.charset.Charset; 46f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.util.Arrays; 47f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.util.InputMismatchException; 48f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.util.Locale; 49f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.util.NoSuchElementException; 50f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.util.Scanner; 51f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.util.regex.MatchResult; 52f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.util.regex.Pattern; 53f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 548ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabotimport tests.support.Support_Locale; 55f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport tests.support.Support_PortManager; 56f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 57f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport junit.framework.TestCase; 58f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 59f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project@TestTargetClass(Scanner.class) 60f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectpublic class ScannerTest extends TestCase { 6156176a05205eaf469469c26988e99077aed0d7e7Brett Chabot static final boolean disableRIBugs = false; 62f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 63f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project private Scanner s; 64f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 65f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project private ServerSocket server; 66f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 67f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project private SocketAddress address; 68f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 69f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project private SocketChannel client; 70f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 71f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project private Socket serverSocket; 72f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 73f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project private OutputStream os; 74f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 75f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project private static class MockCloseable implements Closeable, Readable { 76f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 77f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void close() throws IOException { 78f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project throw new IOException(); 79f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 80f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 81f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public int read(CharBuffer cb) throws IOException { 82f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project throw new EOFException(); 83f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 84f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 85f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 86f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 87f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 88f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Scanner#Scanner(File) 89f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 90f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 91f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 92f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 93f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "Scanner", 94f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.io.File.class} 95f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 96f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_ConstructorLjava_io_File() throws IOException { 97f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project File tmpFile = File.createTempFile("TestFileForScanner", ".tmp"); 98f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner(tmpFile); 99f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertNotNull(s); 100f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.close(); 101f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(tmpFile.delete()); 102f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 103f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 104f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner(tmpFile); 105f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("should throw FileNotFoundException"); 106f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (FileNotFoundException e) { 107f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 108f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 109f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 110f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project tmpFile = File.createTempFile("TestFileForScanner", ".tmp"); 111f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project FileOutputStream fos = new FileOutputStream(tmpFile); 112f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fos.write("test".getBytes()); 113f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 114f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner(tmpFile); 115f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project tmpFile.delete(); 116f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 117f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Scanner(File = null) 118f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 119f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner((File) null); 120f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw NullPointerException"); 121f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NullPointerException e) { 122f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 123f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 124f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 125f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // TODO: test if the default charset is used. 126f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 127f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 128f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 129f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Scanner#Scanner(File, String) 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 = "Scanner", 135f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.io.File.class, java.lang.String.class} 136f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 137f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_ConstructorLjava_io_FileLjava_lang_String() 138f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project throws IOException { 139f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project File tmpFile = File.createTempFile("TestFileForScanner", ".tmp"); 140f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner(tmpFile, Charset.defaultCharset().name()); 141f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertNotNull(s); 142f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.close(); 143f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(tmpFile.delete()); 144f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 145f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 146f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner(tmpFile, Charset.defaultCharset().name()); 147f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("should throw FileNotFoundException"); 148f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (FileNotFoundException e) { 149f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 150f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 151f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 152f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 153f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner(tmpFile, null); 154f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("should throw FileNotFoundException"); 155f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (FileNotFoundException e) { 156f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 157f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 158f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 159f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project tmpFile = File.createTempFile("TestFileForScanner", ".tmp"); 160f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 161f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner(tmpFile, "invalid charset"); 162f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("should throw IllegalArgumentException"); 163f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalArgumentException e) { 164f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 165f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 166f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 167f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //fail on RI. File is opened but not closed when exception is thrown on 168f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // RI. 169f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(tmpFile.delete()); 170f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 171f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Scanner(File = null, Charset = null) 172f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 173f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner((File) null, null); 174f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw NullPointerException"); 175f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NullPointerException e) { 176f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 177f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 178f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 179f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Scanner(File = null, Charset = UTF-8) 180f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 181f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner((File) null, "UTF-8"); 182f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw NullPointerException"); 183f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NullPointerException e) { 184f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 185f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 186f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 187f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Scanner(File = null, Charset = invalid) 188f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 189f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner((File) null, "invalid"); 190f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw NullPointerException"); 191f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NullPointerException e) { 192f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 193f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 194f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 195f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Scanner(File, Charset = null) 196f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 197f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project File f = File.createTempFile("test", ".tmp"); 198f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner(f, null); 199f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw IllegalArgumentException"); 200f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalArgumentException e) { 201f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 202f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 203f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 204f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // TODO: test if the specified charset is used. 205f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 206f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 207f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 208f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Scanner#Scanner(InputStream) 209f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 210f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 211f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 212f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 213f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "Scanner", 214f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.io.InputStream.class} 215f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 216f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_ConstructorLjava_io_InputStream() { 217f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner(new PipedInputStream()); 218f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertNotNull(s); 219f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.close(); 220f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 221f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Scanner(InputStream) 222f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 223f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner((InputStream) null); 224f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw NullPointerException"); 225f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NullPointerException e) { 226f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 227f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 228f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 229f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // TODO: test if the default charset is used. 230f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 231f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 232f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 233f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Scanner#Scanner(InputStream, String) 234f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 235f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 236f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 237f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 238f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "Scanner", 239f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.io.InputStream.class, java.lang.String.class} 240f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 241f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_ConstructorLjava_io_InputStreamLjava_lang_String() { 242f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner(new PipedInputStream(), Charset.defaultCharset().name()); 243f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertNotNull(s); 244f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.close(); 245f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 246f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 247f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner((PipedInputStream) null, "invalid charset"); 248f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("should throw NullPointerException"); 249f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NullPointerException e) { 250f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 251f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 252f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 253f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 254f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner(new PipedInputStream(), null); 255f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("should throw NullPointerException"); 256f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NullPointerException e) { 257f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 258f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 259f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 260f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 261f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner(new PipedInputStream(), "invalid charset"); 262f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("should throw IllegalArgumentException"); 263f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalArgumentException e) { 264f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 265f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 266f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 267f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // TODO: test if the specified charset is used. 268f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 269f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 270f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 271f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Scanner#Scanner(Readable) 272f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 273f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 274f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 275f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 276f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "Scanner", 277f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.lang.Readable.class} 278f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 279f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_ConstructorLjava_lang_Readable() { 280f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner(new StringReader("test string")); 281f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertNotNull(s); 282f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.close(); 283f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 284f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Scanner(Readable) 285f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 286f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner((Readable) null); 287f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw NullPointerException"); 288f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NullPointerException e) { 289f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 290f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 291f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 292f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 293f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 294f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Scanner#Scanner(ReadableByteChannel) 295f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 296f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 297f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 298f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 299f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "Scanner", 300f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.nio.channels.ReadableByteChannel.class} 301f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 302f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_ConstructorLjava_nio_channels_ReadableByteChannel() 303f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project throws IOException { 304f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project File tmpFile = File.createTempFile("TestFileForScanner", ".tmp"); 305f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project FileChannel fc = new FileOutputStream(tmpFile).getChannel(); 306f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner(fc); 307f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertNotNull(s); 308f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.close(); 309f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(tmpFile.delete()); 310f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 311f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Scanner(ReadableByteChannel) 312f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 313f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner((ReadableByteChannel) null); 314f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw NullPointerException"); 315f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NullPointerException e) { 316f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 317f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 318f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 319f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // TODO: test if the default charset is used. 320f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 321f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 322f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 323f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Scanner#Scanner(ReadableByteChannel, String) 324f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 325f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 326f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 327f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 328f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "Scanner", 329f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.nio.channels.ReadableByteChannel.class, java.lang.String.class} 330f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 331f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_ConstructorLjava_nio_channels_ReadableByteChannelLjava_lang_String() 332f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project throws IOException { 333f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project File tmpFile = File.createTempFile("TestFileForScanner", ".tmp"); 334f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project FileChannel fc = new FileOutputStream(tmpFile).getChannel(); 335f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner(fc, Charset.defaultCharset().name()); 336f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertNotNull(s); 337f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.close(); 338f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 339f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fc = new FileOutputStream(tmpFile).getChannel(); 340f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 341f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner(fc, "invalid charset"); 342f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("should throw IllegalArgumentException"); 343f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalArgumentException e) { 344f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 345f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 346f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fc.close(); 347f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(tmpFile.delete()); 348f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 349f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Scanner(ReadableByteChannel = null, Charset = null) 350f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 351f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner((ReadableByteChannel) null, null); 352f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw NullPointerException"); 353f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NullPointerException e) { 354f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 355f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 356f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 357f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Scanner(ReadableByteChannel = null, Charset = invalid) 358f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 359f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner((ReadableByteChannel) null, "invalid"); 360f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw NullPointerException"); 361f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NullPointerException e) { 362f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 363f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 364f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 365f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Scanner(ReadableByteChannel, Charset = null) 366f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 367f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner(fc, null); 368f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw IllegalArgumentException"); 369f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalArgumentException e) { 370f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 371f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 372f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // TODO: test if the specified charset is used. 373f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 374f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 375f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 376f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Scanner#Scanner(String) 377f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 378f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 379f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 380f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 381f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "Scanner", 382f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.lang.String.class} 383f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 384f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_ConstructorLjava_lang_String() { 385f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("test string"); 386f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertNotNull(s); 387f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.close(); 388f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 389f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Scanner(String) 390f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 391f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner((String) null); 392f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw NullPointerException"); 393f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NullPointerException e) { 394f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 395f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 396f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 397f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 398f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 399f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Scanner#close() 400f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 401f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 402f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 403f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 404f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "close", 405f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {} 406f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 407f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_close() throws IOException { 408f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project File tmpFile = File.createTempFile("TestFileForScanner", ".tmp"); 409f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project FileOutputStream fos = new FileOutputStream(tmpFile); 410f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project FileChannel fc = fos.getChannel(); 411f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner(fc); 412f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 413f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Write out a int before the scanner is closed, should be OK. 414f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fos.write(12); 415f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 416f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.close(); 417f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(fc.isOpen()); 418f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 419f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Write out a int after the scanner is closed, IOException should be 420f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // thrown out. 421f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 422f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fos.write(12); 423f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw IOException"); 424f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IOException e) { 425f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 426f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 427f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 428f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.close(); // no exception should be thrown 429f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(tmpFile.delete()); 430f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 431f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 432f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 433f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Scanner#ioException() 434f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 435f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 436f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 437f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 438f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "ioException", 439f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {} 440f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 441f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_ioException() throws IOException { 442f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project MockCloseable mc = new MockCloseable(); 443f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner(mc); 444f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertNull(s.ioException()); // No operation, no exception 445f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 446f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.close(); // IOException should be cached 447f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertNotNull(s.ioException()); 448f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.ioException() instanceof IOException); 449f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 450f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 451f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 452f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Scanner#delimiter() 453f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 454f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 455f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 456f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 457f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "delimiter", 458f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {} 459f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 460f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_delimiter() { 461f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("test"); 462f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Pattern pattern = s.delimiter(); 463f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("\\p{javaWhitespace}+", pattern.toString()); 464f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 465f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 466f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 467f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Scanner#useDelimiter(Pattern) 468f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 469f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 470f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 471f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 472f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "useDelimiter", 473f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.util.regex.Pattern.class} 474f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 475f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_useDelimiter_LPattern() { 476f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("test"); 477f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useDelimiter(Pattern.compile("\\w+")); 478f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("\\w+", s.delimiter().toString()); 479f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 480f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("test"); 481f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useDelimiter((Pattern) null); 482f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertNull(s.delimiter()); 483f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 484f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 485f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 486f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Scanner#useDelimiter(String) 487f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 488f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 489f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 490f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 491f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "useDelimiter", 492f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.lang.String.class} 493f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 494f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_useDelimiter_String() { 495f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("test"); 496f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 497f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useDelimiter((String) null); 498f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw NullPointerException"); 499f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NullPointerException e) { 500f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 501f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 502f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 503f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("test"); 504f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useDelimiter("\\w+"); 505f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("\\w+", s.delimiter().toString()); 506f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 507f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 508f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 509f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Scanner#locale() 510f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 511f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 512f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 513f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 514f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "locale", 515f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {} 516f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 517f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_locale() { 518f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("test"); 519f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(Locale.getDefault(), s.locale()); 520f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 521f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 522f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 523f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Scanner#useLocale(Locale) 524f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 525f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 526f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 527f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 528f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "useLocale", 529f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.util.Locale.class} 530f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 531f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_useLocale_LLocale() { 532f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("test"); 533f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 534f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(null); 535f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw NullPointerException"); 536f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NullPointerException e) { 537f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 538f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 539f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 540f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(new Locale("test", "test")); 541f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new Locale("test", "test"), s.locale()); 542f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 543f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 544f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 545f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Scanner#radix() 546f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 547f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 548f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 549f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 550f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "radix", 551f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {} 552f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 553f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_radix() { 554f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("test"); 555f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(10, s.radix()); 556f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 557f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 558f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 559f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Scanner#useRadix() 560f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 561f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 562f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 563f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 564f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "useRadix", 565f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {int.class} 566f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 567f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_useRadix_I() { 568f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("test"); 569f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 570f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useRadix(Character.MIN_RADIX - 1); 571f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw IllegalArgumentException"); 572f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalArgumentException e) { 573f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 574f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 575f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 576f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useRadix(Character.MAX_RADIX + 1); 577f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw IllegalArgumentException"); 578f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalArgumentException e) { 579f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 580f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 581f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useRadix(11); 582f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(11, s.radix()); 583f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 584f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 585f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 586f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Scanner#remove() 587f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 588f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 589f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 590f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 591f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "remove", 592f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {} 593f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 594f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_remove() { 595f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("aab*b*").useDelimiter("\\*"); 596f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 597f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.remove(); 598f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("should throw UnsupportedOperationException"); 599f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (UnsupportedOperationException e) { 600f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //Expected 601f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 602f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 603f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 604f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 605f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Scanner#match() 606f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 607f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 608f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 609f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 610f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "match", 611f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {} 612f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 613f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_match() { 614f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project MatchResult result ; 615f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("1 2 "); 616f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 617f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.match(); 618f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("should throw IllegalStateException"); 619f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalStateException e) { 620f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 621f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 622f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("1", s.next()); 623f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("2", s.next()); 624f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.match(); 625f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(2, result.start()); 626f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(3, result.end()); 627f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(2, result.start(0)); 628f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(3, result.end(0)); 629f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("2", result.group()); 630f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("2", result.group(0)); 631f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(0, result.groupCount()); 632f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 633f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result.start(1); 634f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("should throw IndexOutOfBoundsException"); 635f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IndexOutOfBoundsException e) { 636f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 637f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 638f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 639f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.next(); 640f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("should throw NoSuchElementException"); 641f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NoSuchElementException e) { 642f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 643f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 644f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 645f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.match(); 646f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("should throw IllegalStateException"); 647f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalStateException e) { 648f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 649f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 650f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 651f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("True faLse"); 652f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 653f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.match(); 654f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("should throw IllegalStateException"); 655f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalStateException e) { 656f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 657f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 658f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.nextBoolean()); 659f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.match(); 660f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(0, result.start()); 661f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(4, result.end()); 662f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(0, result.start(0)); 663f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(4, result.end(0)); 664f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("True", result.group()); 665f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(0, result.groupCount()); 666f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.nextBoolean()); 667f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 668f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextBoolean(); 669f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("should throw NoSuchElementException"); 670f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NoSuchElementException e) { 671f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 672f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 673f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 674f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.match(); 675f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("should throw IllegalStateException"); 676f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalStateException e) { 677f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 678f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 679f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 680f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("True faLse"); 681f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.nextBoolean()); 682f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.match(); 683f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(0, result.start()); 684f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(4, result.end()); 685f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(0, result.start(0)); 686f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(4, result.end(0)); 687f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("True", result.group()); 688f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(0, result.groupCount()); 689f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.close(); 690f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 691f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextBoolean(); 692f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("should throw IllegalStateException"); 693f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalStateException e) { 694f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 695f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 696f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.match(); 697f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(0, result.start()); 698f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(4, result.end()); 699f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(0, result.start(0)); 700f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(4, result.end(0)); 701f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("True", result.group()); 702f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(0, result.groupCount()); 703f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 704f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("True fase"); 705f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.nextBoolean()); 706f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(0, result.groupCount()); 707f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 708f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextBoolean(); 709f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 710f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 711f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 712f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 713f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 714f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.match(); 715f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("should throw IllegalStateException"); 716f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalStateException e) { 717f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 718f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 719f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 720f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("True fase"); 721f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.nextBoolean()); 722f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 723f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.next((Pattern)null); 724f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw NullPointerException"); 725f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NullPointerException e) { 726f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 727f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 728f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.match(); 729f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(0, result.start()); 730f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(4, result.end()); 731f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(0, result.start(0)); 732f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(4, result.end(0)); 733f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("True", result.group()); 734f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(0, result.groupCount()); 735f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 736f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 737f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 738f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 739f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws IOException 740f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Scanner#next() 741f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 742f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 743f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 744f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 745f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "next", 746f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {} 747f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 748f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_next() throws IOException { 749f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // use special delimiter 750f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("1**2").useDelimiter("\\*"); 751f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("1", s.next()); 752f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("", s.next()); 753f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("2", s.next()); 754f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 755f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner(" \t 1 \t 2").useDelimiter("\\s*"); 756f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("1", s.next()); 757f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("2", s.next()); 758f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 759f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.next(); 760f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("should throw NoSuchElementException"); 761f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NoSuchElementException e) { 762f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 763f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 764f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 765f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("a").useDelimiter("a?"); 766f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 767f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.next(); 768f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("should throw NoSuchElementException"); 769f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NoSuchElementException e) { 770f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 771f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 772f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 773f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("aa").useDelimiter("a?"); 774f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("", s.next()); 775f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 776f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.next(); 777f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("should throw NoSuchElementException"); 778f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NoSuchElementException e) { 779f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 780f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 781f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 782f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 783f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("word( )test( )").useDelimiter("\\( \\)"); 784f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("word", s.next()); 785f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("test", s.next()); 786f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 787f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("? next ").useDelimiter("( )"); 788f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("?", s.next()); 789f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("next", s.next()); 790f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("", s.next()); 791f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 792f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("word1 word2 "); 793f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("word1", s.next()); 794f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("word2", s.next()); 795f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // test boundary case 796f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 797f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.next(); 798f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("should throw NoSuchElementException"); 799f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NoSuchElementException e) { 800f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 801f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 802f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 803f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // just delimiter exists in this scanner 804f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner(" "); 805f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 806f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.next(); 807f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw NoSuchElementException"); 808f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NoSuchElementException e) { 809f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 810f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 811f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 812f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // nothing exists in this scanner 813f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner(""); 814f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 815f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.next(); 816f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw NoSuchElementException"); 817f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NoSuchElementException e) { 818f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 819f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 820f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 821f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // no delimiter exists in this scanner 822f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("test"); 823f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("test", s.next()); 824f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 825f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // input resourse starts with delimiter 826f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner(" test"); 827f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("test", s.next()); 828f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 829f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // input resource ends with delimiter 830f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner(" test "); 831f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("test", s.next()); 832f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 833f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Harmony uses 1024 as default buffer size, 834f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // What if a sentence can not be read in all in once. 835f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project StringBuilder longSentence = new StringBuilder(1025); 836f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project for (int i = 0; i < 11; i++) { 837f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project longSentence.append(" "); 838f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 839f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project for (int i = 11; i < 1026; i++) { 840f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project longSentence.append("a"); 841f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 842f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner(longSentence.toString()); 843f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(longSentence.toString().trim(), s.next()); 844f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 845f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner(" test test"); 846f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("test", s.next()); 847f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("test", s.next()); 848f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 849f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // What if use a delimiter of length 0. 850f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("test\ntest").useDelimiter(Pattern.compile("^", 851f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Pattern.MULTILINE)); 852f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("test\n", s.next()); 853f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("test", s.next()); 854f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 855f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("").useDelimiter(Pattern.compile("^", 856f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Pattern.MULTILINE)); 857f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 858f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.next(); 859f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("should throw NoSuchElementException"); 860f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NoSuchElementException e) { 861f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 862f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 863f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 864f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("").useDelimiter(Pattern.compile("^*", 865f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Pattern.MULTILINE)); 866f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 867f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.next(); 868f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("should throw NoSuchElementException"); 869f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NoSuchElementException e) { 870f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 871f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 872f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 873f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("test\ntest").useDelimiter(Pattern.compile("^*", 874f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Pattern.MULTILINE)); 875f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("t", s.next()); 876f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("e", s.next()); 877f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 878f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("\ntest\ntest").useDelimiter(Pattern.compile("$", 879f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Pattern.MULTILINE)); 880f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("\ntest", s.next()); 881f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("\ntest", s.next()); 882f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 883f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // test socket inputStream 884f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Harmony uses 1024 as default buffer size, 885f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // what if the leading delimiter is larger than 1023 886f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project for (int i = 0; i < 1024; i++) { 887f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project os.write(" ".getBytes()); 888f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 889f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project os.write(" 1 2 ".getBytes()); 890f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner(client); 891f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("1", s.next()); 892f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("2", s.next()); 893f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project os.write(" 1 2".getBytes()); 894f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project serverSocket.close(); 895f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("1", s.next()); 896f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("2", s.next()); 897f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 898f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.next(); 899f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("should throw NoSuchElementException"); 900f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NoSuchElementException e) { 901f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 902f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 903f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 904f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.close(); 905f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 906f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.next(); 907f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("IllegalStateException expected"); 908f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalStateException e) { 909f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //expected 910f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 911f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 912f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 913f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 914f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws IOException 915f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Scanner#next(Pattern) 916f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 917f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 918f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 919f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 920f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "next", 921f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.util.regex.Pattern.class} 922f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 923f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_nextLPattern() throws IOException { 924f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Pattern pattern; 925f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("aab*2*").useDelimiter("\\*"); 926f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project pattern = Pattern.compile("a*b"); 927f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("aab", s.next(pattern)); 928f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 929f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.next(pattern); 930f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("should throw InputMismatchException"); 931f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 932f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 933f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 934f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 935f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("word ? "); 936f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project pattern = Pattern.compile("\\w+"); 937f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("word", s.next(pattern)); 938f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 939f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.next(pattern); 940f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("should throw InputMismatchException"); 941f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 942f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 943f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 944f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 945f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("word1 word2 "); 946f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project pattern = Pattern.compile("\\w+"); 947f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("word1", s.next(pattern)); 948f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("word2", s.next(pattern)); 949f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // test boundary case 950f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 951f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.next(pattern); 952f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("should throw NoSuchElementException"); 953f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NoSuchElementException e) { 954f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 955f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 956f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 957f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // test socket inputStream 958f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 959f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project os.write("aab 2".getBytes()); 960f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project serverSocket.close(); 961f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 962f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner(client); 963f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project pattern = Pattern.compile("a*b"); 964f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("aab", s.next(pattern)); 965f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 966f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.next(pattern); 967f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("should throw InputMismatchException"); 968f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 969f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 970f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 971f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 972f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.close(); 973f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 974f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.next(pattern); 975f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("IllegalStateException expected"); 976f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalStateException e) { 977f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //expected 978f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 979f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 980f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 981f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 982f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws IOException 983f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Scanner#next(String) 984f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 985f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 986f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 987f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 988f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "next", 989f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.lang.String.class} 990f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 991f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_nextLString() throws IOException { 992f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("b*a*").useDelimiter("\\*"); 993f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("b", s.next("a*b")); 994f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 995f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.next("a*b"); 996f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("should throw InputMismatchException"); 997f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 998f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 999f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1000f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1001f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("word ? "); 1002f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("word", s.next("\\w+")); 1003f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1004f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.next("\\w+"); 1005f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("should throw InputMismatchException"); 1006f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 1007f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 1008f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1009f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1010f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("word1 next "); 1011f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("word1", s.next("\\w+")); 1012f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("next", s.next("\\w+")); 1013f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // test boundary case 1014f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1015f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.next("\\w+"); 1016f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("should throw NoSuchElementException"); 1017f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NoSuchElementException e) { 1018f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 1019f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1020f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1021f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // test socket inputStream 1022f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project os.write("aab 2".getBytes()); 1023f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project serverSocket.close(); 1024f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1025f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner(client); 1026f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("aab", s.next("a*b")); 1027f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1028f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.next("a*b"); 1029f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("should throw InputMismatchException"); 1030f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 1031f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 1032f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1033f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1034f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.close(); 1035f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1036f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.next("a*b"); 1037f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("IllegalStateException expected"); 1038f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalStateException e) { 1039f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //expected 1040f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1041f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1042f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1043f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 1044f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws IOException 1045f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Scanner#nextBoolean() 1046f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 1047f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 1048f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 1049f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 1050f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "nextBoolean", 1051f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {} 1052f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 1053f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_nextBoolean() throws IOException { 1054f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // case insensitive 1055f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("TRue"); 1056f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.nextBoolean()); 1057f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1058f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("tRue false"); 1059f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.nextBoolean()); 1060f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.nextBoolean()); 1061f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1062f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextBoolean(); 1063f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw NoSuchElementException"); 1064f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NoSuchElementException e) { 1065f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 1066f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1067f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1068f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("true1"); 1069f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1070f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextBoolean(); 1071f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 1072f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 1073f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 1074f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1075f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1076f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1077f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner(""); 1078f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextBoolean(); 1079f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw NoSuchElementException"); 1080f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NoSuchElementException e) { 1081f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 1082f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1083f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1084f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // test socket inputStream 1085f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project os.write("true false".getBytes()); 1086f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project serverSocket.close(); 1087f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1088f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner(client); 1089f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.nextBoolean()); 1090f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.nextBoolean()); 1091f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1092f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // ues '*' as delimiter 1093f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("true**false").useDelimiter("\\*"); 1094f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.nextBoolean()); 1095f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1096f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextBoolean(); 1097f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("should throw NoSuchElementException"); 1098f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NoSuchElementException e) { 1099f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 1100f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1101f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1102f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("false( )").useDelimiter("\\( \\)"); 1103f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.nextBoolean()); 1104f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1105f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.close(); 1106f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1107f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextBoolean(); 1108f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("IllegalStateException expected"); 1109f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalStateException e) { 1110f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //expected 1111f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1112f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1113f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1114f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 1115f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws IOException 1116f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Scanner#nextInt(int) 1117f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 1118f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 1119f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 1120f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 1121f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "nextInt", 1122f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {int.class} 1123f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 1124f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_nextIntI() throws IOException { 11258ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot Locale[] requiredLocales = {Locale.GERMANY, Locale.ENGLISH, Locale.CHINESE}; 11268ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot if (!Support_Locale.areLocalesAvailable(requiredLocales)) { 11278ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot // locale dependent test, bug 1943269 11288ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot return; 11298ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot } 1130f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123 456"); 1131f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(123, s.nextInt(10)); 1132f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(456, s.nextInt(10)); 1133f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1134f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextInt(10); 1135f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw NoSuchElementException"); 1136f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NoSuchElementException e) { 1137f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 1138f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1139f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1140f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If the radix is different from 10 1141f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123 456"); 1142f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(38, s.nextInt(5)); 1143f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1144f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextInt(5); 1145f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 1146f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 1147f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 1148f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1149f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1150f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If the number is out of range 1151f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123456789123456789123456789123456789"); 1152f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1153f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextInt(10); 1154f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 1155f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 1156f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 1157f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1158f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1159f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 1160f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Different locale can only recognize corresponding locale sensitive 1161f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * string. ',' is used in many locales as group separator. 1162f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 1163f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("23,456 23,456"); 1164f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.GERMANY); 1165f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1166f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextInt(10); 1167f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 1168f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 1169f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 1170f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1171f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 1172f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If exception is thrown out, input will not be advanced. 1173f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(23456, s.nextInt(10)); 1174f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(23456, s.nextInt(10)); 1175f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1176f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 1177f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * ''' is used in many locales as group separator. 1178f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 1179f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("23'456 23'456"); 1180f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.GERMANY); 1181f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1182f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextInt(10); 1183f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 1184f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 1185f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 1186f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1187f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(new Locale("de", "CH")); 1188f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If exception is thrown out, input will not be advanced. 1189f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(23456, s.nextInt(10)); 1190f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(23456, s.nextInt(10)); 1191f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1192f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 1193f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * The input string has Arabic-Indic digits. 1194f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 1195f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("1\u06602 1\u06662"); 1196f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(102, s.nextInt(10)); 1197f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1198f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextInt(5); 1199f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 1200f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 1201f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 1202f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1203f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(162, s.nextInt(10)); 1204f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1205f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 1206f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * '.' is used in many locales as group separator. The input string 1207f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * has Arabic-Indic digits . 1208f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 1209f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("23.45\u0666 23.456"); 1210f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.CHINESE); 1211f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1212f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextInt(10); 1213f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 1214f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 1215f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 1216f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1217f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.GERMANY); 1218f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If exception is thrown out, input will not be advanced. 1219f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(23456, s.nextInt(10)); 1220f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(23456, s.nextInt(10)); 1221f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1222f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // The input string starts with zero 1223f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("03,456"); 1224f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 1225f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1226f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextInt(10); 1227f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 1228f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 1229f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 1230f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1231f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1232f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("03456"); 1233f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(3456, s.nextInt(10)); 1234f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1235f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("\u06603,456"); 1236f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 1237f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(3456, s.nextInt(10)); 1238f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1239f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("E3456"); 1240f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(930902, s.nextInt(16)); 1241f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // The following test case fails on RI, because RI does not support 1242f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // letter as leading digit 1243f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project if (!disableRIBugs) { 1244f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("E3,456"); 1245f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 1246f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(930902, s.nextInt(16)); 1247f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1248f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1249f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 1250f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * There are 3 types of zero digit in all locales, '0' '\u0966' '\u0e50' 1251f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * respectively, but they are not differentiated. 1252f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 1253f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("12300"); 1254f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.CHINESE); 1255f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(12300, s.nextInt(10)); 1256f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1257f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123\u0966\u0966"); 1258f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.CHINESE); 1259f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(12300, s.nextInt(10)); 1260f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1261f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123\u0e50\u0e50"); 1262f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.CHINESE); 1263f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(12300, s.nextInt(10)); 1264f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1265f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 1266f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * There are three types of negative prefix all in all. '' '-' '(' There 1267f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * are three types of negative suffix all in all. '' '-' ')' '(' and ')' 1268f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * must be used togethor. Prefix '-' and suffix '-' must be used 1269f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * exclusively. 1270f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 1271f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1272f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 1273f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * According to Integer regular expression: Integer :: = ( [-+]? (* 1274f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Numeral ) ) | LocalPositivePrefix Numeral LocalPositiveSuffix | 1275f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * LocalNegativePrefix Numeral LocalNegativeSuffix 123- should be 1276f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * recognized by scanner with locale ar_AE, (123) shouble be recognized 1277f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * by scanner with locale mk_MK. But this is not the case on RI. 1278f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 1279f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("-123 123- -123-"); 1280f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(new Locale("ar", "AE")); 1281f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(-123, s.nextInt(10)); 1282f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // The following test case fails on RI 1283f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project if (!disableRIBugs) { 1284f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(-123, s.nextInt(10)); 1285f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1286f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1287f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextInt(10); 1288f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 1289f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 1290f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 1291f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1292f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 129356176a05205eaf469469c26988e99077aed0d7e7Brett Chabot // locale dependent test, bug 1943269 129456176a05205eaf469469c26988e99077aed0d7e7Brett Chabot if (Support_Locale.areLocalesAvailable(new Locale[] { new Locale("mk", "MK")})) { 129556176a05205eaf469469c26988e99077aed0d7e7Brett Chabot s = new Scanner("-123 123- (123)"); 129656176a05205eaf469469c26988e99077aed0d7e7Brett Chabot s.useLocale(new Locale("mk", "MK")); 1297f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(-123, s.nextInt(10)); 1298f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 129956176a05205eaf469469c26988e99077aed0d7e7Brett Chabot s.nextInt(); 130056176a05205eaf469469c26988e99077aed0d7e7Brett Chabot fail("Should throw InputMismatchException"); 130156176a05205eaf469469c26988e99077aed0d7e7Brett Chabot } catch (InputMismatchException e) { 130256176a05205eaf469469c26988e99077aed0d7e7Brett Chabot // expected 1303f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 130456176a05205eaf469469c26988e99077aed0d7e7Brett Chabot // Skip the un-recognizable token 123-. 130556176a05205eaf469469c26988e99077aed0d7e7Brett Chabot assertEquals("123-", s.next()); 130656176a05205eaf469469c26988e99077aed0d7e7Brett Chabot // The following test case fails on RI 130756176a05205eaf469469c26988e99077aed0d7e7Brett Chabot if (!disableRIBugs) { 130856176a05205eaf469469c26988e99077aed0d7e7Brett Chabot assertEquals(-123, s.nextInt(10)); 130956176a05205eaf469469c26988e99077aed0d7e7Brett Chabot 131056176a05205eaf469469c26988e99077aed0d7e7Brett Chabot // If the parameter radix is illegal, the following test cases fail on 131156176a05205eaf469469c26988e99077aed0d7e7Brett Chabot // RI 131256176a05205eaf469469c26988e99077aed0d7e7Brett Chabot try { 131356176a05205eaf469469c26988e99077aed0d7e7Brett Chabot s.nextInt(Character.MIN_RADIX - 1); 131456176a05205eaf469469c26988e99077aed0d7e7Brett Chabot fail("Should throw IllegalArgumentException"); 131556176a05205eaf469469c26988e99077aed0d7e7Brett Chabot } catch (IllegalArgumentException e) { 131656176a05205eaf469469c26988e99077aed0d7e7Brett Chabot // Expected 131756176a05205eaf469469c26988e99077aed0d7e7Brett Chabot } 131856176a05205eaf469469c26988e99077aed0d7e7Brett Chabot try { 131956176a05205eaf469469c26988e99077aed0d7e7Brett Chabot s.nextInt(Character.MAX_RADIX + 1); 132056176a05205eaf469469c26988e99077aed0d7e7Brett Chabot fail("Should throw IllegalArgumentException"); 132156176a05205eaf469469c26988e99077aed0d7e7Brett Chabot } catch (IllegalArgumentException e) { 132256176a05205eaf469469c26988e99077aed0d7e7Brett Chabot // Expected 132356176a05205eaf469469c26988e99077aed0d7e7Brett Chabot } 1324f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1325f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1326f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1327f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.close(); 1328f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1329f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextInt(10); 1330f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("IllegalStateException expected"); 1331f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalStateException e) { 1332f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //expected 1333f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1334f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1335f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1336f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 1337f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws IOException 1338f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Scanner#nextInt() 1339f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 1340f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 1341f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 1342f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 1343f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "nextInt", 1344f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {} 1345f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 1346f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_nextInt() throws IOException { 13478ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot Locale[] requiredLocales = {Locale.GERMANY, Locale.CHINESE, Locale.ENGLISH}; 13488ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot if (!Support_Locale.areLocalesAvailable(requiredLocales)) { 13498ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot // locale dependent test, bug 1943269 13508ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot return; 13518ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot } 1352f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123 456"); 1353f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(123, s.nextInt()); 1354f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(456, s.nextInt()); 1355f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1356f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextInt(); 1357f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw NoSuchElementException"); 1358f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NoSuchElementException e) { 1359f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 1360f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1361f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1362f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If the radix is different from 10 1363f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123 456"); 1364f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useRadix(5); 1365f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(38, s.nextInt()); 1366f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1367f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextInt(); 1368f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 1369f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 1370f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 1371f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1372f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1373f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If the number is out of range 1374f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123456789123456789123456789123456789"); 1375f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1376f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextInt(); 1377f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 1378f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 1379f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 1380f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1381f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1382f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 1383f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Different locale can only recognize corresponding locale sensitive 1384f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * string. ',' is used in many locales as group separator. 1385f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 1386f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("23,456 23,456"); 1387f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.GERMANY); 1388f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1389f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextInt(); 1390f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 1391f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 1392f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 1393f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1394f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 1395f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If exception is thrown out, input will not be advanced. 1396f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(23456, s.nextInt()); 1397f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(23456, s.nextInt()); 1398f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1399f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 1400f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * ''' is used in many locales as group separator. 1401f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 1402f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("23'456 23'456"); 1403f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.GERMANY); 1404f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1405f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextInt(); 1406f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 1407f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 1408f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 1409f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1410f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(new Locale("de", "CH")); 1411f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If exception is thrown out, input will not be advanced. 1412f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(23456, s.nextInt()); 1413f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(23456, s.nextInt()); 1414f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1415f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 1416f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * The input string has Arabic-Indic digits. 1417f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 1418f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("1\u06602 1\u06662"); 1419f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(102, s.nextInt()); 1420f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useRadix(5); 1421f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1422f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextInt(); 1423f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 1424f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 1425f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 1426f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1427f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useRadix(10); 1428f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(162, s.nextInt()); 1429f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1430f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 1431f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * '.' is used in many locales as group separator. The input string 1432f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * has Arabic-Indic digits . 1433f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 1434f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("23.45\u0666 23.456"); 1435f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.CHINESE); 1436f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1437f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextInt(); 1438f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 1439f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 1440f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 1441f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1442f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.GERMANY); 1443f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If exception is thrown out, input will not be advanced. 1444f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(23456, s.nextInt()); 1445f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(23456, s.nextInt()); 1446f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1447f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // The input string starts with zero 1448f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("03,456"); 1449f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 1450f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1451f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextInt(); 1452f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 1453f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 1454f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 1455f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1456f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1457f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("03456"); 1458f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(3456, s.nextInt()); 1459f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1460f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("\u06603,456"); 1461f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 1462f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(3456, s.nextInt()); 1463f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1464f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("E3456"); 1465f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useRadix(16); 1466f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(930902, s.nextInt()); 1467f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1468f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // The following test case fails on RI, because RI does not support 1469f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // letter as leading digit 1470f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("E3,456"); 1471f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 1472f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useRadix(16); 1473f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project if (!disableRIBugs) { 1474f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(930902, s.nextInt()); 1475f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1476f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1477f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 1478f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * There are 3 types of zero digit in all locales, '0' '\u0966' '\u0e50' 1479f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * respectively, but they are not differentiated. 1480f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 1481f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("12300"); 1482f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.CHINESE); 1483f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(12300, s.nextInt()); 1484f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1485f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123\u0966\u0966"); 1486f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.CHINESE); 1487f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(12300, s.nextInt()); 1488f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1489f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123\u0e50\u0e50"); 1490f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.CHINESE); 1491f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(12300, s.nextInt()); 1492f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1493f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 1494f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * There are three types of negative prefix all in all. '' '-' '(' There 1495f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * are three types of negative suffix all in all. '' '-' ')' '(' and ')' 1496f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * must be used togethor. Prefix '-' and suffix '-' must be used 1497f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * exclusively. 1498f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 1499f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1500f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 1501f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * According to Integer regular expression: Integer :: = ( [-+]? (* 1502f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Numeral ) ) | LocalPositivePrefix Numeral LocalPositiveSuffix | 1503f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * LocalNegativePrefix Numeral LocalNegativeSuffix 123- should be 1504f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * recognized by scanner with locale ar_AE, (123) shouble be recognized 1505f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * by scanner with locale mk_MK. But this is not the case on RI. 1506f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 1507f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("-123 123- -123-"); 1508f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(new Locale("ar", "AE")); 1509f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(-123, s.nextInt()); 1510f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // The following test case fails on RI 1511f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project if (!disableRIBugs) { 1512f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(-123, s.nextInt()); 1513f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1514f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1515f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextInt(); 1516f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 1517f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 1518f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 1519f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1520f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 152156176a05205eaf469469c26988e99077aed0d7e7Brett Chabot // locale dependent test, bug 1943269 152256176a05205eaf469469c26988e99077aed0d7e7Brett Chabot if (Support_Locale.areLocalesAvailable(new Locale[] { new Locale("mk", "MK")})) { 152356176a05205eaf469469c26988e99077aed0d7e7Brett Chabot s = new Scanner("-123 123- (123)"); 152456176a05205eaf469469c26988e99077aed0d7e7Brett Chabot s.useLocale(new Locale("mk", "MK")); 1525f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(-123, s.nextInt()); 152656176a05205eaf469469c26988e99077aed0d7e7Brett Chabot try { 152756176a05205eaf469469c26988e99077aed0d7e7Brett Chabot s.nextInt(); 152856176a05205eaf469469c26988e99077aed0d7e7Brett Chabot fail("Should throw InputMismatchException"); 152956176a05205eaf469469c26988e99077aed0d7e7Brett Chabot } catch (InputMismatchException e) { 153056176a05205eaf469469c26988e99077aed0d7e7Brett Chabot // expected 153156176a05205eaf469469c26988e99077aed0d7e7Brett Chabot } 153256176a05205eaf469469c26988e99077aed0d7e7Brett Chabot // Skip the un-recognizable token 123-. 153356176a05205eaf469469c26988e99077aed0d7e7Brett Chabot assertEquals("123-", s.next()); 153456176a05205eaf469469c26988e99077aed0d7e7Brett Chabot // The following test case fails on RI 153556176a05205eaf469469c26988e99077aed0d7e7Brett Chabot if (!disableRIBugs) { 153656176a05205eaf469469c26988e99077aed0d7e7Brett Chabot assertEquals(-123, s.nextInt()); 153756176a05205eaf469469c26988e99077aed0d7e7Brett Chabot } 1538f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1539f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1540f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.close(); 1541f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1542f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextInt(); 1543f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("IllegalStateException expected"); 1544f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalStateException e) { 1545f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //expected 1546f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1547f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1548f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1549f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 1550f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws IOException 1551f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Scanner#nextByte(int) 1552f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 1553f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 1554f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 1555f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 1556f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "nextByte", 1557f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {int.class} 1558f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 1559f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_nextByteI() throws IOException { 1560f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123 126"); 1561f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(123, s.nextByte(10)); 1562f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(126, s.nextByte(10)); 1563f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1564f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextByte(10); 1565f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw NoSuchElementException"); 1566f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NoSuchElementException e) { 1567f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 1568f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1569f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1570f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If the radix is different from 10 1571f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123 126"); 1572f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(38, s.nextByte(5)); 1573f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1574f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextByte(5); 1575f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 1576f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 1577f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 1578f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1579f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1580f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If the number is out of range 1581f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("1234"); 1582f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1583f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextByte(10); 1584f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 1585f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 1586f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 1587f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1588f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1589f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 1590f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * The input string has Arabic-Indic digits. 1591f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 1592f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("1\u06602 12\u0666"); 1593f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(102, s.nextByte(10)); 1594f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1595f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextByte(5); 1596f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 1597f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 1598f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 1599f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1600f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(126, s.nextByte(10)); 1601f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1602f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("012"); 1603f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(12, s.nextByte(10)); 1604f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1605f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("E"); 1606f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(14, s.nextByte(16)); 1607f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1608f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 1609f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * There are 3 types of zero digit in all locales, '0' '\u0966' '\u0e50' 1610f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * respectively, but they are not differentiated. 1611f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 1612f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("100"); 1613f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.CHINESE); 1614f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(100, s.nextByte(10)); 1615f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1616f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("1\u0966\u0966"); 1617f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.CHINESE); 1618f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(100, s.nextByte(10)); 1619f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1620f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("1\u0e50\u0e50"); 1621f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.CHINESE); 1622f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(100, s.nextByte(10)); 1623f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1624f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("-123"); 1625f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(new Locale("ar", "AE")); 1626f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(-123, s.nextByte(10)); 1627f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1628f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1629f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("-123"); 1630f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(new Locale("mk", "MK")); 1631f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(-123, s.nextByte(10)); 1632f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1633f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.close(); 1634f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1635f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextByte(10); 1636f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("IllegalStateException expected"); 1637f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalStateException e) { 1638f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //expected 1639f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1640f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1641f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1642f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 1643f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws IOException 1644f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Scanner#nextByte() 1645f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 1646f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 1647f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 1648f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 1649f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "nextByte", 1650f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {} 1651f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 1652f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_nextByte() throws IOException { 1653f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123 126"); 1654f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(123, s.nextByte()); 1655f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(126, s.nextByte()); 1656f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1657f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextByte(); 1658f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw NoSuchElementException"); 1659f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NoSuchElementException e) { 1660f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 1661f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1662f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1663f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If the radix is different from 10 1664f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123 126"); 1665f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useRadix(5); 1666f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(38, s.nextByte()); 1667f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1668f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextByte(); 1669f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 1670f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 1671f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 1672f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1673f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1674f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If the number is out of range 1675f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("1234"); 1676f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1677f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextByte(); 1678f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 1679f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 1680f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 1681f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1682f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1683f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 1684f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * The input string has Arabic-Indic digits. 1685f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 1686f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("1\u06602 12\u0666"); 1687f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(102, s.nextByte()); 1688f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useRadix(5); 1689f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1690f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextByte(); 1691f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 1692f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 1693f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 1694f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1695f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useRadix(10); 1696f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(126, s.nextByte()); 1697f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1698f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("012"); 1699f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(12, s.nextByte()); 1700f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1701f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("E"); 1702f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useRadix(16); 1703f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(14, s.nextByte()); 1704f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1705f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 1706f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * There are 3 types of zero digit in all locales, '0' '\u0966' '\u0e50' 1707f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * respectively, but they are not differentiated. 1708f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 1709f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("100"); 1710f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.CHINESE); 1711f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(100, s.nextByte()); 1712f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1713f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("1\u0966\u0966"); 1714f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.CHINESE); 1715f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(100, s.nextByte()); 1716f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1717f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("1\u0e50\u0e50"); 1718f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.CHINESE); 1719f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(100, s.nextByte()); 1720f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1721f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("-123"); 1722f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(new Locale("ar", "AE")); 1723f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(-123, s.nextByte()); 1724f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1725f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("-123"); 1726f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(new Locale("mk", "MK")); 1727f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(-123, s.nextByte()); 1728f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1729f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.close(); 1730f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1731f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextByte(); 1732f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("IllegalStateException expected"); 1733f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalStateException e) { 1734f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //expected 1735f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1736f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1737f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1738f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 1739f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws IOException 1740f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Scanner#nextFloat() 1741f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 1742f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 1743f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 1744f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 1745f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "nextFloat", 1746f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {} 1747f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 1748f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_nextFloat() throws IOException { 17498ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot Locale[] requiredLocales = {Locale.ENGLISH, Locale.GERMANY}; 17508ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot if (!Support_Locale.areLocalesAvailable(requiredLocales)) { 17518ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot // locale dependent test, bug 1943269 17528ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot return; 17538ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot } 1754f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123 45\u0666. 123.4 .123 "); 1755f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 1756f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals((float)123.0, s.nextFloat()); 1757f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals((float)456.0, s.nextFloat()); 1758f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals((float)123.4, s.nextFloat()); 1759f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals((float)0.123, s.nextFloat()); 1760f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1761f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextFloat(); 1762f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw NoSuchElementException"); 1763f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NoSuchElementException e) { 1764f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 1765f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1766f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1767f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("+123.4 -456.7 123,456.789 0.1\u06623,4"); 1768f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 1769f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals((float)123.4, s.nextFloat()); 1770f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals((float)-456.7, s.nextFloat()); 1771f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals((float)123456.789, s.nextFloat()); 1772f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1773f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextFloat(); 1774f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 1775f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 1776f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 1777f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1778f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1779f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Scientific notation 1780f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("+123.4E10 -456.7e+12 123,456.789E-10"); 1781f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 1782f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals((float)1.234E12, s.nextFloat()); 1783f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals((float)-4.567E14, s.nextFloat()); 1784f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals((float)1.23456789E-5, s.nextFloat()); 1785f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1786f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("NaN Infinity -Infinity"); 1787f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(Float.NaN, s.nextFloat()); 1788f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(Float.POSITIVE_INFINITY, s.nextFloat()); 1789f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(Float.NEGATIVE_INFINITY, s.nextFloat()); 1790f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1791f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project String str=String.valueOf(Float.MAX_VALUE*2); 1792f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s=new Scanner(str); 1793f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(Float.POSITIVE_INFINITY,s.nextFloat()); 1794f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1795f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 1796f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Different locale can only recognize corresponding locale sensitive 1797f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * string. ',' is used in many locales as group separator. 1798f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 1799f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("23,456 23,456"); 1800f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 1801f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals((float)23456.0, s.nextFloat()); 1802f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.GERMANY); 1803f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals((float)23.456, s.nextFloat()); 1804f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1805f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("23.456 23.456"); 1806f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 1807f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals((float)23.456, s.nextFloat()); 1808f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.GERMANY); 1809f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals((float)23456.0, s.nextFloat()); 1810f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1811f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("23,456.7 23.456,7"); 1812f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 1813f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals((float)23456.7, s.nextFloat()); 1814f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.GERMANY); 1815f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals((float)23456.7, s.nextFloat()); 1816f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 181756176a05205eaf469469c26988e99077aed0d7e7Brett Chabot // locale dependent test, bug 1943269 181856176a05205eaf469469c26988e99077aed0d7e7Brett Chabot // Note: although "123.4-" is the correct localized form for ar_AE, the 181956176a05205eaf469469c26988e99077aed0d7e7Brett Chabot // RI only accepts "-123.4". 182056176a05205eaf469469c26988e99077aed0d7e7Brett Chabot if (false) { 182156176a05205eaf469469c26988e99077aed0d7e7Brett Chabot s = new Scanner("-123.4 123.4- -123.4-"); 182256176a05205eaf469469c26988e99077aed0d7e7Brett Chabot s.useLocale(new Locale("ar", "AE")); 1823f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals((float)-123.4, s.nextFloat()); 182456176a05205eaf469469c26988e99077aed0d7e7Brett Chabot //The following test case fails on RI 182556176a05205eaf469469c26988e99077aed0d7e7Brett Chabot if (!disableRIBugs) { 182656176a05205eaf469469c26988e99077aed0d7e7Brett Chabot assertEquals((float)-123.4, s.nextFloat()); 182756176a05205eaf469469c26988e99077aed0d7e7Brett Chabot } 182856176a05205eaf469469c26988e99077aed0d7e7Brett Chabot try { 182956176a05205eaf469469c26988e99077aed0d7e7Brett Chabot s.nextFloat(); 183056176a05205eaf469469c26988e99077aed0d7e7Brett Chabot fail("Should throw InputMismatchException"); 183156176a05205eaf469469c26988e99077aed0d7e7Brett Chabot } catch (InputMismatchException e) { 183256176a05205eaf469469c26988e99077aed0d7e7Brett Chabot // Expected 183356176a05205eaf469469c26988e99077aed0d7e7Brett Chabot } 1834f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1835f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 183656176a05205eaf469469c26988e99077aed0d7e7Brett Chabot // locale dependent test, bug 1943269 183756176a05205eaf469469c26988e99077aed0d7e7Brett Chabot if (Support_Locale.areLocalesAvailable(new Locale[] { new Locale("mk", "MK") })) { 183856176a05205eaf469469c26988e99077aed0d7e7Brett Chabot s = new Scanner("(123) 123- -123"); 183956176a05205eaf469469c26988e99077aed0d7e7Brett Chabot s.useLocale(new Locale("mk", "MK")); 184056176a05205eaf469469c26988e99077aed0d7e7Brett Chabot if (!disableRIBugs) { 184156176a05205eaf469469c26988e99077aed0d7e7Brett Chabot assertEquals((float)-123.0, s.nextFloat()); 184256176a05205eaf469469c26988e99077aed0d7e7Brett Chabot } 184356176a05205eaf469469c26988e99077aed0d7e7Brett Chabot try { 184456176a05205eaf469469c26988e99077aed0d7e7Brett Chabot s.nextFloat(); 184556176a05205eaf469469c26988e99077aed0d7e7Brett Chabot fail("Should throw InputMismatchException"); 184656176a05205eaf469469c26988e99077aed0d7e7Brett Chabot } catch (InputMismatchException e) { 184756176a05205eaf469469c26988e99077aed0d7e7Brett Chabot // Expected 184856176a05205eaf469469c26988e99077aed0d7e7Brett Chabot } 184956176a05205eaf469469c26988e99077aed0d7e7Brett Chabot // Skip the un-recognizable token 123-. 185056176a05205eaf469469c26988e99077aed0d7e7Brett Chabot if (!disableRIBugs) { 185156176a05205eaf469469c26988e99077aed0d7e7Brett Chabot assertEquals("123-", s.next()); 185256176a05205eaf469469c26988e99077aed0d7e7Brett Chabot assertEquals((float)-123.0, s.nextFloat()); 185356176a05205eaf469469c26988e99077aed0d7e7Brett Chabot } 1854f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1855f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1856f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.close(); 1857f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1858f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextFloat(); 1859f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("IllegalStateException expected"); 1860f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalStateException e) { 1861f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //expected 1862f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1863f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1864f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1865f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 1866f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws IOException 1867f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Scanner#nextBigInteger(int) 1868f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 1869f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 1870f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 1871f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 1872f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "nextBigInteger", 1873f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {int.class} 1874f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 1875f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @KnownFailure("nextBigInteger method doesn't work properly if input string has Arabic-Indic digits") 1876f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_nextBigIntegerI() throws IOException { 1877f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123 456"); 1878f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigInteger("123"), s.nextBigInteger(10)); 1879f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigInteger("456"), s.nextBigInteger(10)); 1880f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1881f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextBigInteger(10); 1882f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw NoSuchElementException"); 1883f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NoSuchElementException e) { 1884f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 1885f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1886f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1887f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If the radix is different from 10 1888f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123 456"); 1889f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigInteger("38"), s.nextBigInteger(5)); 1890f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1891f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextBigInteger(5); 1892f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 1893f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 1894f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 1895f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1896f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1897f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 1898f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Different locale can only recognize corresponding locale sensitive 1899f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * string. ',' is used in many locales as group separator. 1900f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 1901f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("23,456 23,456"); 1902f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.GERMANY); 1903f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1904f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextBigInteger(10); 1905f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 1906f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 1907f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 1908f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1909f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 1910f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If exception is thrown out, input will not be advanced. 1911f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigInteger("23456"), s.nextBigInteger(10)); 1912f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigInteger("23456"), s.nextBigInteger(10)); 1913f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1914f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 1915f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * ''' is used in many locales as group separator. 1916f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 1917f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("23'456 23'456"); 1918f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.GERMANY); 1919f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1920f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextBigInteger(10); 1921f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 1922f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 1923f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 1924f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1925f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(new Locale("de", "CH")); 1926f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If exception is thrown out, input will not be advanced. 1927f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigInteger("23456"), s.nextBigInteger(10)); 1928f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigInteger("23456"), s.nextBigInteger(10)); 1929f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1930f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 1931f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * The input string has Arabic-Indic digits. 1932f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 1933f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("1\u06602 1\u06662"); 1934f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigInteger("102"), s.nextBigInteger(10)); 1935f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1936f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextBigInteger(5); 1937f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 1938f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 1939f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 1940f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1941f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigInteger("162"), s.nextBigInteger(10)); 1942f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1943f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 1944f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * '.' is used in many locales as group separator. The input string 1945f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * has Arabic-Indic digits . 1946f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 1947f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("23.45\u0666 23.456"); 1948f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.CHINESE); 1949f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1950f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextBigInteger(10); 1951f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 1952f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 1953f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 1954f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1955f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.GERMANY); 1956f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If exception is thrown out, input will not be advanced. 1957f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigInteger("23456"), s.nextBigInteger(10)); 1958f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigInteger("23456"), s.nextBigInteger(10)); 1959f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1960f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // The input string starts with zero 1961f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("03,456"); 1962f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 1963f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1964f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextBigInteger(10); 1965f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 1966f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 1967f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 1968f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1969f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1970f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("03456"); 1971f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigInteger("3456"), s.nextBigInteger(10)); 1972f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1973f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("\u06603,456"); 1974f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 1975f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigInteger("3456"), s.nextBigInteger(10)); 1976f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1977f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("E34"); 1978f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigInteger("3636"), s.nextBigInteger(16)); 1979f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1980f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 1981f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * There are 3 types of zero digit in all locales, '0' '\u0966' '\u0e50' 1982f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * respectively, but they are not differentiated. 1983f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 1984f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("12300"); 1985f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.CHINESE); 1986f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigInteger("12300"), s.nextBigInteger(10)); 1987f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1988f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123\u0966\u0966"); 1989f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.CHINESE); 1990f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigInteger("12300"), s.nextBigInteger(10)); 1991f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1992f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123\u0e50\u0e50"); 1993f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.CHINESE); 1994f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigInteger("12300"), s.nextBigInteger(10)); 1995f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1996f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("-123"); 1997f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(new Locale("ar", "AE")); 1998f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigInteger("-123"), s.nextBigInteger(10)); 1999f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2000f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2001f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("-123"); 2002f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(new Locale("mk", "MK")); 2003f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigInteger("-123"), s.nextBigInteger(10)); 2004f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2005f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.close(); 2006f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 2007f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextBigInteger(10); 2008f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("IllegalStateException expected"); 2009f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalStateException e) { 2010f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //expected 2011f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 2012f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 2013f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2014f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 2015f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws IOException 2016f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Scanner#nextBigInteger() 2017f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 2018f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 2019f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 2020f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 2021f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "nextBigInteger", 2022f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {} 2023f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 2024f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @KnownFailure("nextBigInteger method doesn't work properly if input string has Arabic-Indic digits") 2025f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_nextBigInteger() throws IOException { 2026f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123 456"); 2027f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigInteger("123"), s.nextBigInteger()); 2028f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigInteger("456"), s.nextBigInteger()); 2029f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 2030f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextBigInteger(); 2031f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw NoSuchElementException"); 2032f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NoSuchElementException e) { 2033f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 2034f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 2035f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2036f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If the radix is different from 10 2037f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123 456"); 2038f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useRadix(5); 2039f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigInteger("38"), s.nextBigInteger()); 2040f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 2041f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextBigInteger(); 2042f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 2043f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 2044f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 2045f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 2046f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2047f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 2048f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Different locale can only recognize corresponding locale sensitive 2049f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * string. ',' is used in many locales as group separator. 2050f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 2051f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("23,456 23,456"); 2052f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.GERMANY); 2053f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 2054f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextBigInteger(); 2055f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 2056f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 2057f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 2058f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 2059f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 2060f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If exception is thrown out, input will not be advanced. 2061f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigInteger("23456"), s.nextBigInteger()); 2062f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigInteger("23456"), s.nextBigInteger()); 2063f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2064f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 2065f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * ''' is used in many locales as group separator. 2066f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 2067f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("23'456 23'456"); 2068f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.GERMANY); 2069f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 2070f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextBigInteger(); 2071f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 2072f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 2073f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 2074f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 2075f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(new Locale("de", "CH")); 2076f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If exception is thrown out, input will not be advanced. 2077f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigInteger("23456"), s.nextBigInteger()); 2078f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigInteger("23456"), s.nextBigInteger()); 2079f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2080f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 2081f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * The input string has Arabic-Indic digits. 2082f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 2083f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("1\u06602 1\u06662"); 2084f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigInteger("102"), s.nextBigInteger()); 2085f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useRadix(5); 2086f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 2087f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextBigInteger(); 2088f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 2089f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 2090f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 2091f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 2092f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useRadix(10); 2093f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigInteger("162"), s.nextBigInteger()); 2094f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2095f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 2096f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * '.' is used in many locales as group separator. The input string 2097f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * has Arabic-Indic digits . 2098f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 2099f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("23.45\u0666 23.456"); 2100f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.CHINESE); 2101f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 2102f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextBigInteger(); 2103f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 2104f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 2105f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 2106f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 2107f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.GERMANY); 2108f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If exception is thrown out, input will not be advanced. 2109f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigInteger("23456"), s.nextBigInteger()); 2110f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigInteger("23456"), s.nextBigInteger()); 2111f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2112f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // The input string starts with zero 2113f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("03,456"); 2114f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 2115f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 2116f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextBigInteger(); 2117f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 2118f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 2119f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 2120f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 2121f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2122f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("03456"); 2123f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigInteger("3456"), s.nextBigInteger()); 2124f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2125f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("\u06603,456"); 2126f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 2127f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigInteger("3456"), s.nextBigInteger()); 2128f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2129f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("E34"); 2130f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useRadix(16); 2131f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigInteger("3636"), s.nextBigInteger()); 2132f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2133f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 2134f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * There are 3 types of zero digit in all locales, '0' '\u0966' '\u0e50' 2135f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * respectively, but they are not differentiated. 2136f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 2137f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("12300"); 2138f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.CHINESE); 2139f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigInteger("12300"), s.nextBigInteger()); 2140f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2141f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123\u0966\u0966"); 2142f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.CHINESE); 2143f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigInteger("12300"), s.nextBigInteger()); 2144f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2145f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123\u0e50\u0e50"); 2146f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.CHINESE); 2147f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigInteger("12300"), s.nextBigInteger()); 2148f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2149f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("-123"); 2150f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(new Locale("ar", "AE")); 2151f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigInteger("-123"), s.nextBigInteger()); 2152f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2153f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("-123"); 2154f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(new Locale("mk", "MK")); 2155f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigInteger("-123"), s.nextBigInteger()); 2156f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2157f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.close(); 2158f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 2159f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextBigInteger(); 2160f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("IllegalStateException expected"); 2161f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalStateException e) { 2162f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //expected 2163f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 2164f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 2165f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2166f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 2167f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws IOException 2168f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Scanner#nextShort(int) 2169f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 2170f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 2171f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 2172f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 2173f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "nextShort", 2174f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {int.class} 2175f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 2176f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_nextShortI() throws IOException { 21778ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot Locale[] requiredLocales = {Locale.GERMANY, Locale.CHINESE, Locale.ENGLISH}; 21788ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot if (!Support_Locale.areLocalesAvailable(requiredLocales)) { 21798ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot // locale dependent test, bug 1943269 21808ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot return; 21818ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot } 2182f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123 456"); 2183f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(123, s.nextShort(10)); 2184f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(456, s.nextShort(10)); 2185f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 2186f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextShort(10); 2187f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw NoSuchElementException"); 2188f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NoSuchElementException e) { 2189f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 2190f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 2191f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2192f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If the radix is different from 10 2193f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123 456"); 2194f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(38, s.nextShort(5)); 2195f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 2196f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextShort(5); 2197f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 2198f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 2199f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 2200f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 2201f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2202f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If the number is out of range 2203f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123456789"); 2204f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 2205f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextShort(10); 2206f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 2207f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 2208f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 2209f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 2210f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2211f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 2212f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Different locale can only recognize corresponding locale sensitive 2213f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * string. ',' is used in many locales as group separator. 2214f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 2215f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("23,456 23,456"); 2216f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.GERMANY); 2217f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 2218f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextShort(10); 2219f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 2220f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 2221f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 2222f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 2223f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 2224f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If exception is thrown out, input will not be advanced. 2225f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(23456, s.nextShort(10)); 2226f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(23456, s.nextShort(10)); 2227f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2228f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 2229f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * ''' is used in many locales as group separator. 2230f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 2231f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("23'456 23'456"); 2232f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.GERMANY); 2233f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 2234f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextShort(10); 2235f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 2236f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 2237f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 2238f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 2239f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(new Locale("de", "CH")); 2240f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If exception is thrown out, input will not be advanced. 2241f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(23456, s.nextShort(10)); 2242f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(23456, s.nextShort(10)); 2243f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2244f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 2245f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * The input string has Arabic-Indic digits. 2246f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 2247f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("1\u06602 1\u06662"); 2248f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(102, s.nextShort(10)); 2249f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 2250f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextShort(5); 2251f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 2252f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 2253f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 2254f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 2255f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(162, s.nextShort(10)); 2256f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2257f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 2258f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * '.' is used in many locales as group separator. The input string 2259f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * has Arabic-Indic digits . 2260f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 2261f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("23.45\u0666 23.456"); 2262f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.CHINESE); 2263f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 2264f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextShort(10); 2265f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 2266f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 2267f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 2268f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 2269f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.GERMANY); 2270f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If exception is thrown out, input will not be advanced. 2271f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(23456, s.nextShort(10)); 2272f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(23456, s.nextShort(10)); 2273f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2274f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // The input string starts with zero 2275f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("03,456"); 2276f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 2277f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 2278f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextShort(10); 2279f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 2280f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 2281f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 2282f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 2283f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2284f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("03456"); 2285f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(3456, s.nextShort(10)); 2286f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2287f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("\u06603,456"); 2288f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 2289f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(3456, s.nextShort(10)); 2290f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2291f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("E34"); 2292f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(3636, s.nextShort(16)); 2293f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2294f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 2295f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * There are 3 types of zero digit in all locales, '0' '\u0966' '\u0e50' 2296f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * respectively, but they are not differentiated. 2297f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 2298f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("12300"); 2299f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.CHINESE); 2300f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(12300, s.nextShort(10)); 2301f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2302f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123\u0966\u0966"); 2303f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.CHINESE); 2304f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(12300, s.nextShort(10)); 2305f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2306f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123\u0e50\u0e50"); 2307f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.CHINESE); 2308f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(12300, s.nextShort(10)); 2309f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2310f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("-123"); 2311f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(new Locale("ar", "AE")); 2312f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(-123, s.nextShort(10)); 2313f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2314f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2315f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("-123"); 2316f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(new Locale("mk", "MK")); 2317f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(-123, s.nextShort(10)); 2318f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2319f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.close(); 2320f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 2321f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextShort(10); 2322f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("IllegalStateException expected"); 2323f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalStateException e) { 2324f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //expected 2325f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 2326f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 2327f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2328f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 2329f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws IOException 2330f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Scanner#nextShort() 2331f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 2332f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 2333f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 2334f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 2335f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "nextShort", 2336f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {} 2337f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 2338f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_nextShort() throws IOException { 23398ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot Locale[] requiredLocales = {Locale.GERMANY, Locale.CHINESE, Locale.ENGLISH}; 23408ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot if (!Support_Locale.areLocalesAvailable(requiredLocales)) { 23418ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot // locale dependent test, bug 1943269 23428ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot return; 23438ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot } 2344f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123 456"); 2345f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(123, s.nextShort()); 2346f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(456, s.nextShort()); 2347f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 2348f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextShort(); 2349f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw NoSuchElementException"); 2350f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NoSuchElementException e) { 2351f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 2352f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 2353f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2354f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If the radix is different from 10 2355f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123 456"); 2356f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useRadix(5); 2357f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(38, s.nextShort()); 2358f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 2359f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextShort(); 2360f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 2361f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 2362f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 2363f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 2364f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2365f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If the number is out of range 2366f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123456789"); 2367f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 2368f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextShort(); 2369f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 2370f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 2371f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 2372f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 2373f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2374f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 2375f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Different locale can only recognize corresponding locale sensitive 2376f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * string. ',' is used in many locales as group separator. 2377f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 2378f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("23,456 23,456"); 2379f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.GERMANY); 2380f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 2381f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextShort(); 2382f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 2383f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 2384f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 2385f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 2386f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 2387f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If exception is thrown out, input will not be advanced. 2388f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(23456, s.nextShort()); 2389f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(23456, s.nextShort()); 2390f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2391f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 2392f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * ''' is used in many locales as group separator. 2393f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 2394f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("23'456 23'456"); 2395f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.GERMANY); 2396f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 2397f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextShort(); 2398f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 2399f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 2400f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 2401f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 2402f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(new Locale("de", "CH")); 2403f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If exception is thrown out, input will not be advanced. 2404f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(23456, s.nextShort()); 2405f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(23456, s.nextShort()); 2406f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2407f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 2408f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * The input string has Arabic-Indic digits. 2409f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 2410f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("1\u06602 1\u06662"); 2411f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(102, s.nextShort()); 2412f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useRadix(5); 2413f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 2414f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextShort(); 2415f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 2416f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 2417f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 2418f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 2419f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useRadix(10); 2420f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(162, s.nextShort()); 2421f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2422f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 2423f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * '.' is used in many locales as group separator. The input string 2424f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * has Arabic-Indic digits . 2425f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 2426f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("23.45\u0666 23.456"); 2427f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.CHINESE); 2428f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 2429f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextShort(); 2430f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 2431f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 2432f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 2433f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 2434f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.GERMANY); 2435f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If exception is thrown out, input will not be advanced. 2436f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(23456, s.nextShort()); 2437f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(23456, s.nextShort()); 2438f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2439f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // The input string starts with zero 2440f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("03,456"); 2441f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 2442f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 2443f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextShort(); 2444f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 2445f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 2446f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 2447f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 2448f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2449f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("03456"); 2450f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(3456, s.nextShort()); 2451f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2452f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("\u06603,456"); 2453f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 2454f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(3456, s.nextShort()); 2455f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2456f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("E34"); 2457f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useRadix(16); 2458f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(3636, s.nextShort()); 2459f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2460f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 2461f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * There are 3 types of zero digit in all locales, '0' '\u0966' '\u0e50' 2462f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * respectively, but they are not differentiated. 2463f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 2464f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("12300"); 2465f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.CHINESE); 2466f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(12300, s.nextShort()); 2467f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2468f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123\u0966\u0966"); 2469f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.CHINESE); 2470f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(12300, s.nextShort()); 2471f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2472f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123\u0e50\u0e50"); 2473f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.CHINESE); 2474f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(12300, s.nextShort()); 2475f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2476f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("-123"); 2477f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(new Locale("ar", "AE")); 2478f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(-123, s.nextShort()); 2479f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2480f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("-123"); 2481f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(new Locale("mk", "MK")); 2482f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(-123, s.nextShort()); 2483f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2484f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.close(); 2485f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 2486f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextShort(); 2487f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("IllegalStateException expected"); 2488f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalStateException e) { 2489f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //expected 2490f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 2491f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 2492f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2493f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 2494f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws IOException 2495f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Scanner#nextLong(int) 2496f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 2497f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 2498f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 2499f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 2500f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "nextLong", 2501f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {int.class} 2502f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 2503f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_nextLongI() throws IOException { 25048ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot Locale[] requiredLocales = {Locale.GERMANY, Locale.CHINESE, Locale.ENGLISH}; 25058ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot if (!Support_Locale.areLocalesAvailable(requiredLocales)) { 25068ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot // locale dependent test, bug 1943269 25078ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot return; 25088ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot } 2509f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123 456"); 2510f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(123, s.nextLong(10)); 2511f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(456, s.nextLong(10)); 2512f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 2513f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextLong(10); 2514f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw NoSuchElementException"); 2515f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NoSuchElementException e) { 2516f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 2517f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 2518f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2519f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If the radix is different from 10 2520f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123 456"); 2521f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(38, s.nextLong(5)); 2522f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 2523f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextLong(5); 2524f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 2525f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 2526f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 2527f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 2528f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2529f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If the number is out of range 2530f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123456789123456789123456789123456789"); 2531f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 2532f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextLong(10); 2533f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 2534f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 2535f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 2536f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 2537f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2538f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 2539f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Different locale can only recognize corresponding locale sensitive 2540f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * string. ',' is used in many locales as group separator. 2541f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 2542f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("23,456 23,456"); 2543f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.GERMANY); 2544f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 2545f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextLong(10); 2546f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 2547f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 2548f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 2549f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 2550f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 2551f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If exception is thrown out, input will not be advanced. 2552f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(23456, s.nextLong(10)); 2553f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(23456, s.nextLong(10)); 2554f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2555f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 2556f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * ''' is used in many locales as group separator. 2557f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 2558f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("23'456 23'456"); 2559f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.GERMANY); 2560f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 2561f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextLong(10); 2562f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 2563f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 2564f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 2565f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 2566f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(new Locale("de", "CH")); 2567f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If exception is thrown out, input will not be advanced. 2568f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(23456, s.nextLong(10)); 2569f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(23456, s.nextLong(10)); 2570f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2571f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 2572f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * The input string has Arabic-Indic digits. 2573f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 2574f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("1\u06602 1\u06662"); 2575f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(102, s.nextLong(10)); 2576f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 2577f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextLong(5); 2578f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 2579f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 2580f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 2581f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 2582f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(162, s.nextLong(10)); 2583f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2584f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 2585f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * '.' is used in many locales as group separator. The input string 2586f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * has Arabic-Indic digits . 2587f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 2588f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("23.45\u0666 23.456"); 2589f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.CHINESE); 2590f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 2591f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextLong(10); 2592f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 2593f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 2594f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 2595f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 2596f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.GERMANY); 2597f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If exception is thrown out, input will not be advanced. 2598f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(23456, s.nextLong(10)); 2599f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(23456, s.nextLong(10)); 2600f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2601f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // The input string starts with zero 2602f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("03,456"); 2603f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 2604f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 2605f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextLong(10); 2606f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 2607f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 2608f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 2609f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 2610f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2611f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("03456"); 2612f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(3456, s.nextLong(10)); 2613f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2614f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("\u06603,456"); 2615f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 2616f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(3456, s.nextLong(10)); 2617f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2618f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("E34"); 2619f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(3636, s.nextLong(16)); 2620f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2621f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 2622f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * There are 3 types of zero digit in all locales, '0' '\u0966' '\u0e50' 2623f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * respectively, but they are not differentiated. 2624f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 2625f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("12300"); 2626f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.CHINESE); 2627f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(12300, s.nextLong(10)); 2628f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2629f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123\u0966\u0966"); 2630f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.CHINESE); 2631f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(12300, s.nextLong(10)); 2632f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2633f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123\u0e50\u0e50"); 2634f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.CHINESE); 2635f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(12300, s.nextLong(10)); 2636f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2637f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("-123"); 2638f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(new Locale("ar", "AE")); 2639f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(-123, s.nextLong(10)); 2640f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2641f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2642f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("-123"); 2643f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(new Locale("mk", "MK")); 2644f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(-123, s.nextLong(10)); 2645f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2646f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.close(); 2647f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 2648f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextLong(10); 2649f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("IllegalStateException expected"); 2650f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalStateException e) { 2651f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //expected 2652f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 2653f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 2654f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2655f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 2656f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws IOException 2657f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Scanner#nextLong() 2658f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 2659f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 2660f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 2661f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 2662f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "nextLong", 2663f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {} 2664f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 2665f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_nextLong() throws IOException { 26668ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot Locale[] requiredLocales = {Locale.GERMANY, Locale.CHINESE, Locale.ENGLISH}; 26678ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot if (!Support_Locale.areLocalesAvailable(requiredLocales)) { 26688ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot // locale dependent test, bug 1943269 26698ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot return; 26708ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot } 2671f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123 456"); 2672f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(123, s.nextLong()); 2673f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(456, s.nextLong()); 2674f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 2675f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextLong(); 2676f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw NoSuchElementException"); 2677f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NoSuchElementException e) { 2678f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 2679f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 2680f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2681f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If the radix is different from 10 2682f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123 456"); 2683f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useRadix(5); 2684f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(38, s.nextLong()); 2685f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 2686f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextLong(); 2687f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 2688f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 2689f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 2690f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 2691f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2692f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If the number is out of range 2693f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123456789123456789123456789123456789"); 2694f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 2695f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextLong(); 2696f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 2697f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 2698f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 2699f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 2700f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2701f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 2702f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Different locale can only recognize corresponding locale sensitive 2703f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * string. ',' is used in many locales as group separator. 2704f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 2705f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("23,456 23,456"); 2706f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.GERMANY); 2707f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 2708f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextLong(); 2709f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 2710f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 2711f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 2712f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 2713f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 2714f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If exception is thrown out, input will not be advanced. 2715f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(23456, s.nextLong()); 2716f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(23456, s.nextLong()); 2717f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2718f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 2719f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * ''' is used in many locales as group separator. 2720f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 2721f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("23'456 23'456"); 2722f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.GERMANY); 2723f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 2724f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextLong(); 2725f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 2726f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 2727f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 2728f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 2729f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(new Locale("de", "CH")); 2730f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If exception is thrown out, input will not be advanced. 2731f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(23456, s.nextLong()); 2732f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(23456, s.nextLong()); 2733f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2734f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 2735f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * The input string has Arabic-Indic digits. 2736f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 2737f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("1\u06602 1\u06662"); 2738f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(102, s.nextLong()); 2739f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useRadix(5); 2740f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 2741f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextLong(); 2742f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 2743f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 2744f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 2745f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 2746f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useRadix(10); 2747f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(162, s.nextLong()); 2748f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2749f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 2750f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * '.' is used in many locales as group separator. The input string 2751f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * has Arabic-Indic digits . 2752f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 2753f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("23.45\u0666 23.456"); 2754f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.CHINESE); 2755f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 2756f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextLong(); 2757f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 2758f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 2759f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 2760f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 2761f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.GERMANY); 2762f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If exception is thrown out, input will not be advanced. 2763f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(23456, s.nextLong()); 2764f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(23456, s.nextLong()); 2765f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2766f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // The input string starts with zero 2767f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("03,456"); 2768f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 2769f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 2770f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextLong(); 2771f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 2772f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 2773f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 2774f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 2775f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2776f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("03456"); 2777f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(3456, s.nextLong()); 2778f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2779f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("\u06603,456"); 2780f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 2781f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(3456, s.nextLong()); 2782f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2783f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("E34"); 2784f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useRadix(16); 2785f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(3636, s.nextLong()); 2786f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2787f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 2788f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * There are 3 types of zero digit in all locales, '0' '\u0966' '\u0e50' 2789f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * respectively, but they are not differentiated. 2790f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 2791f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("12300"); 2792f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.CHINESE); 2793f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(12300, s.nextLong()); 2794f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2795f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123\u0966\u0966"); 2796f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.CHINESE); 2797f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(12300, s.nextLong()); 2798f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2799f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123\u0e50\u0e50"); 2800f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.CHINESE); 2801f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(12300, s.nextLong()); 2802f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2803f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("-123"); 2804f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(new Locale("ar", "AE")); 2805f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(-123, s.nextLong()); 2806f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2807f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("-123"); 2808f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(new Locale("mk", "MK")); 2809f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(-123, s.nextLong()); 2810f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2811f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.close(); 2812f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 2813f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextLong(); 2814f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("IllegalStateException expected"); 2815f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalStateException e) { 2816f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //expected 2817f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 2818f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 2819f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2820f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 2821f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws IOException 2822f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Scanner#hasNext() 2823f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 2824f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 2825f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 2826f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 2827f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "hasNext", 2828f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {} 2829f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 2830f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_hasNext() throws IOException { 2831f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("1##2").useDelimiter("\\#"); 2832f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNext()); 2833f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("1", s.next()); 2834f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("", s.next()); 2835f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("2", s.next()); 2836f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNext()); 2837f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.close(); 2838f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 2839f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.hasNext(); 2840f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("should throw IllegalStateException"); 2841f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalStateException e) { 2842f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 2843f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 2844f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2845f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("1( )2( )").useDelimiter("\\( \\)"); 2846f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNext()); 2847f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNext()); 2848f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("1", s.next()); 2849f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("2", s.next()); 2850f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2851f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("1 2 ").useDelimiter("( )"); 2852f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("1", s.next()); 2853f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("2", s.next()); 2854f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNext()); 2855f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("", s.next()); 2856f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2857f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("1\n2 "); 2858f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("1", s.next()); 2859f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNext()); 2860f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("2", s.next()); 2861f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNext()); 2862f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // test boundary case 2863f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 2864f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.next(); 2865f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("should throw NoSuchElementException"); 2866f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NoSuchElementException e) { 2867f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 2868f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 2869f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2870f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("1'\n'2 "); 2871f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("1'", s.next()); 2872f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNext()); 2873f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("'2", s.next()); 2874f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNext()); 2875f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // test boundary case 2876f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 2877f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.next(); 2878f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("should throw NoSuchElementException"); 2879f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NoSuchElementException e) { 2880f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 2881f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 2882f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2883f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner(" "); 2884f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNext()); 2885f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2886f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // test socket inputStream 2887f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2888f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project os.write("1 2".getBytes()); 2889f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project serverSocket.close(); 2890f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2891f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner(client); 2892f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("1", s.next()); 2893f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNext()); 2894f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("2", s.next()); 2895f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNext()); 2896f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 2897f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.next(); 2898f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("should throw NoSuchElementException"); 2899f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NoSuchElementException e) { 2900f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 2901f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 2902f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 2903f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2904f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 2905f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws IOException 2906f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Scanner#hasNext(Pattern) 2907f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 2908f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 2909f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 2910f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 2911f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "hasNext", 2912f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.util.regex.Pattern.class} 2913f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 2914f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_hasNextLPattern() throws IOException { 2915f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Pattern pattern; 2916f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("aab@2@abb@").useDelimiter("\\@"); 2917f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project pattern = Pattern.compile("a*b"); 2918f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNext(pattern)); 2919f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("aab", s.next(pattern)); 2920f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNext(pattern)); 2921f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 2922f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.next(pattern); 2923f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("should throw InputMismatchException"); 2924f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 2925f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 2926f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 2927f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2928f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("word ? "); 2929f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project pattern = Pattern.compile("\\w+"); 2930f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNext(pattern)); 2931f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("word", s.next(pattern)); 2932f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNext(pattern)); 2933f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 2934f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.next(pattern); 2935f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("should throw InputMismatchException"); 2936f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 2937f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 2938f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 2939f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2940f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("word1 WorD2 "); 2941f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project pattern = Pattern.compile("\\w+"); 2942f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNext(pattern)); 2943f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("word1", s.next(pattern)); 2944f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNext(pattern)); 2945f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("WorD2", s.next(pattern)); 2946f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNext(pattern)); 2947f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 2948f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.next(pattern); 2949f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("should throw NoSuchElementException"); 2950f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NoSuchElementException e) { 2951f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 2952f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 2953f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2954f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("word1 WorD2 "); 2955f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project pattern = Pattern.compile("\\w+"); 2956f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 2957f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.hasNext((Pattern) null); 2958f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw NullPointerException"); 2959f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NullPointerException e) { 2960f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 2961f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 2962f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.close(); 2963f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 2964f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.hasNext(pattern); 2965f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("should throw IllegalStateException"); 2966f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalStateException e) { 2967f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 2968f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 2969f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2970f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // test socket inputStream 2971f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project os.write("aab b".getBytes()); 2972f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project serverSocket.close(); 2973f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2974f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner(client); 2975f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project pattern = Pattern.compile("a+b"); 2976f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNext(pattern)); 2977f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("aab", s.next(pattern)); 2978f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNext(pattern)); 2979f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 2980f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.next(pattern); 2981f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("should throw InputMismatchException"); 2982f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 2983f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 2984f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 2985f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 2986f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2987f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 2988f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws IOException 2989f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Scanner#hasNext(String) 2990f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 2991f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 2992f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 2993f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 2994f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "hasNext", 2995f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.lang.String.class} 2996f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 2997f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_hasNextLString() throws IOException { 2998f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("aab@2@abb@").useDelimiter("\\@"); 2999f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 3000f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.hasNext((String)null); 3001f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw NullPointerException"); 3002f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NullPointerException e) { 3003f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 3004f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 3005f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3006f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("aab*b*").useDelimiter("\\*"); 3007f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNext("a+b")); 3008f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("aab", s.next("a+b")); 3009f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNext("a+b")); 3010f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 3011f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.next("a+b"); 3012f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("should throw InputMismatchException"); 3013f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 3014f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 3015f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 3016f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.close(); 3017f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 3018f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.hasNext("a+b"); 3019f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("should throw IllegalStateException"); 3020f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalStateException e) { 3021f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 3022f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 3023f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3024f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("WORD ? "); 3025f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNext("\\w+")); 3026f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("WORD", s.next("\\w+")); 3027f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNext("\\w+")); 3028f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 3029f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.next("\\w+"); 3030f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("should throw InputMismatchException"); 3031f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 3032f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 3033f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 3034f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3035f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("word1 word2 "); 3036f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("word1", s.next("\\w+")); 3037f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("word2", s.next("\\w+")); 3038f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // test boundary case 3039f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 3040f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.next("\\w+"); 3041f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("should throw NoSuchElementException"); 3042f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NoSuchElementException e) { 3043f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 3044f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 3045f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3046f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // test socket inputStream 3047f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3048f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project os.write("aab 2".getBytes()); 3049f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project serverSocket.close(); 3050f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3051f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner(client); 3052f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNext("a*b")); 3053f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("aab", s.next("a*b")); 3054f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNext("a*b")); 3055f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 3056f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.next("a*b"); 3057f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("should throw InputMismatchException"); 3058f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 3059f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 3060f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 3061f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 3062f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3063f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 3064f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws IOException 3065f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Scanner#hasNextBoolean() 3066f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 3067f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 3068f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 3069f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 3070f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "hasNextBoolean", 3071f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {} 3072f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 3073f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_hasNextBoolean() throws IOException { 3074f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3075f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("TRue"); 3076f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextBoolean()); 3077f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.nextBoolean()); 3078f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3079f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("tRue false"); 3080f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextBoolean()); 3081f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.nextBoolean()); 3082f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextBoolean()); 3083f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.nextBoolean()); 3084f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3085f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner(""); 3086f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextBoolean()); 3087f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3088f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // test socket inputStream 3089f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3090f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project os.write("true false ".getBytes()); 3091f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project serverSocket.close(); 3092f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3093f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner(client); 3094f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextBoolean()); 3095f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.nextBoolean()); 3096f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3097f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // ues '*' as delimiter 3098f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("true**false").useDelimiter("\\*"); 3099f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextBoolean()); 3100f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.nextBoolean()); 3101f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextBoolean()); 3102f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 3103f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextBoolean(); 3104f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("should throw NoSuchElementException"); 3105f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NoSuchElementException e) { 3106f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 3107f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 3108f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3109f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("false( )").useDelimiter("\\( \\)"); 3110f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextBoolean()); 3111f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.nextBoolean()); 3112f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextBoolean()); 3113f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3114f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.close(); 3115f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 3116f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.hasNextBoolean(); 3117f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("IllegalStateException expected"); 3118f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalStateException e) { 3119f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //expected 3120f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 3121f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 3122f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3123f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 3124f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws IOException 3125f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Scanner#hasNextByte(int) 3126f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 3127f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 3128f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.PARTIAL_COMPLETE, 3129f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "IllegalStateException checking missed.", 3130f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "hasNextByte", 3131f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {int.class} 3132f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 3133f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_hasNextByteI() throws IOException { 3134f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123 126"); 3135f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextByte(10)); 3136f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(123, s.nextByte(10)); 3137f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextByte(10)); 3138f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(126, s.nextByte(10)); 3139f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextByte(10)); 3140f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 3141f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextByte(10); 3142f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw NoSuchElementException"); 3143f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NoSuchElementException e) { 3144f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 3145f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 3146f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3147f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If the radix is different from 10 3148f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123 126"); 3149f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextByte(5)); 3150f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(38, s.nextByte(5)); 3151f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextByte(5)); 3152f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 3153f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextByte(5); 3154f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 3155f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 3156f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 3157f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 3158f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3159f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If the number is out of range 3160f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("1234"); 3161f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextByte(10)); 3162f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 3163f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextByte(10); 3164f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 3165f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 3166f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 3167f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 3168f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3169f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 3170f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * The input string has Arabic-Indic digits. 3171f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 3172f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("1\u06602 12\u0666"); 3173f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextByte(10)); 3174f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(102, s.nextByte(10)); 3175f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextByte(5)); 3176f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 3177f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextByte(5); 3178f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 3179f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 3180f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 3181f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 3182f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextByte(10)); 3183f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(126, s.nextByte(10)); 3184f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3185f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("012"); 3186f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextByte(10)); 3187f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(12, s.nextByte(10)); 3188f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3189f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("E"); 3190f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextByte(16)); 3191f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(14, s.nextByte(16)); 3192f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3193f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 3194f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * There are 3 types of zero digit in all locales, '0' '\u0966' '\u0e50' 3195f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * respectively, but they are not differentiated. 3196f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 3197f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("100"); 3198f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.CHINESE); 3199f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextByte(10)); 3200f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(100, s.nextByte(10)); 3201f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3202f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("1\u0966\u0966"); 3203f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.CHINESE); 3204f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextByte(10)); 3205f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(100, s.nextByte(10)); 3206f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3207f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("1\u0e50\u0e50"); 3208f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.CHINESE); 3209f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextByte(10)); 3210f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(100, s.nextByte(10)); 3211f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3212f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("-123"); 3213f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(new Locale("ar", "AE")); 3214f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextByte(10)); 3215f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(-123, s.nextByte(10)); 3216f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3217f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3218f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("-123"); 3219f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(new Locale("mk", "MK")); 3220f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextByte(10)); 3221f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(-123, s.nextByte(10)); 3222f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 3223f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3224f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 3225f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws IOException 3226f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Scanner#hasNextByte(int) 3227f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 3228f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 3229f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.PARTIAL_COMPLETE, 3230f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "Regression test.", 3231f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "hasNextByte", 3232f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {int.class} 3233f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 3234f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_hasNextByteI_cache() throws IOException{ 3235f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //regression for HARMONY-2063 3236f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123 45"); 3237f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextByte(8)); 3238f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(83, s.nextByte()); 3239f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(45, s.nextByte()); 3240f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3241f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123 45"); 3242f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextByte(10)); 3243f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextByte(8)); 3244f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(83, s.nextByte()); 3245f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(45, s.nextByte()); 3246f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3247f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("-123 -45"); 3248f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextByte(8)); 3249f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(-123, s.nextInt()); 3250f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(-45, s.nextByte()); 3251f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3252f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123 45"); 3253f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextByte()); 3254f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.close(); 3255f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 3256f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextByte(); 3257f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw IllegalStateException"); 3258f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalStateException e) { 3259f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 3260f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 3261f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 3262f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 3263f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws IOException 3264f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Scanner#hasNextByte() 3265f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 3266f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 3267f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 3268f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 3269f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "hasNextByte", 3270f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {} 3271f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 3272f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_hasNextByte() throws IOException { 3273f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123 126"); 3274f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextByte()); 3275f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(123, s.nextByte()); 3276f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextByte()); 3277f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(126, s.nextByte()); 3278f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextByte()); 3279f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 3280f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextByte(); 3281f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw NoSuchElementException"); 3282f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NoSuchElementException e) { 3283f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 3284f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 3285f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3286f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If the radix is different from 10 3287f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123 126"); 3288f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useRadix(5); 3289f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextByte()); 3290f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(38, s.nextByte()); 3291f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextByte()); 3292f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 3293f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextByte(); 3294f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 3295f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 3296f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 3297f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 3298f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3299f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If the number is out of range 3300f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("1234"); 3301f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextByte()); 3302f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 3303f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextByte(); 3304f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 3305f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 3306f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 3307f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 3308f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3309f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 3310f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * The input string has Arabic-Indic digits. 3311f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 3312f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("1\u06602 12\u0666"); 3313f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextByte()); 3314f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(102, s.nextByte()); 3315f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useRadix(5); 3316f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextByte()); 3317f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 3318f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextByte(); 3319f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 3320f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 3321f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 3322f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 3323f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useRadix(10); 3324f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextByte()); 3325f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(126, s.nextByte()); 3326f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3327f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("012"); 3328f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(12, s.nextByte()); 3329f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3330f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("E"); 3331f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useRadix(16); 3332f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextByte()); 3333f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(14, s.nextByte()); 3334f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3335f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 3336f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * There are 3 types of zero digit in all locales, '0' '\u0966' '\u0e50' 3337f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * respectively, but they are not differentiated. 3338f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 3339f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("100"); 3340f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.CHINESE); 3341f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextByte()); 3342f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(100, s.nextByte()); 3343f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3344f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("1\u0966\u0966"); 3345f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.CHINESE); 3346f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextByte()); 3347f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(100, s.nextByte()); 3348f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3349f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("1\u0e50\u0e50"); 3350f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.CHINESE); 3351f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextByte()); 3352f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(100, s.nextByte()); 3353f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3354f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("-123"); 3355f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(new Locale("ar", "AE")); 3356f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextByte()); 3357f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(-123, s.nextByte()); 3358f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3359f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("-123"); 3360f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(new Locale("mk", "MK")); 3361f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextByte()); 3362f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(-123, s.nextByte()); 3363f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3364f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.close(); 3365f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 3366f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.hasNextByte(); 3367f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("IllegalStateException expected"); 3368f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalStateException e) { 3369f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //expected 3370f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 3371f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 3372f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3373f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 3374f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws IOException 3375f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Scanner#hasNextBigInteger(int) 3376f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 3377f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 3378f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.PARTIAL_COMPLETE, 3379f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "IllegalStateException checking missed.", 3380f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "hasNextBigInteger", 3381f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {int.class} 3382f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 3383f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @KnownFailure("hasNextBigInteger method doesn't work properly if input string has Arabic-Indic digits") 3384f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_hasNextBigIntegerI() throws IOException { 3385f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123 456"); 3386f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextBigInteger(10)); 3387f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigInteger("123"), s.nextBigInteger(10)); 3388f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextBigInteger(10)); 3389f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigInteger("456"), s.nextBigInteger(10)); 3390f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextBigInteger(10)); 3391f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 3392f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextBigInteger(10); 3393f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw NoSuchElementException"); 3394f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NoSuchElementException e) { 3395f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 3396f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 3397f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3398f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If the radix is different from 10 3399f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123 456"); 3400f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextBigInteger(5)); 3401f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigInteger("38"), s.nextBigInteger(5)); 3402f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextBigInteger(5)); 3403f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 3404f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextBigInteger(5); 3405f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 3406f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 3407f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 3408f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 3409f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3410f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 3411f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Different locale can only recognize corresponding locale sensitive 3412f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * string. ',' is used in many locales as group separator. 3413f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 3414f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("23,456 23,456"); 3415f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.GERMANY); 3416f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextBigInteger(10)); 3417f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 3418f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextBigInteger(10); 3419f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 3420f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 3421f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 3422f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 3423f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 3424f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If exception is thrown out, input will not be advanced. 3425f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextBigInteger(10)); 3426f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigInteger("23456"), s.nextBigInteger(10)); 3427f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextBigInteger(10)); 3428f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigInteger("23456"), s.nextBigInteger(10)); 3429f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3430f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 3431f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * ''' is used in many locales as group separator. 3432f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 3433f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("23'456 23'456"); 3434f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.GERMANY); 3435f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextBigInteger(10)); 3436f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 3437f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextBigInteger(10); 3438f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 3439f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 3440f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 3441f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 3442f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(new Locale("de", "CH")); 3443f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If exception is thrown out, input will not be advanced. 3444f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextBigInteger(10)); 3445f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigInteger("23456"), s.nextBigInteger(10)); 3446f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextBigInteger(10)); 3447f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigInteger("23456"), s.nextBigInteger(10)); 3448f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3449f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 3450f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * The input string has Arabic-Indic digits. 3451f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 3452f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("1\u06602 1\u06662"); 3453f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextBigInteger(10)); 3454f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigInteger("102"), s.nextBigInteger(10)); 3455f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextBigInteger(5)); 3456f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 3457f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextBigInteger(5); 3458f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 3459f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 3460f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 3461f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 3462f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextBigInteger(10)); 3463f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigInteger("162"), s.nextBigInteger(10)); 3464f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3465f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 3466f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * '.' is used in many locales as group separator. The input string 3467f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * has Arabic-Indic digits . 3468f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 3469f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("23.45\u0666 23.456"); 3470f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.CHINESE); 3471f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextBigInteger(10)); 3472f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 3473f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextBigInteger(10); 3474f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 3475f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 3476f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 3477f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 3478f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.GERMANY); 3479f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If exception is thrown out, input will not be advanced. 3480f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextBigInteger(10)); 3481f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigInteger("23456"), s.nextBigInteger(10)); 3482f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextBigInteger(10)); 3483f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigInteger("23456"), s.nextBigInteger(10)); 3484f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3485f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // The input string starts with zero 3486f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("03,456"); 3487f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 3488f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextBigInteger(10)); 3489f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 3490f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextBigInteger(10); 3491f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 3492f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 3493f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 3494f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 3495f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3496f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("03456"); 3497f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextBigInteger(10)); 3498f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigInteger("3456"), s.nextBigInteger(10)); 3499f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3500f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("\u06603,456"); 3501f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 3502f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextBigInteger(10)); 3503f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigInteger("3456"), s.nextBigInteger(10)); 3504f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3505f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("E34"); 3506f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextBigInteger(16)); 3507f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigInteger("3636"), s.nextBigInteger(16)); 3508f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3509f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 3510f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * There are 3 types of zero digit in all locales, '0' '\u0966' '\u0e50' 3511f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * respectively, but they are not differentiated. 3512f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 3513f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("12300"); 3514f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.CHINESE); 3515f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextBigInteger(10)); 3516f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigInteger("12300"), s.nextBigInteger(10)); 3517f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3518f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123\u0966\u0966"); 3519f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.CHINESE); 3520f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextBigInteger(10)); 3521f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigInteger("12300"), s.nextBigInteger(10)); 3522f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3523f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123\u0e50\u0e50"); 3524f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.CHINESE); 3525f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextBigInteger(10)); 3526f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigInteger("12300"), s.nextBigInteger(10)); 3527f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3528f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("-123"); 3529f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(new Locale("ar", "AE")); 3530f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextBigInteger(10)); 3531f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigInteger("-123"), s.nextBigInteger(10)); 3532f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3533f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3534f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("-123"); 3535f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(new Locale("mk", "MK")); 3536f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextBigInteger(10)); 3537f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigInteger("-123"), s.nextBigInteger(10)); 3538f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 3539f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3540f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 3541f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws IOException 3542f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Scanner#hasNextBigInteger(int) 3543f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 3544f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 3545f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.PARTIAL_COMPLETE, 3546f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "Regression test.", 3547f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "hasNextBigInteger", 3548f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {int.class} 3549f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 3550f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_hasNextBigIntegerI_cache() throws IOException { 3551f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //regression for HARMONY-2063 3552f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123 123456789123456789"); 3553f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextBigInteger(16)); 3554f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigInteger("291"), s.nextBigInteger()); 3555f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigInteger("123456789123456789"), s.nextBigInteger()); 3556f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3557f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123456789123456789 456"); 3558f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextBigInteger(16)); 3559f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextBigInteger(10)); 3560f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigInteger("123456789123456789"), s.nextBigInteger()); 3561f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigInteger("456"), s.nextBigInteger()); 3562f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3563f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("-123 -123456789123456789"); 3564f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextBigInteger(8)); 3565f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(-123, s.nextShort()); 3566f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigInteger("-123456789123456789"), s.nextBigInteger()); 3567f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3568f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123 456"); 3569f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextBigInteger()); 3570f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.close(); 3571f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 3572f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextBigInteger(); 3573f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw IllegalStateException"); 3574f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalStateException e) { 3575f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 3576f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 3577f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 3578f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3579f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 3580f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws IOException 3581f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Scanner#hasNextBigInteger() 3582f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 3583f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 3584f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 3585f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 3586f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "hasNextBigInteger", 3587f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {} 3588f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 3589f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @KnownFailure("nextBigInteger method doesn't work properly if input string has Arabic-Indic digits") 3590f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_hasNextBigInteger() throws IOException { 3591f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123 456"); 3592f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextBigInteger()); 3593f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigInteger("123"), s.nextBigInteger()); 3594f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextBigInteger()); 3595f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigInteger("456"), s.nextBigInteger()); 3596f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextBigInteger()); 3597f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 3598f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextBigInteger(); 3599f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw NoSuchElementException"); 3600f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NoSuchElementException e) { 3601f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 3602f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 3603f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3604f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If the radix is different from 10 3605f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123 456"); 3606f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useRadix(5); 3607f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextBigInteger()); 3608f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigInteger("38"), s.nextBigInteger()); 3609f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextBigInteger()); 3610f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 3611f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextBigInteger(); 3612f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 3613f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 3614f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 3615f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 3616f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3617f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 3618f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Different locale can only recognize corresponding locale sensitive 3619f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * string. ',' is used in many locales as group separator. 3620f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 3621f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("23,456 23,456"); 3622f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.GERMANY); 3623f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextBigInteger()); 3624f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 3625f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextBigInteger(); 3626f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 3627f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 3628f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 3629f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 3630f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 3631f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If exception is thrown out, input will not be advanced. 3632f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextBigInteger()); 3633f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigInteger("23456"), s.nextBigInteger()); 3634f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextBigInteger()); 3635f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigInteger("23456"), s.nextBigInteger()); 3636f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3637f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 3638f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * ''' is used in many locales as group separator. 3639f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 3640f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("23'456 23'456"); 3641f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.GERMANY); 3642f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextBigInteger()); 3643f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 3644f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextBigInteger(); 3645f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 3646f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 3647f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 3648f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 3649f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(new Locale("de", "CH")); 3650f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If exception is thrown out, input will not be advanced. 3651f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextBigInteger()); 3652f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigInteger("23456"), s.nextBigInteger()); 3653f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextBigInteger()); 3654f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigInteger("23456"), s.nextBigInteger()); 3655f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3656f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 3657f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * The input string has Arabic-Indic digits. 3658f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 3659f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("1\u06602 1\u06662"); 3660f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigInteger("102"), s.nextBigInteger()); 3661f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useRadix(5); 3662f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextBigInteger()); 3663f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 3664f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextBigInteger(); 3665f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 3666f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 3667f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 3668f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 3669f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useRadix(10); 3670f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextBigInteger()); 3671f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigInteger("162"), s.nextBigInteger()); 3672f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3673f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 3674f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * '.' is used in many locales as group separator. The input string 3675f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * has Arabic-Indic digits . 3676f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 3677f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("23.45\u0666 23.456"); 3678f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.CHINESE); 3679f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextBigInteger()); 3680f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 3681f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextBigInteger(); 3682f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 3683f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 3684f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 3685f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 3686f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.GERMANY); 3687f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If exception is thrown out, input will not be advanced. 3688f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextBigInteger()); 3689f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigInteger("23456"), s.nextBigInteger()); 3690f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextBigInteger()); 3691f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigInteger("23456"), s.nextBigInteger()); 3692f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3693f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // The input string starts with zero 3694f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("03,456"); 3695f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 3696f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextBigInteger()); 3697f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 3698f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextBigInteger(); 3699f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 3700f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 3701f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 3702f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 3703f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3704f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("03456"); 3705f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextBigInteger()); 3706f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigInteger("3456"), s.nextBigInteger()); 3707f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3708f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("\u06603,456"); 3709f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 3710f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextBigInteger()); 3711f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigInteger("3456"), s.nextBigInteger()); 3712f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3713f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("E34"); 3714f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useRadix(16); 3715f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextBigInteger()); 3716f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigInteger("3636"), s.nextBigInteger()); 3717f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3718f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 3719f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * There are 3 types of zero digit in all locales, '0' '\u0966' '\u0e50' 3720f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * respectively, but they are not differentiated. 3721f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 3722f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("12300"); 3723f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.CHINESE); 3724f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextBigInteger()); 3725f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigInteger("12300"), s.nextBigInteger()); 3726f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3727f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123\u0966\u0966"); 3728f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.CHINESE); 3729f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextBigInteger()); 3730f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigInteger("12300"), s.nextBigInteger()); 3731f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3732f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123\u0e50\u0e50"); 3733f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.CHINESE); 3734f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextBigInteger()); 3735f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigInteger("12300"), s.nextBigInteger()); 3736f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3737f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("-123"); 3738f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(new Locale("ar", "AE")); 3739f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextBigInteger()); 3740f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigInteger("-123"), s.nextBigInteger()); 3741f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3742f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("-123"); 3743f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(new Locale("mk", "MK")); 3744f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextBigInteger()); 3745f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigInteger("-123"), s.nextBigInteger()); 3746f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3747f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.close(); 3748f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 3749f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.hasNextBigInteger(); 3750f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("IllegalStateException expected"); 3751f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalStateException e) { 3752f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //expected 3753f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 3754f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 3755f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3756f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 3757f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws IOException 3758f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Scanner#hasNextInt(int) 3759f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 3760f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 3761f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.PARTIAL_COMPLETE, 3762f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "IllegalStateException checking missed.", 3763f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "hasNextInt", 3764f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {int.class} 3765f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 3766f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_hasNextIntI() throws IOException { 37678ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot Locale mkLocale = new Locale("mk", "MK"); 37688ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot Locale arLocale = new Locale("ar", "AE"); 37698ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot Locale deLocale = new Locale("de", "CH"); 37708ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot Locale[] requiredLocales = {Locale.GERMANY, Locale.ENGLISH, Locale.CHINESE, 37718ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot mkLocale, arLocale, deLocale}; 37728ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot if (!Support_Locale.areLocalesAvailable(requiredLocales)) { 37738ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot // locale dependent test, bug 1943269 37748ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot return; 37758ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot } 3776f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123 456"); 3777f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(123, s.nextInt(10)); 3778f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextInt(10)); 3779f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(456, s.nextInt(10)); 3780f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextInt(10)); 3781f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 3782f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextInt(10); 3783f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw NoSuchElementException"); 3784f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NoSuchElementException e) { 3785f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 3786f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 3787f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3788f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If the radix is different from 10 3789f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123 456"); 3790f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextInt(5)); 3791f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(38, s.nextInt(5)); 3792f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextInt(5)); 3793f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 3794f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextInt(5); 3795f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 3796f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 3797f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 3798f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 3799f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3800f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If the number is out of range 3801f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123456789123456789123456789123456789"); 3802f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextInt(10)); 3803f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3804f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 3805f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Different locale can only recognize corresponding locale sensitive 3806f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * string. ',' is used in many locales as group separator. 3807f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 3808f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("23,456"); 3809f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.GERMANY); 3810f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextInt(10)); 3811f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 3812f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If exception is thrown out, input will not be advanced. 3813f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextInt(10)); 3814f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 3815f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * ''' is used in many locales as group separator. 3816f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 3817f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("23'456"); 3818f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.GERMANY); 3819f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextInt(10)); 38208ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot s.useLocale(deLocale); 3821f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If exception is thrown out, input will not be advanced. 3822f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextInt(10)); 3823f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3824f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 3825f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * The input string has Arabic-Indic digits. 3826f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 3827f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("1\u06662"); 3828f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextInt(10)); 3829f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextInt(5)); 3830f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3831f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 3832f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * '.' is used in many locales as group separator. The input string 3833f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * has Arabic-Indic digits . 3834f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 3835f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("23.45\u0666"); 3836f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.CHINESE); 3837f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextInt(10)); 3838f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 3839f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextInt(10); 3840f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 3841f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 3842f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 3843f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 3844f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.GERMANY); 3845f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextInt(10)); 3846f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3847f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // The input string starts with zero 3848f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("03,456"); 3849f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 3850f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextInt(10)); 3851f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 3852f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextInt(10); 3853f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 3854f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 3855f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 3856f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 3857f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3858f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("03456"); 3859f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextInt(10)); 3860f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(3456, s.nextInt(10)); 3861f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3862f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("\u06603,456"); 3863f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 3864f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextInt(10)); 3865f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(3456, s.nextInt(10)); 3866f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3867f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("E3456"); 3868f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextInt(16)); 3869f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(930902, s.nextInt(16)); 3870f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // The following test case fails on RI, because RI does not support 3871f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // letter as leading digit 3872f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("E3,456"); 3873f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 3874f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project if (!disableRIBugs) { 3875f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextInt(16)); 3876f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(930902, s.nextInt(16)); 3877f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3878f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If parameter radix is illegal, the following test case fails on RI 3879f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 3880f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.hasNextInt(Character.MIN_RADIX - 1); 3881f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw IllegalArgumentException"); 3882f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalArgumentException e) { 3883f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 3884f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 3885f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 3886f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3887f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 3888f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * There are 3 types of zero digit in all locales, '0' '\u0966' '\u0e50' 3889f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * respectively, but they are not differentiated. 3890f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 3891f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("12300"); 3892f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.CHINESE); 3893f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextInt(10)); 3894f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(12300, s.nextInt(10)); 3895f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3896f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123\u0966\u0966"); 3897f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.CHINESE); 3898f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextInt(10)); 3899f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(12300, s.nextInt(10)); 3900f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3901f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123\u0e50\u0e50"); 3902f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.CHINESE); 3903f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextInt(10)); 3904f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(12300, s.nextInt(10)); 3905f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3906f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 3907f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * There are three types of negative prefix all in all. '' '-' '(' There 3908f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * are three types of negative suffix all in all. '' '-' ')' '(' and ')' 3909f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * must be used togethor. Prefix '-' and suffix '-' must be used 3910f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * exclusively. 3911f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 3912f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3913f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 3914f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * According to Integer regular expression: Integer :: = ( [-+]? (* 3915f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Numeral ) ) | LocalPositivePrefix Numeral LocalPositiveSuffix | 3916f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * LocalNegativePrefix Numeral LocalNegativeSuffix 123- should be 3917f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * recognized by scanner with locale ar_AE, (123) shouble be recognized 3918f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * by scanner with locale mk_MK. But this is not the case on RI. 3919f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 3920f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("-123 123- -123-"); 39218ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot s.useLocale(arLocale); 3922f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextInt(10)); 3923f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(-123, s.nextInt(10)); 3924f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // The following test case fails on RI 3925f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project if (!disableRIBugs) { 3926f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextInt(10)); 3927f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(-123, s.nextInt(10)); 3928f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 3929f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextInt(10)); 3930f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 3931f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextInt(10); 3932f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 3933f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 3934f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 3935f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 3936f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3937f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("-123 123- (123)"); 39388ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot s.useLocale(mkLocale); 3939f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextInt(10)); 3940f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(-123, s.nextInt(10)); 3941f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextInt(10)); 3942f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 3943f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextInt(); 3944f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 3945f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 3946f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 3947f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 3948f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Skip the un-recognizable token 123-. 3949f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("123-", s.next()); 3950f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // The following test case fails on RI 3951f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project if (!disableRIBugs) { 3952f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextInt(10)); 3953f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(-123, s.nextInt(10)); 3954f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 3955f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 3956f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3957f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 3958f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws IOException 3959f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Scanner#hasNextInt(int) 3960f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 3961f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 3962f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.PARTIAL_COMPLETE, 3963f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "Regression test", 3964f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "hasNextInt", 3965f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {int.class} 3966f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 3967f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_hasNextIntI_cache() throws IOException { 3968f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //regression for HARMONY-2063 3969f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123 456"); 3970f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextInt(16)); 3971f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(291, s.nextInt(10)); 3972f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(456, s.nextInt()); 3973f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3974f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123 456"); 3975f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextInt(16)); 3976f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextInt(8)); 3977f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(83, s.nextInt()); 3978f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(456, s.nextInt()); 3979f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3980f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("-123 -456 -789"); 3981f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextInt(8)); 3982f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(-123, s.nextShort()); 3983f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(-456, s.nextInt()); 3984f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextShort(16)); 3985f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(-789, s.nextInt()); 3986f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3987f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123 456"); 3988f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextInt()); 3989f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.close(); 3990f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 3991f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextInt(); 3992f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw IllegalStateException"); 3993f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalStateException e) { 3994f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 3995f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 3996f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 3997f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 3998f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws IOException 3999f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Scanner#hasNextInt() 4000f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 4001f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 4002f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 4003f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 4004f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "hasNextInt", 4005f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {} 4006f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 4007f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_hasNextInt() throws IOException { 40088ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot Locale mkLocale = new Locale("mk", "MK"); 40098ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot Locale arLocale = new Locale("ar", "AE"); 40108ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot Locale deLocale = new Locale("de", "CH"); 40118ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot Locale[] requiredLocales = {Locale.GERMANY, Locale.ENGLISH, Locale.CHINESE, 40128ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot mkLocale, arLocale, deLocale}; 40138ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot if (!Support_Locale.areLocalesAvailable(requiredLocales)) { 40148ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot // locale dependent test, bug 1943269 40158ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot return; 40168ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot } 4017f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123 456"); 4018f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextInt()); 4019f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(123, s.nextInt()); 4020f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(456, s.nextInt()); 4021f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextInt()); 4022f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 4023f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextInt(); 4024f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw NoSuchElementException"); 4025f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NoSuchElementException e) { 4026f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 4027f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 4028f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4029f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If the radix is different from 10 4030f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123 456"); 4031f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useRadix(5); 4032f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextInt()); 4033f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(38, s.nextInt()); 4034f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextInt()); 4035f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 4036f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextInt(); 4037f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 4038f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 4039f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 4040f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 4041f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4042f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If the number is out of range 4043f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123456789123456789123456789123456789"); 4044f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextInt()); 4045f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4046f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 4047f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Different locale can only recognize corresponding locale sensitive 4048f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * string. ',' is used in many locales as group separator. 4049f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 4050f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("23,456"); 4051f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.GERMANY); 4052f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextInt()); 4053f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 4054f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextInt()); 4055f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4056f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 4057f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * ''' is used in many locales as group separator. 4058f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 4059f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("23'456"); 4060f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.GERMANY); 4061f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextInt()); 40628ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot s.useLocale(deLocale); 4063f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextInt()); 4064f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4065f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 4066f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * The input string has Arabic-Indic digits. 4067f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 4068f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("1\u06662"); 4069f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useRadix(5); 4070f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextInt()); 4071f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4072f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 4073f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * '.' is used in many locales as group separator. The input string 4074f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * has Arabic-Indic digits . 4075f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 4076f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("23.45\u0666"); 4077f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.CHINESE); 4078f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextInt()); 4079f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.GERMANY); 4080f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextInt()); 4081f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4082f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // The input string starts with zero 4083f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("03,456"); 4084f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 4085f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextInt()); 4086f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 4087f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextInt(); 4088f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 4089f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 4090f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 4091f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 4092f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4093f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("03456"); 4094f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextInt()); 4095f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(3456, s.nextInt()); 4096f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4097f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("\u06603,456"); 4098f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 4099f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(3456, s.nextInt()); 4100f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4101f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("E3456"); 4102f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useRadix(16); 4103f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextInt()); 4104f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(930902, s.nextInt()); 4105f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4106f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // The following test case fails on RI, because RI does not support 4107f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // letter as leading digit 4108f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("E3,456"); 4109f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 4110f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useRadix(16); 4111f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project if (!disableRIBugs) { 4112f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextInt()); 4113f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(930902, s.nextInt()); 4114f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 4115f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4116f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 4117f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * There are 3 types of zero digit in all locales, '0' '\u0966' '\u0e50' 4118f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * respectively, but they are not differentiated. 4119f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 4120f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("12300"); 4121f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.CHINESE); 4122f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextInt()); 4123f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(12300, s.nextInt()); 4124f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4125f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123\u0966\u0966"); 4126f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.CHINESE); 4127f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextInt()); 4128f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(12300, s.nextInt()); 4129f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4130f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123\u0e50\u0e50"); 4131f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.CHINESE); 4132f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextInt()); 4133f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(12300, s.nextInt()); 4134f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4135f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 4136f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * There are three types of negative prefix all in all. '' '-' '(' There 4137f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * are three types of negative suffix all in all. '' '-' ')' '(' and ')' 4138f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * must be used togethor. Prefix '-' and suffix '-' must be used 4139f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * exclusively. 4140f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 4141f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4142f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 4143f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * According to Integer regular expression: Integer :: = ( [-+]? (* 4144f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Numeral ) ) | LocalPositivePrefix Numeral LocalPositiveSuffix | 4145f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * LocalNegativePrefix Numeral LocalNegativeSuffix 123- should be 4146f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * recognized by scanner with locale ar_AE, (123) shouble be recognized 4147f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * by scanner with locale mk_MK. But this is not the case on RI. 4148f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 4149f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("-123 123- -123-"); 41508ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot s.useLocale(arLocale); 4151f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextInt()); 4152f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(-123, s.nextInt()); 4153f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // The following test case fails on RI 4154f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project if (!disableRIBugs) { 4155f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextInt()); 4156f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(-123, s.nextInt()); 4157f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 4158f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextInt()); 4159f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 4160f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextInt(); 4161f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 4162f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 4163f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 4164f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 4165f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4166f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("-123 123- (123)"); 41678ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot s.useLocale(mkLocale); 4168f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextInt()); 4169f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(-123, s.nextInt()); 4170f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 4171f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextInt(); 4172f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 4173f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 4174f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 4175f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 4176f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Skip the un-recognizable token 123-. 4177f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("123-", s.next()); 4178f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // The following test case fails on RI 4179f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project if (!disableRIBugs) { 4180f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextInt()); 4181f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(-123, s.nextInt()); 4182f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 4183f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4184f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.close(); 4185f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 4186f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.hasNextInt(); 4187f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("IllegalStateException expected"); 4188f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalStateException e) { 4189f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //expected 4190f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 4191f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 4192f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4193f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 4194f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws IOException 4195f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Scanner#hasNextFloat() 4196f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 4197f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 4198f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 4199f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 4200f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "hasNextFloat", 4201f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {} 4202f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 4203f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_hasNextFloat() throws IOException { 42048ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot Locale mkLocale = new Locale("mk", "MK"); 42058ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot Locale arLocale = new Locale("ar", "AE"); 42068ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot Locale[] requiredLocales = {Locale.GERMANY, Locale.ENGLISH, mkLocale, arLocale}; 42078ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot if (!Support_Locale.areLocalesAvailable(requiredLocales)) { 42088ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot // locale dependent test, bug 1943269 42098ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot return; 42108ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot } 4211f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123 45\u0666. 123.4 .123 "); 4212f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 4213f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextFloat()); 4214f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals((float)123.0, s.nextFloat()); 4215f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextFloat()); 4216f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals((float)456.0, s.nextFloat()); 4217f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextFloat()); 4218f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals((float)123.4, s.nextFloat()); 4219f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextFloat()); 4220f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals((float)0.123, s.nextFloat()); 4221f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextFloat()); 4222f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 4223f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextFloat(); 4224f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw NoSuchElementException"); 4225f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NoSuchElementException e) { 4226f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 4227f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 4228f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4229f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("+123.4 -456.7 123,456.789 0.1\u06623,4"); 4230f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 4231f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextFloat()); 4232f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals((float)123.4, s.nextFloat()); 4233f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextFloat()); 4234f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals((float)-456.7, s.nextFloat()); 4235f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextFloat()); 4236f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals((float)123456.789, s.nextFloat()); 4237f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextFloat()); 4238f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 4239f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextFloat(); 4240f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 4241f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 4242f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 4243f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 4244f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4245f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Scientific notation 4246f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("+123.4E10 -456.7e+12 123,456.789E-10"); 4247f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 4248f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextFloat()); 4249f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals((float)1.234E12, s.nextFloat()); 4250f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextFloat()); 4251f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals((float)-4.567E14, s.nextFloat()); 4252f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextFloat()); 4253f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals((float)1.23456789E-5, s.nextFloat()); 4254f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4255f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("NaN Infinity -Infinity"); 4256f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextFloat()); 4257f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(Float.NaN, s.nextFloat()); 4258f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextFloat()); 4259f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(Float.POSITIVE_INFINITY, s.nextFloat()); 4260f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextFloat()); 4261f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(Float.NEGATIVE_INFINITY, s.nextFloat()); 4262f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4263f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project String str=String.valueOf(Float.MAX_VALUE*2); 4264f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s=new Scanner(str); 4265f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextFloat()); 4266f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(Float.POSITIVE_INFINITY,s.nextFloat()); 4267f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4268f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 4269f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Different locale can only recognize corresponding locale sensitive 4270f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * string. ',' is used in many locales as group separator. 4271f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 4272f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("23,456 23,456"); 4273f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 4274f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextFloat()); 4275f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals((float)23456.0, s.nextFloat()); 4276f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.GERMANY); 4277f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextFloat()); 4278f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals((float)23.456, s.nextFloat()); 4279f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4280f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("23.456 23.456"); 4281f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 4282f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextFloat()); 4283f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals((float)23.456, s.nextFloat()); 4284f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.GERMANY); 4285f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextFloat()); 4286f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals((float)23456.0, s.nextFloat()); 4287f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4288f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("23,456.7 23.456,7"); 4289f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 4290f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextFloat()); 4291f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals((float)23456.7, s.nextFloat()); 4292f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.GERMANY); 4293f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextFloat()); 4294f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals((float)23456.7, s.nextFloat()); 4295f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4296f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("-123.4 123.4- -123.4-"); 42978ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot s.useLocale(arLocale); 4298f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextFloat()); 4299f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals((float)-123.4, s.nextFloat()); 4300f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //The following test case fails on RI 4301f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project if (!disableRIBugs) { 4302f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextFloat()); 4303f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals((float)-123.4, s.nextFloat()); 4304f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 4305f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 4306f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextFloat(); 4307f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 4308f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 4309f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 4310f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 4311f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4312f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("(123) 123- -123"); 43138ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot s.useLocale(mkLocale); 4314f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project if (!disableRIBugs) { 4315f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextFloat()); 4316f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals((float)-123.0, s.nextFloat()); 4317f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 4318f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextFloat()); 4319f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 4320f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextFloat(); 4321f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 4322f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 4323f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 4324f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 4325f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Skip the un-recognizable token 123-. 4326f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project if (!disableRIBugs) { 4327f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("123-", s.next()); 4328f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextFloat()); 4329f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals((float)-123.0, s.nextFloat()); 4330f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 4331f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4332f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("+123.4 -456.7"); 4333f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 4334f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextFloat()); 4335f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.close(); 4336f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try{ 4337f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextFloat(); 4338f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw IllegalStateException"); 4339f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project }catch(IllegalStateException e){ 4340f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //expected 4341f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 4342f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4343f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 4344f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4345f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 4346f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws IOException 4347f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Scanner#hasNextShort(int) 4348f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 4349f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 4350f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.PARTIAL_COMPLETE, 4351f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "IllegalStateException checking missed.", 4352f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "hasNextShort", 4353f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {int.class} 4354f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 4355f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_hasNextShortI() throws IOException { 43568ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot Locale[] requiredLocales = {Locale.GERMANY, Locale.ENGLISH, Locale.CHINESE}; 43578ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot if (!Support_Locale.areLocalesAvailable(requiredLocales)) { 43588ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot // locale dependent test, bug 1943269 43598ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot return; 43608ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot } 4361f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123 456"); 4362f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextShort(10)); 4363f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(123, s.nextShort(10)); 4364f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextShort(10)); 4365f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(456, s.nextShort(10)); 4366f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextShort(10)); 4367f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 4368f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextShort(10); 4369f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw NoSuchElementException"); 4370f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NoSuchElementException e) { 4371f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 4372f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 4373f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4374f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If the radix is different from 10 4375f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123 456"); 4376f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextShort(5)); 4377f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(38, s.nextShort(5)); 4378f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextShort(5)); 4379f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 4380f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextShort(5); 4381f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 4382f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 4383f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 4384f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 4385f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4386f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If the number is out of range 4387f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123456789"); 4388f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextShort(10)); 4389f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 4390f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextShort(10); 4391f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 4392f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 4393f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 4394f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 4395f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4396f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 4397f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Different locale can only recognize corresponding locale sensitive 4398f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * string. ',' is used in many locales as group separator. 4399f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 4400f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("23,456 23,456"); 4401f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.GERMANY); 4402f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextShort(10)); 4403f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 4404f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextShort(10); 4405f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 4406f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 4407f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 4408f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 4409f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 4410f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If exception is thrown out, input will not be advanced. 4411f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextShort(10)); 4412f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(23456, s.nextInt(10)); 4413f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextShort(10)); 4414f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(23456, s.nextInt(10)); 4415f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4416f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 4417f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * ''' is used in many locales as group separator. 4418f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 4419f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("23'456 23'456"); 4420f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.GERMANY); 4421f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextShort(10)); 4422f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 4423f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextShort(10); 4424f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 4425f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 4426f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 4427f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 4428f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(new Locale("de", "CH")); 4429f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If exception is thrown out, input will not be advanced. 4430f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextShort(10)); 4431f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(23456, s.nextShort(10)); 4432f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextShort(10)); 4433f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(23456, s.nextShort(10)); 4434f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4435f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 4436f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * The input string has Arabic-Indic digits. 4437f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 4438f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("1\u06602 1\u06662"); 4439f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextShort(10)); 4440f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(102, s.nextShort(10)); 4441f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextShort(5)); 4442f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 4443f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextShort(5); 4444f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 4445f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 4446f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 4447f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 4448f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextShort(10)); 4449f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(162, s.nextShort(10)); 4450f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4451f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 4452f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * '.' is used in many locales as group separator. The input string 4453f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * has Arabic-Indic digits . 4454f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 4455f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("23.45\u0666 23.456"); 4456f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.CHINESE); 4457f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextShort(10)); 4458f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 4459f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextShort(10); 4460f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 4461f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 4462f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 4463f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 4464f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.GERMANY); 4465f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If exception is thrown out, input will not be advanced. 4466f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextShort(10)); 4467f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(23456, s.nextShort(10)); 4468f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextShort(10)); 4469f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(23456, s.nextShort(10)); 4470f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4471f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // The input string starts with zero 4472f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("03,456"); 4473f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 4474f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextShort(10)); 4475f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 4476f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextShort(10); 4477f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 4478f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 4479f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 4480f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 4481f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4482f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("03456"); 4483f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextShort(10)); 4484f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(3456, s.nextShort(10)); 4485f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4486f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("\u06603,456"); 4487f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 4488f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextShort(10)); 4489f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(3456, s.nextShort(10)); 4490f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4491f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("E34"); 4492f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextShort(16)); 4493f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(3636, s.nextShort(16)); 4494f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4495f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 4496f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * There are 3 types of zero digit in all locales, '0' '\u0966' '\u0e50' 4497f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * respectively, but they are not differentiated. 4498f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 4499f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("12300"); 4500f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.CHINESE); 4501f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextShort(10)); 4502f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(12300, s.nextShort(10)); 4503f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4504f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123\u0966\u0966"); 4505f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.CHINESE); 4506f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextShort(10)); 4507f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(12300, s.nextShort(10)); 4508f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4509f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123\u0e50\u0e50"); 4510f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.CHINESE); 4511f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextShort(10)); 4512f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(12300, s.nextShort(10)); 4513f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4514f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("-123"); 4515f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(new Locale("ar", "AE")); 4516f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextShort(10)); 4517f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(-123, s.nextShort(10)); 4518f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4519f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4520f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("-123"); 4521f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(new Locale("mk", "MK")); 4522f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextShort(10)); 4523f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(-123, s.nextShort(10)); 4524f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 4525f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4526f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 4527f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws IOException 4528f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Scanner#hasNextShort() 4529f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 4530f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 4531f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 4532f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 4533f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "hasNextShort", 4534f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {} 4535f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 4536f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_hasNextShort() throws IOException { 45378ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot Locale deLocale = new Locale("de", "CH"); 45388ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot Locale arLocale = new Locale("ar", "AE"); 45398ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot Locale mkLocale = new Locale("mk", "MK"); 45408ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot Locale[] requiredLocales = {Locale.GERMANY, Locale.ENGLISH, Locale.CHINESE, deLocale, 45418ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot arLocale, mkLocale}; 45428ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot if (!Support_Locale.areLocalesAvailable(requiredLocales)) { 45438ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot // locale dependent test, bug 1943269 45448ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot return; 45458ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot } 4546f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123 456"); 4547f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextShort()); 4548f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(123, s.nextShort()); 4549f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextShort()); 4550f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(456, s.nextShort()); 4551f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextShort()); 4552f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 4553f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextShort(); 4554f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw NoSuchElementException"); 4555f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NoSuchElementException e) { 4556f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 4557f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 4558f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4559f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If the radix is different from 10 4560f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123 456"); 4561f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useRadix(5); 4562f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextShort()); 4563f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(38, s.nextShort()); 4564f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextShort()); 4565f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 4566f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextShort(); 4567f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 4568f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 4569f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 4570f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 4571f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4572f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If the number is out of range 4573f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123456789"); 4574f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextShort()); 4575f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 4576f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextShort(); 4577f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 4578f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 4579f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 4580f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 4581f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4582f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 4583f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Different locale can only recognize corresponding locale sensitive 4584f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * string. ',' is used in many locales as group separator. 4585f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 4586f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("23,456 23,456"); 4587f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.GERMANY); 4588f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextShort()); 4589f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 4590f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextShort(); 4591f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 4592f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 4593f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 4594f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 4595f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 4596f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If exception is thrown out, input will not be advanced. 4597f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextShort()); 4598f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(23456, s.nextShort()); 4599f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextShort()); 4600f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(23456, s.nextShort()); 4601f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4602f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 4603f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * ''' is used in many locales as group separator. 4604f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 4605f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("23'456 23'456"); 4606f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.GERMANY); 4607f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextShort()); 4608f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 4609f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextShort(); 4610f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 4611f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 4612f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 4613f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 46148ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot s.useLocale(deLocale); 4615f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If exception is thrown out, input will not be advanced. 4616f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextShort()); 4617f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(23456, s.nextShort()); 4618f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextShort()); 4619f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(23456, s.nextShort()); 4620f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4621f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 4622f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * The input string has Arabic-Indic digits. 4623f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 4624f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("1\u06602 1\u06662"); 4625f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(102, s.nextShort()); 4626f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useRadix(5); 4627f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextShort()); 4628f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 4629f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextShort(); 4630f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 4631f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 4632f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 4633f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 4634f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useRadix(10); 4635f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextShort()); 4636f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(162, s.nextShort()); 4637f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4638f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 4639f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * '.' is used in many locales as group separator. The input string 4640f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * has Arabic-Indic digits . 4641f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 4642f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("23.45\u0666 23.456"); 4643f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.CHINESE); 4644f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextShort()); 4645f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 4646f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextShort(); 4647f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 4648f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 4649f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 4650f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 4651f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.GERMANY); 4652f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If exception is thrown out, input will not be advanced. 4653f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextShort()); 4654f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(23456, s.nextShort()); 4655f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextShort()); 4656f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(23456, s.nextShort()); 4657f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4658f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // The input string starts with zero 4659f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("03,456"); 4660f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 4661f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextShort()); 4662f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 4663f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextShort(); 4664f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 4665f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 4666f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 4667f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 4668f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4669f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("03456"); 4670f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextShort()); 4671f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(3456, s.nextShort()); 4672f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4673f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("\u06603,456"); 4674f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 4675f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextShort()); 4676f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(3456, s.nextShort()); 4677f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4678f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("E34"); 4679f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useRadix(16); 4680f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextShort()); 4681f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(3636, s.nextShort()); 4682f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4683f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 4684f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * There are 3 types of zero digit in all locales, '0' '\u0966' '\u0e50' 4685f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * respectively, but they are not differentiated. 4686f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 4687f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("12300"); 4688f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.CHINESE); 4689f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextShort()); 4690f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(12300, s.nextShort()); 4691f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4692f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123\u0966\u0966"); 4693f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.CHINESE); 4694f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextShort()); 4695f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(12300, s.nextShort()); 4696f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4697f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123\u0e50\u0e50"); 4698f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.CHINESE); 4699f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextShort()); 4700f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(12300, s.nextShort()); 4701f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4702f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("-123"); 47038ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot s.useLocale(arLocale); 4704f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextShort()); 4705f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(-123, s.nextShort()); 4706f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4707f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("-123"); 47088ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot s.useLocale(mkLocale); 4709f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextShort()); 4710f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(-123, s.nextShort()); 4711f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4712f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.close(); 4713f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 4714f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.hasNextShort(); 4715f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("IllegalStateException expected"); 4716f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalStateException e) { 4717f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //expected 4718f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 4719f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 4720f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4721f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 4722f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws IOException 4723f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Scanner#hasNextShort(int) 4724f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 4725f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 4726f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.PARTIAL_COMPLETE, 4727f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "Regression test.", 4728f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "hasNextShort", 4729f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {int.class} 4730f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 4731f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_hasNextShortI_cache() throws IOException { 4732f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //regression for HARMONY-2063 4733f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123 456"); 4734f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextShort(16)); 4735f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(291, s.nextShort()); 4736f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(456, s.nextShort()); 4737f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4738f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123 456"); 4739f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextShort(16)); 4740f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextShort(8)); 4741f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(83, s.nextShort()); 4742f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(456, s.nextShort()); 4743f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4744f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("-123 -456 -789"); 4745f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextShort(8)); 4746f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(-123, s.nextInt()); 4747f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(-456, s.nextShort()); 4748f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextInt(16)); 4749f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(-789, s.nextShort()); 4750f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4751f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123 456"); 4752f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextShort()); 4753f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.close(); 4754f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 4755f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextShort(); 4756f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw IllegalStateException"); 4757f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalStateException e) { 4758f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 4759f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 4760f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 4761f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4762f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 4763f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws IOException 4764f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Scanner#hasNextLong(int) 4765f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 4766f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 4767f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.PARTIAL_COMPLETE, 4768f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "IllegalStateException checking missed.", 4769f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "hasNextLong", 4770f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {int.class} 4771f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 4772f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_hasNextLongI() throws IOException { 47738ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot Locale[] requiredLocales = {Locale.GERMANY, Locale.ENGLISH, Locale.CHINESE}; 47748ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot if (!Support_Locale.areLocalesAvailable(requiredLocales)) { 47758ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot // locale dependent test, bug 1943269 47768ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot return; 47778ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot } 4778f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123 456"); 4779f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextLong(10)); 4780f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(123, s.nextLong(10)); 4781f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextLong(10)); 4782f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(456, s.nextLong(10)); 4783f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextLong(10)); 4784f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 4785f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextLong(10); 4786f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw NoSuchElementException"); 4787f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NoSuchElementException e) { 4788f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 4789f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 4790f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4791f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If the radix is different from 10 4792f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123 456"); 4793f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextLong(5)); 4794f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(38, s.nextLong(5)); 4795f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextLong(5)); 4796f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 4797f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextLong(5); 4798f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 4799f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 4800f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 4801f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 4802f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4803f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If the number is out of range 4804f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123456789123456789123456789123456789"); 4805f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextLong(10)); 4806f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 4807f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextLong(10); 4808f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 4809f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 4810f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 4811f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 4812f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4813f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 4814f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Different locale can only recognize corresponding locale sensitive 4815f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * string. ',' is used in many locales as group separator. 4816f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 4817f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("23,456 23,456"); 4818f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.GERMANY); 4819f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextShort(10)); 4820f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 4821f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextLong(10); 4822f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 4823f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 4824f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 4825f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 4826f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 4827f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If exception is thrown out, input will not be advanced. 4828f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextLong(10)); 4829f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(23456, s.nextLong(10)); 4830f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextLong(10)); 4831f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(23456, s.nextLong(10)); 4832f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4833f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 4834f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * ''' is used in many locales as group separator. 4835f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 4836f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("23'456 23'456"); 4837f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.GERMANY); 4838f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextLong(10)); 4839f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 4840f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextLong(10); 4841f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 4842f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 4843f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 4844f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 4845f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(new Locale("de", "CH")); 4846f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If exception is thrown out, input will not be advanced. 4847f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextLong(10)); 4848f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(23456, s.nextLong(10)); 4849f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextLong(10)); 4850f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(23456, s.nextLong(10)); 4851f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4852f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 4853f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * The input string has Arabic-Indic digits. 4854f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 4855f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("1\u06602 1\u06662"); 4856f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextLong(10)); 4857f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(102, s.nextLong(10)); 4858f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextLong(5)); 4859f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 4860f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextLong(5); 4861f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 4862f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 4863f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 4864f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 4865f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextLong(10)); 4866f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(162, s.nextLong(10)); 4867f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4868f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 4869f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * '.' is used in many locales as group separator. The input string 4870f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * has Arabic-Indic digits . 4871f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 4872f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("23.45\u0666 23.456"); 4873f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.CHINESE); 4874f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextLong(10)); 4875f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 4876f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextLong(10); 4877f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 4878f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 4879f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 4880f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 4881f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.GERMANY); 4882f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If exception is thrown out, input will not be advanced. 4883f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextLong(10)); 4884f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(23456, s.nextLong(10)); 4885f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextLong(10)); 4886f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(23456, s.nextLong(10)); 4887f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4888f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // The input string starts with zero 4889f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("03,456"); 4890f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 4891f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextLong(10)); 4892f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 4893f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextLong(10); 4894f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 4895f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 4896f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 4897f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 4898f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4899f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("03456"); 4900f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextLong(10)); 4901f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(3456, s.nextLong(10)); 4902f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4903f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("\u06603,456"); 4904f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 4905f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextLong(10)); 4906f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(3456, s.nextLong(10)); 4907f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4908f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("E34"); 4909f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextLong(16)); 4910f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(3636, s.nextLong(16)); 4911f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4912f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 4913f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * There are 3 types of zero digit in all locales, '0' '\u0966' '\u0e50' 4914f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * respectively, but they are not differentiated. 4915f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 4916f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("12300"); 4917f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.CHINESE); 4918f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextLong(10)); 4919f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(12300, s.nextLong(10)); 4920f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4921f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123\u0966\u0966"); 4922f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.CHINESE); 4923f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextLong(10)); 4924f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(12300, s.nextLong(10)); 4925f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4926f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123\u0e50\u0e50"); 4927f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.CHINESE); 4928f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextLong(10)); 4929f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(12300, s.nextLong(10)); 4930f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4931f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("-123"); 4932f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(new Locale("ar", "AE")); 4933f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextLong(10)); 4934f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(-123, s.nextLong(10)); 4935f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4936f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4937f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("-123"); 4938f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(new Locale("mk", "MK")); 4939f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextLong(10)); 4940f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(-123, s.nextLong(10)); 4941f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 4942f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4943f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 4944f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws IOException 4945f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Scanner#hasNextLong(int) 4946f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 4947f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 4948f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.PARTIAL_COMPLETE, 4949f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "Regression test.", 4950f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "hasNextLong", 4951f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {int.class} 4952f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 4953f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_hasNextLongI_cache() throws IOException { 4954f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //regression for HARMONY-2063 4955f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123 456"); 4956f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextLong(16)); 4957f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(291, s.nextLong()); 4958f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(456, s.nextLong()); 4959f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4960f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123 456"); 4961f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextLong(16)); 4962f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextLong(8)); 4963f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(83, s.nextLong()); 4964f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(456, s.nextLong()); 4965f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4966f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("-123 -456 -789"); 4967f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextLong(8)); 4968f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(-123, s.nextInt()); 4969f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(-456, s.nextLong()); 4970f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextShort(16)); 4971f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(-789, s.nextLong()); 4972f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4973f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123 456"); 4974f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextLong()); 4975f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.close(); 4976f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 4977f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextLong(); 4978f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw IllegalStateException"); 4979f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalStateException e) { 4980f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 4981f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 4982f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 4983f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 4984f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 4985f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws IOException 4986f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Scanner#hasNextLong() 4987f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 4988f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 4989f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 4990f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 4991f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "hasNextLong", 4992f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {} 4993f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 4994f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_hasNextLong() throws IOException { 49958ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot Locale deLocale = new Locale("de", "CH"); 49968ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot Locale arLocale = new Locale("ar", "AE"); 49978ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot Locale mkLocale = new Locale("mk", "MK"); 49988ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot Locale[] requiredLocales = {Locale.GERMANY, Locale.ENGLISH, Locale.CHINESE, deLocale, 49998ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot arLocale, mkLocale}; 50008ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot if (!Support_Locale.areLocalesAvailable(requiredLocales)) { 50018ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot // locale dependent test, bug 1943269 50028ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot return; 50038ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot } 5004f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123 456"); 5005f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextLong()); 5006f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(123, s.nextLong()); 5007f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextLong()); 5008f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(456, s.nextLong()); 5009f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextLong()); 5010f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 5011f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextLong(); 5012f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw NoSuchElementException"); 5013f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NoSuchElementException e) { 5014f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 5015f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 5016f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5017f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If the radix is different from 10 5018f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123 456"); 5019f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useRadix(5); 5020f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextLong()); 5021f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(38, s.nextLong()); 5022f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextLong()); 5023f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 5024f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextLong(); 5025f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 5026f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 5027f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 5028f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 5029f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5030f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If the number is out of range 5031f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123456789123456789123456789123456789"); 5032f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextLong()); 5033f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 5034f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextLong(); 5035f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 5036f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 5037f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 5038f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 5039f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5040f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 5041f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Different locale can only recognize corresponding locale sensitive 5042f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * string. ',' is used in many locales as group separator. 5043f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 5044f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("23,456 23,456"); 5045f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.GERMANY); 5046f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextLong()); 5047f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 5048f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextLong(); 5049f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 5050f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 5051f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 5052f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 5053f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 5054f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If exception is thrown out, input will not be advanced. 5055f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextLong()); 5056f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(23456, s.nextLong()); 5057f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextLong()); 5058f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(23456, s.nextLong()); 5059f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5060f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 5061f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * ''' is used in many locales as group separator. 5062f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 5063f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("23'456 23'456"); 5064f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.GERMANY); 5065f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextLong()); 5066f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 5067f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextLong(); 5068f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 5069f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 5070f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 5071f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 50728ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot s.useLocale(deLocale); 5073f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If exception is thrown out, input will not be advanced. 5074f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextLong()); 5075f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(23456, s.nextLong()); 5076f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextLong()); 5077f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(23456, s.nextLong()); 5078f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5079f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 5080f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * The input string has Arabic-Indic digits. 5081f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 5082f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("1\u06602 1\u06662"); 5083f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(102, s.nextLong()); 5084f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useRadix(5); 5085f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextLong()); 5086f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 5087f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextLong(); 5088f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 5089f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 5090f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 5091f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 5092f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useRadix(10); 5093f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextLong()); 5094f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(162, s.nextLong()); 5095f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5096f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 5097f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * '.' is used in many locales as group separator. The input string 5098f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * has Arabic-Indic digits . 5099f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 5100f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("23.45\u0666 23.456"); 5101f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.CHINESE); 5102f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextLong()); 5103f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 5104f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextLong(); 5105f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 5106f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 5107f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 5108f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 5109f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.GERMANY); 5110f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If exception is thrown out, input will not be advanced. 5111f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextLong()); 5112f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(23456, s.nextLong()); 5113f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextLong()); 5114f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(23456, s.nextLong()); 5115f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5116f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // The input string starts with zero 5117f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("03,456"); 5118f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 5119f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextLong()); 5120f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 5121f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextLong(); 5122f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 5123f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 5124f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 5125f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 5126f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5127f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("03456"); 5128f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextLong()); 5129f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(3456, s.nextLong()); 5130f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5131f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("\u06603,456"); 5132f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 5133f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextLong()); 5134f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(3456, s.nextLong()); 5135f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5136f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("E34"); 5137f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useRadix(16); 5138f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextLong()); 5139f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(3636, s.nextLong()); 5140f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5141f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 5142f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * There are 3 types of zero digit in all locales, '0' '\u0966' '\u0e50' 5143f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * respectively, but they are not differentiated. 5144f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 5145f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("12300"); 5146f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.CHINESE); 5147f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextLong()); 5148f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(12300, s.nextLong()); 5149f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5150f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123\u0966\u0966"); 5151f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.CHINESE); 5152f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextLong()); 5153f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(12300, s.nextLong()); 5154f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5155f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123\u0e50\u0e50"); 5156f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.CHINESE); 5157f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextLong()); 5158f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(12300, s.nextLong()); 5159f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5160f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("-123"); 51618ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot s.useLocale(arLocale); 5162f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextLong()); 5163f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(-123, s.nextLong()); 5164f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5165f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("-123"); 51668ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot s.useLocale(mkLocale); 5167f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextLong()); 5168f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(-123, s.nextLong()); 5169f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5170f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.close(); 5171f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 5172f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.hasNextLong(); 5173f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("IllegalStateException expected"); 5174f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalStateException e) { 5175f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //expected 5176f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 5177f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 5178f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5179f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 5180f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws IOException 5181f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Scanner#nextDouble() 5182f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 5183f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 5184f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 5185f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 5186f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "hasNextDouble", 5187f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {} 5188f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 5189f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_hasNextDouble() throws IOException { 51908ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot Locale[] requiredLocales = {Locale.GERMANY, Locale.ENGLISH}; 51918ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot if (!Support_Locale.areLocalesAvailable(requiredLocales)) { 51928ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot // locale dependent test, bug 1943269 51938ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot return; 51948ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot } 5195f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123 45\u0666. 123.4 .123 "); 5196f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 5197f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextDouble()); 5198f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(123.0, s.nextDouble()); 5199f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextDouble()); 5200f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(456.0, s.nextDouble()); 5201f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextDouble()); 5202f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(123.4, s.nextDouble()); 5203f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextDouble()); 5204f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(0.123, s.nextDouble()); 5205f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextDouble()); 5206f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 5207f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextDouble(); 5208f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw NoSuchElementException"); 5209f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NoSuchElementException e) { 5210f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 5211f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 5212f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5213f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("+123.4 -456.7 123,456.789 0.1\u06623,4"); 5214f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 5215f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextDouble()); 5216f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(123.4, s.nextDouble()); 5217f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextDouble()); 5218f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(-456.7, s.nextDouble()); 5219f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextDouble()); 5220f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(123456.789, s.nextDouble()); 5221f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextDouble()); 5222f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 5223f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextDouble(); 5224f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 5225f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 5226f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 5227f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 5228f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5229f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Scientific notation 5230f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("+123.4E10 -456.7e+12 123,456.789E-10"); 5231f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 5232f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextDouble()); 5233f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(1.234E12, s.nextDouble()); 5234f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextDouble()); 5235f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(-4.567E14, s.nextDouble()); 5236f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextDouble()); 5237f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(1.23456789E-5, s.nextDouble()); 5238f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5239f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("NaN Infinity -Infinity"); 5240f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextDouble()); 5241f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(Double.NaN, s.nextDouble()); 5242f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextDouble()); 5243f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(Double.POSITIVE_INFINITY, s.nextDouble()); 5244f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextDouble()); 5245f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(Double.NEGATIVE_INFINITY, s.nextDouble()); 5246f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5247f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project String str=String.valueOf(Double.MAX_VALUE*2); 5248f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s=new Scanner(str); 5249f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextDouble()); 5250f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(Double.POSITIVE_INFINITY,s.nextDouble()); 5251f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5252f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 5253f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Different locale can only recognize corresponding locale sensitive 5254f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * string. ',' is used in many locales as group separator. 5255f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 5256f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("23,456 23,456"); 5257f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 5258f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextDouble()); 5259f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(23456.0, s.nextDouble()); 5260f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.GERMANY); 5261f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextDouble()); 5262f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(23.456, s.nextDouble()); 5263f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5264f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("23.456 23.456"); 5265f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 5266f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextDouble()); 5267f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(23.456, s.nextDouble()); 5268f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.GERMANY); 5269f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextDouble()); 5270f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(23456.0, s.nextDouble()); 5271f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5272f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("23,456.7 23.456,7"); 5273f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 5274f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextDouble()); 5275f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(23456.7, s.nextDouble()); 5276f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.GERMANY); 5277f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextDouble()); 5278f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(23456.7, s.nextDouble()); 5279f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5280f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("-123.4"); 5281f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 5282f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextDouble()); 5283f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(-123.4, s.nextDouble()); 5284f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5285f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("+123.4 -456.7"); 5286f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 5287f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextDouble()); 5288f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.close(); 5289f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try{ 5290f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextDouble(); 5291f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw IllegalStateException"); 5292f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project }catch(IllegalStateException e){ 5293f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //expected 5294f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 5295f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 5296f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5297f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 5298f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws IOException 5299f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Scanner#hasNextBigDecimal() 5300f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 5301f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 5302f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 5303f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 5304f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "hasNextBigDecimal", 5305f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {} 5306f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 5307f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_hasNextBigDecimal() throws IOException { 53088ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot Locale[] requiredLocales = {Locale.GERMANY, Locale.ENGLISH}; 53098ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot if (!Support_Locale.areLocalesAvailable(requiredLocales)) { 53108ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot // locale dependent test, bug 1943269 53118ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot return; 53128ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot } 5313f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123 45\u0666. 123.4 .123 "); 5314f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 5315f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextBigDecimal()); 5316f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigDecimal("123"), s.nextBigDecimal()); 5317f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextBigDecimal()); 5318f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigDecimal("456"), s.nextBigDecimal()); 5319f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextBigDecimal()); 5320f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigDecimal("123.4"), s.nextBigDecimal()); 5321f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextBigDecimal()); 5322f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigDecimal("0.123"), s.nextBigDecimal()); 5323f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextBigDecimal()); 5324f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 5325f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextBigDecimal(); 5326f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw NoSuchElementException"); 5327f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NoSuchElementException e) { 5328f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 5329f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 5330f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5331f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("+123.4 -456.7 123,456.789 0.1\u06623,4"); 5332f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 5333f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextBigDecimal()); 5334f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigDecimal("123.4"), s.nextBigDecimal()); 5335f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextBigDecimal()); 5336f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigDecimal("-456.7"), s.nextBigDecimal()); 5337f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextBigDecimal()); 5338f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigDecimal("123456.789"), s.nextBigDecimal()); 5339f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextBigDecimal()); 5340f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 5341f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextBigDecimal(); 5342f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 5343f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 5344f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 5345f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 5346f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5347f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Scientific notation 5348f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("+123.4E10 -456.7e+12 123,456.789E-10"); 5349f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 5350f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextBigDecimal()); 5351f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigDecimal("1.234E12"), s.nextBigDecimal()); 5352f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextBigDecimal()); 5353f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigDecimal("-4.567E14"), s.nextBigDecimal()); 5354f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextBigDecimal()); 5355f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigDecimal("1.23456789E-5"), s.nextBigDecimal()); 5356f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5357f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("NaN"); 5358f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(s.hasNextBigDecimal()); 5359f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 5360f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextBigDecimal(); 5361f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 5362f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 5363f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 5364f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 5365f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5366f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 5367f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Different locale can only recognize corresponding locale sensitive 5368f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * string. ',' is used in many locales as group separator. 5369f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 5370f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("23,456 23,456"); 5371f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 5372f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextBigDecimal()); 5373f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigDecimal("23456"), s.nextBigDecimal()); 5374f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.GERMANY); 5375f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextBigDecimal()); 5376f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigDecimal("23.456"), s.nextBigDecimal()); 5377f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5378f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("23.456 23.456"); 5379f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 5380f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextBigDecimal()); 5381f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigDecimal("23.456"), s.nextBigDecimal()); 5382f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.GERMANY); 5383f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextBigDecimal()); 5384f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigDecimal("23456"), s.nextBigDecimal()); 5385f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5386f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("23,456.7"); 5387f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 5388f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextBigDecimal()); 5389f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigDecimal("23456.7"), s.nextBigDecimal()); 5390f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5391f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("-123.4"); 5392f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 5393f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextBigDecimal()); 5394f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigDecimal("-123.4"), s.nextBigDecimal()); 5395f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5396f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.close(); 5397f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 5398f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.hasNextBigDecimal(); 5399f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("IllegalStateException expected"); 5400f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalStateException e) { 5401f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //expected 5402f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 5403f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 5404f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5405f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project private static class MockStringReader extends StringReader { 5406f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5407f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public MockStringReader(String param) { 5408f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project super(param); 5409f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 5410f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5411f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public int read(CharBuffer target) throws IOException { 5412f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project target.append('t'); 5413f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project target.append('e'); 5414f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project target.append('s'); 5415f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project target.append('t'); 5416f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project throw new IOException(); 5417f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 5418f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5419f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 5420f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5421f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project private static class MockStringReader2Read extends StringReader { 5422f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project private int timesRead = 1; 5423f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5424f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public MockStringReader2Read(String param) { 5425f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project super(param); 5426f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 5427f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5428f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public int read(CharBuffer target) throws IOException { 5429f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project if (timesRead == 1) { 5430f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project target.append('1'); 5431f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project target.append('2'); 5432f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project target.append('3'); 5433f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project timesRead++; 5434f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project return 3; 5435f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } else if (timesRead == 2) { 5436f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project target.append('t'); 5437f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project timesRead++; 5438f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project return 1; 5439f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } else { 5440f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project throw new IOException(); 5441f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 5442f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 5443f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5444f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 5445f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5446f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 5447f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Scanner#findWithinHorizon(Pattern, int) 5448f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 5449f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 5450f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 5451f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 5452f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "findWithinHorizon", 5453f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.util.regex.Pattern.class, int.class} 5454f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 5455f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @KnownFailure("findWithinHorizon method doesn't work properly") 5456f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_findWithinHorizon_LPatternI(){ 5457f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5458f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // This method searches through the input up to the specified search 5459f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // horizon(exclusive). 5460f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123test"); 5461f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project String result = s.findWithinHorizon(Pattern.compile("\\p{Lower}"), 5); 5462f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("t", result); 5463f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project MatchResult mresult = s.match(); 5464f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(3, mresult.start()); 5465f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(4, mresult.end()); 5466f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5467f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("12345test1234test next"); 5468f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 5469f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * If the pattern is found the scanner advances past the input that 5470f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * matched and returns the string that matched the pattern. 5471f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 5472f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.findWithinHorizon(Pattern.compile("\\p{Digit}+"), 2); 5473f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("12", result); 5474f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project mresult = s.match(); 5475f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(0, mresult.start()); 5476f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(2, mresult.end()); 5477f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Postion is now pointing at the bar. "12|345test1234test next" 5478f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5479f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.findWithinHorizon(Pattern.compile("\\p{Digit}+"), 6); 5480f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("345", result); 5481f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5482f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project mresult = s.match(); 5483f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(2, mresult.start()); 5484f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(5, mresult.end()); 5485f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Postion is now pointing at the bar. "12345|test1234test next" 5486f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5487f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If no such pattern is detected then the null is returned and the 5488f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // scanner's position remains unchanged. 5489f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.findWithinHorizon(Pattern.compile("\\p{Digit}+"), 3); 5490f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertNull(result); 5491f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5492f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 5493f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.match(); 5494f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw IllegalStateException"); 5495f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalStateException e) { 5496f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 5497f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 5498f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("345", mresult.group()); 5499f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(2, mresult.start()); 5500f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(5, mresult.end()); 5501f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Postion is now still pointing at the bar. "12345|test1234test next" 5502f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5503f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If horizon is 0, then the horizon is ignored and this method 5504f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // continues to search through the input looking for the specified 5505f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // pattern without bound. 5506f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.findWithinHorizon(Pattern.compile("\\p{Digit}+"), 0); 5507f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project mresult = s.match(); 5508f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(9, mresult.start()); 5509f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(13, mresult.end()); 5510f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Postion is now pointing at the bar. "12345test1234|test next" 5511f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5512f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("test", s.next()); 5513f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project mresult = s.match(); 5514f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(13, mresult.start()); 5515f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(17, mresult.end()); 5516f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5517f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("next", s.next()); 5518f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project mresult = s.match(); 5519f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(18, mresult.start()); 5520f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(22, mresult.end()); 5521f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5522f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 5523f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.findWithinHorizon((Pattern) null, -1); 5524f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw NullPointerException"); 5525f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NullPointerException e) { 5526f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 5527f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 5528f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5529f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 5530f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.findWithinHorizon(Pattern.compile("\\p{Digit}+"), -1); 5531f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw IllegalArgumentException"); 5532f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalArgumentException e) { 5533f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 5534f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 5535f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5536f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.close(); 5537f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 5538f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.findWithinHorizon((Pattern) null, -1); 5539f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw IllegalStateException"); 5540f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalStateException e) { 5541f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 5542f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 5543f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5544f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("test"); 5545f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.findWithinHorizon(Pattern.compile("\\w+"), 10); 5546f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("test", result); 5547f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5548f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("aa\n\rb"); 5549f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project String patternStr = "^(a)$"; 5550f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.findWithinHorizon(Pattern.compile("a"), 5); 5551f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("a", result); 5552f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project mresult = s.match(); 5553f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(0, mresult.start()); 5554f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(1, mresult.end()); 5555f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5556f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.findWithinHorizon(Pattern.compile(patternStr, 5557f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Pattern.MULTILINE), 5); 5558f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertNull(result); 5559f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5560f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 5561f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project mresult = s.match(); 5562f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw IllegalStateException"); 5563f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalStateException e) { 5564f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 5565f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 5566f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5567f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner(""); 5568f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.findWithinHorizon(Pattern.compile("^"), 0); 5569f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("", result); 5570f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project MatchResult matchResult = s.match(); 5571f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(0, matchResult.start()); 5572f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(0, matchResult.end()); 5573f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5574f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.findWithinHorizon(Pattern.compile("$"), 0); 5575f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("", result); 5576f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project matchResult = s.match(); 5577f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(0, matchResult.start()); 5578f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(0, matchResult.end()); 5579f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5580f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("1 fish 2 fish red fish blue fish"); 5581f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.findWithinHorizon(Pattern 5582f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project .compile("(\\d+) fish (\\d+) fish (\\w+) fish (\\w+)"), 10); 5583f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertNull(result); 5584f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5585f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 5586f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project mresult = s.match(); 5587f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw IllegalStateException"); 5588f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalStateException e) { 5589f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 5590f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 5591f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(0, mresult.groupCount()); 5592f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5593f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.findWithinHorizon(Pattern 5594f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project .compile("(\\d+) fish (\\d+) fish (\\w+) fish (\\w+)"), 100); 5595f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("1 fish 2 fish red fish blue", result); 5596f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project mresult = s.match(); 5597f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(4, mresult.groupCount()); 5598f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("1", mresult.group(1)); 5599f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("2", mresult.group(2)); 5600f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("red", mresult.group(3)); 5601f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("blue", mresult.group(4)); 5602f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5603f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("test"); 5604f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.close(); 5605f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 5606f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.findWithinHorizon(Pattern.compile("test"), 1); 5607f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw IllegalStateException"); 5608f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalStateException e) { 5609f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 5610f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 5611f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5612f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("word1 WorD2 "); 5613f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.close(); 5614f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 5615f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.findWithinHorizon(Pattern.compile("\\d+"), 10); 5616f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("should throw IllegalStateException"); 5617f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalStateException e) { 5618f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 5619f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 5620f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5621f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("word1 WorD2 wOrd3 "); 5622f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Pattern pattern = Pattern.compile("\\d+"); 5623f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("1", s.findWithinHorizon(pattern, 10)); 5624f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("WorD2", s.next()); 5625f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("3", s.findWithinHorizon(pattern, 15)); 5626f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5627f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Regression test 5628f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner(new MockStringReader("MockStringReader")); 5629f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project pattern = Pattern.compile("test"); 5630f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.findWithinHorizon(pattern, 10); 5631f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("test", result); 5632f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5633f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Test the situation when input length is longer than buffer size. 5634f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project StringBuilder stringBuilder = new StringBuilder(); 5635f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project for (int i = 0; i < 1026; i++) { 5636f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project stringBuilder.append('a'); 5637f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 5638f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner(stringBuilder.toString()); 5639f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project pattern = Pattern.compile("\\p{Lower}+"); 5640f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.findWithinHorizon(pattern, 1026); 5641f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(stringBuilder.toString(), result); 5642f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5643f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Test the situation when input length is longer than buffer size and 5644f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // set horizon to buffer size. 5645f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project stringBuilder = new StringBuilder(); 5646f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project for (int i = 0; i < 1026; i++) { 5647f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project stringBuilder.append('a'); 5648f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 5649f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner(stringBuilder.toString()); 5650f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project pattern = Pattern.compile("\\p{Lower}+"); 5651f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.findWithinHorizon(pattern, 1022); 5652f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(1022, result.length()); 5653f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(stringBuilder.subSequence(0, 1022), result); 5654f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5655f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Test the situation, under which pattern is clipped by buffer. 5656f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project stringBuilder = new StringBuilder(); 5657f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project for (int i = 0; i < 1022; i++) { 5658f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project stringBuilder.append(' '); 5659f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 5660f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project stringBuilder.append("bbc"); 5661f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(1025, stringBuilder.length()); 5662f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner(stringBuilder.toString()); 5663f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project pattern = Pattern.compile("bbc"); 5664f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.findWithinHorizon(pattern, 1025); 5665f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(3, result.length()); 5666f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(stringBuilder.subSequence(1022, 1025), result); 5667f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5668f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project stringBuilder = new StringBuilder(); 5669f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project for (int i = 0; i < 1026; i++) { 5670f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project stringBuilder.append('a'); 5671f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 5672f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner(stringBuilder.toString()); 5673f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project pattern = Pattern.compile("\\p{Lower}+"); 5674f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.findWithinHorizon(pattern, 0); 5675f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(stringBuilder.toString(), result); 5676f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5677f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project stringBuilder = new StringBuilder(); 5678f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project for (int i = 0; i < 10240; i++) { 5679f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project stringBuilder.append('-'); 5680f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 5681f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project stringBuilder.replace(0, 2, "aa"); 5682f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner(stringBuilder.toString()); 5683f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.findWithinHorizon(Pattern.compile("aa"), 0); 5684f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("aa", result); 5685f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5686f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("aaaa"); 5687f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.findWithinHorizon(Pattern.compile("a*"), 0); 5688f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("aaaa", result); 5689f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 5690f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5691f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 5692f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Scanner#findWithinHorizon(String, int) Copy of Pattern 5693f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * test for String 5694f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 5695f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 5696f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 5697f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 5698f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "findWithinHorizon", 5699f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.lang.String.class, int.class} 5700f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 5701f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_findWithinHorizon_Ljava_lang_StringI() { 5702f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5703f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // This method searches through the input up to the specified search 5704f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // horizon(exclusive). 5705f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123test"); 5706f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project String result = s.findWithinHorizon("\\p{Lower}", 5); 5707f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("t", result); 5708f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project MatchResult mresult = s.match(); 5709f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(3, mresult.start()); 5710f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(4, mresult.end()); 5711f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5712f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("12345test1234test next"); 5713f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 5714f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * If the pattern is found the scanner advances past the input that 5715f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * matched and returns the string that matched the pattern. 5716f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 5717f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.findWithinHorizon("\\p{Digit}+", 2); 5718f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("12", result); 5719f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project mresult = s.match(); 5720f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(0, mresult.start()); 5721f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(2, mresult.end()); 5722f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Postion is now pointing at the bar. "12|345test1234test next" 5723f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5724f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.findWithinHorizon("\\p{Digit}+", 6); 5725f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("345", result); 5726f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5727f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project mresult = s.match(); 5728f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(2, mresult.start()); 5729f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(5, mresult.end()); 5730f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Postion is now pointing at the bar. "12345|test1234test next" 5731f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5732f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If no such pattern is detected then the null is returned and the 5733f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // scanner's position remains unchanged. 5734f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.findWithinHorizon("\\p{Digit}+", 3); 5735f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertNull(result); 5736f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5737f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 5738f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.match(); 5739f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw IllegalStateException"); 5740f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalStateException e) { 5741f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 5742f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 5743f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("345", mresult.group()); 5744f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(2, mresult.start()); 5745f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(5, mresult.end()); 5746f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Postion is now still pointing at the bar. "12345|test1234test next" 5747f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5748f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If horizon is 0, then the horizon is ignored and this method 5749f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // continues to search through the input looking for the specified 5750f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // pattern without bound. 5751f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.findWithinHorizon("\\p{Digit}+", 0); 5752f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project mresult = s.match(); 5753f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(9, mresult.start()); 5754f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(13, mresult.end()); 5755f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Postion is now pointing at the bar. "12345test1234|test next" 5756f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5757f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("test", s.next()); 5758f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project mresult = s.match(); 5759f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(13, mresult.start()); 5760f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(17, mresult.end()); 5761f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5762f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("next", s.next()); 5763f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project mresult = s.match(); 5764f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(18, mresult.start()); 5765f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(22, mresult.end()); 5766f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5767f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 5768f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.findWithinHorizon((String)null, 1); 5769f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw NullPointerException"); 5770f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NullPointerException e) { 5771f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 5772f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 5773f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5774f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 5775f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.findWithinHorizon("\\p{Digit}+", -1); 5776f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw IllegalArgumentException"); 5777f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalArgumentException e) { 5778f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 5779f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 5780f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5781f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.close(); 5782f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // on RI throws NullPointerException 5783f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 5784f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * try { System.out.println("fsdfs"); s.findWithinHorizon((String) null, 5785f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * -1); System.out.println("fsdfs"); fail("Should throw 5786f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * IllegalStateException"); } catch (IllegalStateException e) { // 5787f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * expected } 5788f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 5789f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("test"); 5790f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.findWithinHorizon("\\w+", 10); 5791f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("test", result); 5792f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5793f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("aa\n\rb"); 5794f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project String patternStr = "^(a)$"; 5795f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.findWithinHorizon("a", 5); 5796f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("a", result); 5797f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project mresult = s.match(); 5798f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(0, mresult.start()); 5799f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(1, mresult.end()); 5800f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5801f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.findWithinHorizon(patternStr, 5); 5802f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertNull(result); 5803f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5804f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 5805f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project mresult = s.match(); 5806f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw IllegalStateException"); 5807f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalStateException e) { 5808f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 5809f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 5810f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5811f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner(""); 5812f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.findWithinHorizon("^", 0); 5813f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("", result); 5814f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project MatchResult matchResult = s.match(); 5815f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(0, matchResult.start()); 5816f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(0, matchResult.end()); 5817f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5818f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.findWithinHorizon("$", 0); 5819f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("", result); 5820f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project matchResult = s.match(); 5821f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(0, matchResult.start()); 5822f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(0, matchResult.end()); 5823f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5824f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("1 fish 2 fish red fish blue fish"); 5825f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.findWithinHorizon("(\\d+) fish (\\d+) fish (\\w+) fish (\\w+)", 10); 5826f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertNull(result); 5827f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5828f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 5829f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project mresult = s.match(); 5830f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw IllegalStateException"); 5831f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalStateException e) { 5832f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 5833f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 5834f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(0, mresult.groupCount()); 5835f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5836f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.findWithinHorizon("(\\d+) fish (\\d+) fish (\\w+) fish (\\w+)", 100); 5837f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("1 fish 2 fish red fish blue", result); 5838f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project mresult = s.match(); 5839f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(4, mresult.groupCount()); 5840f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("1", mresult.group(1)); 5841f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("2", mresult.group(2)); 5842f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("red", mresult.group(3)); 5843f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("blue", mresult.group(4)); 5844f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5845f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("test"); 5846f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.close(); 5847f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 5848f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.findWithinHorizon("test", 1); 5849f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw IllegalStateException"); 5850f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalStateException e) { 5851f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 5852f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 5853f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5854f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("word1 WorD2 "); 5855f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.close(); 5856f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 5857f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.findWithinHorizon("\\d+", 10); 5858f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("should throw IllegalStateException"); 5859f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalStateException e) { 5860f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 5861f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 5862f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5863f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("word1 WorD2 wOrd3 "); 5864f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project patternStr = "\\d+"; 5865f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("1", s.findWithinHorizon(patternStr, 10)); 5866f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("WorD2", s.next()); 5867f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("3", s.findWithinHorizon(patternStr, 15)); 5868f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5869f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Regression test 5870f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner(new MockStringReader("MockStringReader")); 5871f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project patternStr = "test"; 5872f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.findWithinHorizon(patternStr, 10); 5873f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("test", result); 5874f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5875f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Test the situation when input length is longer than buffer size. 5876f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project StringBuilder stringBuilder = new StringBuilder(); 5877f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project for (int i = 0; i < 1026; i++) { 5878f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project stringBuilder.append('a'); 5879f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 5880f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner(stringBuilder.toString()); 5881f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project patternStr = "\\p{Lower}+"; 5882f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.findWithinHorizon(patternStr, 1026); 5883f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(stringBuilder.toString(), result); 5884f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5885f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Test the situation when input length is longer than buffer size and 5886f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // set horizon to buffer size. 5887f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project stringBuilder = new StringBuilder(); 5888f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project for (int i = 0; i < 1026; i++) { 5889f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project stringBuilder.append('a'); 5890f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 5891f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner(stringBuilder.toString()); 5892f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project patternStr = "\\p{Lower}+"; 5893f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.findWithinHorizon(patternStr, 1022); 5894f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(1022, result.length()); 5895f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(stringBuilder.subSequence(0, 1022), result); 5896f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5897f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Test the situation, under which pattern is clipped by buffer. 5898f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project stringBuilder = new StringBuilder(); 5899f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project for (int i = 0; i < 1022; i++) { 5900f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project stringBuilder.append(' '); 5901f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 5902f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project stringBuilder.append("bbc"); 5903f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(1025, stringBuilder.length()); 5904f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner(stringBuilder.toString()); 5905f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project patternStr = "bbc"; 5906f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.findWithinHorizon(patternStr, 1025); 5907f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(3, result.length()); 5908f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(stringBuilder.subSequence(1022, 1025), result); 5909f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5910f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project stringBuilder = new StringBuilder(); 5911f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project for (int i = 0; i < 1026; i++) { 5912f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project stringBuilder.append('a'); 5913f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 5914f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner(stringBuilder.toString()); 5915f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project patternStr = "\\p{Lower}+"; 5916f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.findWithinHorizon(patternStr, 0); 5917f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(stringBuilder.toString(), result); 5918f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5919f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project stringBuilder = new StringBuilder(); 5920f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project for (int i = 0; i < 10240; i++) { 5921f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project stringBuilder.append('-'); 5922f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 5923f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project stringBuilder.replace(0, 2, "aa"); 5924f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner(stringBuilder.toString()); 5925f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.findWithinHorizon("aa", 0); 5926f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("aa", result); 5927f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5928f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("aaaa"); 5929f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.findWithinHorizon("a*", 0); 5930f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("aaaa", result); 5931f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 5932f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5933f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 5934f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Scanner#findInLine(Pattern) 5935f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 5936f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 5937f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 5938f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 5939f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "findInLine", 5940f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.util.regex.Pattern.class} 5941f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 5942f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_findInLine_LPattern() { 5943f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5944f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Scanner s = new Scanner(""); 5945f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 5946f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.findInLine((Pattern) null); 5947f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw NullPointerException"); 5948f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NullPointerException e) { 5949f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 5950f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 5951f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project String result = s.findInLine(Pattern.compile("^")); 5952f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("", result); 5953f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project MatchResult matchResult = s.match(); 5954f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(0, matchResult.start()); 5955f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(0, matchResult.end()); 5956f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5957f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.findInLine(Pattern.compile("$")); 5958f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("", result); 5959f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project matchResult = s.match(); 5960f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(0, matchResult.start()); 5961f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(0, matchResult.end()); 5962f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5963f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 5964f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * When we use the operation of findInLine(Pattern), the match region 5965f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * should not span the line separator. 5966f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 5967f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("aa\nb.b"); 5968f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.findInLine(Pattern.compile("a\nb*")); 5969f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertNull(result); 5970f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5971f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("aa\nbb.b"); 5972f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.findInLine(Pattern.compile("\\.")); 5973f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertNull(result); 5974f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5975f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("abcd1234test\n"); 5976f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.findInLine(Pattern.compile("\\p{Lower}+")); 5977f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("abcd", result); 5978f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project matchResult = s.match(); 5979f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(0, matchResult.start()); 5980f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(4, matchResult.end()); 5981f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5982f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.findInLine(Pattern.compile("\\p{Digit}{5}")); 5983f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertNull(result); 5984f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 5985f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project matchResult = s.match(); 5986f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw IllegalStateException"); 5987f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalStateException e) { 5988f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 5989f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 5990f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(0, matchResult.start()); 5991f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(4, matchResult.end()); 5992f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5993f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.findInLine(Pattern.compile("\\p{Lower}+")); 5994f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("test", result); 5995f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project matchResult = s.match(); 5996f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(8, matchResult.start()); 5997f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(12, matchResult.end()); 5998f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 5999f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project char[] chars = new char[2048]; 6000f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Arrays.fill(chars, 'a'); 6001f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project StringBuilder stringBuilder = new StringBuilder(); 6002f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project stringBuilder.append(chars); 6003f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project stringBuilder.append("1234"); 6004f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner(stringBuilder.toString()); 6005f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.findInLine(Pattern.compile("\\p{Digit}+")); 6006f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("1234", result); 6007f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project matchResult = s.match(); 6008f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(2048, matchResult.start()); 6009f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(2052, matchResult.end()); 6010f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6011f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("test"); 6012f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.close(); 6013f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 6014f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.findInLine((Pattern) null); 6015f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw IllegalStateException"); 6016f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalStateException e) { 6017f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 6018f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 6019f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6020f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("test1234\n1234 test"); 6021f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.findInLine(Pattern.compile("test")); 6022f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("test", result); 6023f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project matchResult = s.match(); 6024f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(0, matchResult.start()); 6025f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(4, matchResult.end()); 6026f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6027f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project int number = s.nextInt(); 6028f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(1234, number); 6029f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project matchResult = s.match(); 6030f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(4, matchResult.start()); 6031f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(8, matchResult.end()); 6032f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6033f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.next(); 6034f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("1234", result); 6035f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project matchResult = s.match(); 6036f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(9, matchResult.start()); 6037f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(13, matchResult.end()); 6038f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6039f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.findInLine(Pattern.compile("test")); 6040f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("test", result); 6041f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project matchResult = s.match(); 6042f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(14, matchResult.start()); 6043f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(18, matchResult.end()); 6044f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6045f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("test\u0085\ntest"); 6046f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.findInLine("est"); 6047f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("est", result); 6048f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.findInLine("est"); 6049f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("est", result); 6050f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6051f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("test\ntest"); 6052f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.findInLine("est"); 6053f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("est", result); 6054f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.findInLine("est"); 6055f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("est", result); 6056f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6057f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("test\n123\ntest"); 6058f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.findInLine("est"); 6059f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("est", result); 6060f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.findInLine("est"); 6061f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // RI fails. It is a RI's bug. 6062f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project if (!disableRIBugs) { 6063f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertNull(result); 6064f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 6065f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 6066f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6067f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 6068f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Scanner#findInLine(String) 6069f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 6070f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 6071f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 6072f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 6073f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "findInLine", 6074f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.lang.String.class} 6075f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 6076f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_findInLine_LString() { 6077f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("test"); 6078f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 6079f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.findInLine((String) null); 6080f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw NullPointerException"); 6081f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NullPointerException e) { 6082f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 6083f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 6084f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6085f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.close(); 6086f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 6087f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.findInLine((String) null); 6088f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw NullPointerException"); 6089f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NullPointerException e) { 6090f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 6091f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 6092f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 6093f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.findInLine("test"); 6094f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw IllegalStateException"); 6095f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalStateException e) { 6096f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // exptected 6097f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 6098f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6099f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner(""); 6100f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6101f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project String result = s.findInLine("^"); 6102f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("", result); 6103f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project MatchResult matchResult = s.match(); 6104f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(0, matchResult.start()); 6105f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(0, matchResult.end()); 6106f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6107f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.findInLine("$"); 6108f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("", result); 6109f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project matchResult = s.match(); 6110f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(0, matchResult.start()); 6111f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(0, matchResult.end()); 6112f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6113f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 6114f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * When we use the operation of findInLine(Pattern), the match region 6115f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * should not span the line separator. 6116f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 6117f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("aa\nb.b"); 6118f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.findInLine("a\nb*"); 6119f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertNull(result); 6120f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6121f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("aa\nbb.b"); 6122f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.findInLine("\\."); 6123f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertNull(result); 6124f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6125f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("abcd1234test\n"); 6126f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.findInLine("\\p{Lower}+"); 6127f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("abcd", result); 6128f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project matchResult = s.match(); 6129f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(0, matchResult.start()); 6130f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(4, matchResult.end()); 6131f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6132f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.findInLine("\\p{Digit}{5}"); 6133f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertNull(result); 6134f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 6135f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project matchResult = s.match(); 6136f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw IllegalStateException"); 6137f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalStateException e) { 6138f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 6139f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 6140f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(0, matchResult.start()); 6141f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(4, matchResult.end()); 6142f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6143f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.findInLine("\\p{Lower}+"); 6144f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("test", result); 6145f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project matchResult = s.match(); 6146f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(8, matchResult.start()); 6147f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(12, matchResult.end()); 6148f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6149f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project char[] chars = new char[2048]; 6150f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Arrays.fill(chars, 'a'); 6151f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project StringBuilder stringBuilder = new StringBuilder(); 6152f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project stringBuilder.append(chars); 6153f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project stringBuilder.append("1234"); 6154f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner(stringBuilder.toString()); 6155f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.findInLine("\\p{Digit}+"); 6156f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("1234", result); 6157f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project matchResult = s.match(); 6158f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(2048, matchResult.start()); 6159f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(2052, matchResult.end()); 6160f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6161f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("test1234\n1234 test"); 6162f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.findInLine("test"); 6163f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("test", result); 6164f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project matchResult = s.match(); 6165f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(0, matchResult.start()); 6166f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(4, matchResult.end()); 6167f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6168f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project int number = s.nextInt(); 6169f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(1234, number); 6170f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project matchResult = s.match(); 6171f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(4, matchResult.start()); 6172f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(8, matchResult.end()); 6173f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6174f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.next(); 6175f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("1234", result); 6176f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project matchResult = s.match(); 6177f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(9, matchResult.start()); 6178f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(13, matchResult.end()); 6179f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6180f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.findInLine("test"); 6181f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("test", result); 6182f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project matchResult = s.match(); 6183f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(14, matchResult.start()); 6184f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(18, matchResult.end()); 6185f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6186f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("test\u0085\ntest"); 6187f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.findInLine("est"); 6188f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("est", result); 6189f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.findInLine("est"); 6190f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("est", result); 6191f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6192f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("test\ntest"); 6193f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.findInLine("est"); 6194f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("est", result); 6195f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.findInLine("est"); 6196f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("est", result); 6197f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6198f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("test\n123\ntest"); 6199f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.findInLine("est"); 6200f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("est", result); 6201f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.findInLine("est"); 6202f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // RI fails. It is a RI's bug. 6203f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project if (!disableRIBugs) { 6204f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertNull(result); 6205f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 6206f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6207f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6208f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 6209f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6210f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 6211f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Scanner#skip(Pattern) 6212f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 6213f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 6214f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 6215f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 6216f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "skip", 6217f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.util.regex.Pattern.class} 6218f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 6219f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_skip_LPattern() { 6220f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("test"); 6221f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 6222f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.skip((String) null); 6223f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw NullPointerException"); 6224f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NullPointerException e) { 6225f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 6226f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 6227f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6228f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If pattern does not match, NoSuchElementException will be thrown out. 6229f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("1234"); 6230f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 6231f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.skip(Pattern.compile("\\p{Lower}")); 6232f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw NoSuchElementException"); 6233f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NoSuchElementException e) { 6234f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 6235f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 6236f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Then, no matchResult will be thrown out. 6237f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 6238f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.match(); 6239f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw IllegalStateException"); 6240f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalStateException e) { 6241f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 6242f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 6243f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6244f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.skip(Pattern.compile("\\p{Digit}")); 6245f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project MatchResult matchResult = s.match(); 6246f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(0, matchResult.start()); 6247f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(1, matchResult.end()); 6248f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6249f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.skip(Pattern.compile("\\p{Digit}+")); 6250f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project matchResult = s.match(); 6251f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(1, matchResult.start()); 6252f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(4, matchResult.end()); 6253f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6254f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.close(); 6255f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 6256f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.skip(Pattern.compile("test")); 6257f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw IllegalStateException"); 6258f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalStateException e) { 6259f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 6260f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 6261f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6262f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project MockStringReader2Read reader = new MockStringReader2Read("test"); 6263f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner(reader); 6264f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 6265f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.skip(Pattern.compile("\\p{Digit}{4}")); 6266f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw NoSuchElementException"); 6267f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NoSuchElementException e) { 6268f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 6269f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 6270f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 6271f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.match(); 6272f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw IllegalStateException"); 6273f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalStateException e) { 6274f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 6275f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 6276f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.skip(Pattern.compile("\\p{Digit}{3}\\p{Lower}")); 6277f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project matchResult = s.match(); 6278f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(0, matchResult.start()); 6279f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(4, matchResult.end()); 6280f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6281f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.close(); 6282f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 6283f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.skip((Pattern) null); 6284f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw IllegalStateException"); 6285f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalStateException e) { 6286f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 6287f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 6288f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6289f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project StringBuilder stringBuilder = new StringBuilder(); 6290f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project char [] chars = new char[1024]; 6291f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Arrays.fill(chars, 'a'); 6292f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project stringBuilder.append(chars); 6293f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project stringBuilder.append('3'); 6294f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner(stringBuilder.toString()); 6295f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.skip(Pattern.compile("\\p{Lower}+\\p{Digit}")); 6296f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project matchResult = s.match(); 6297f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(0, matchResult.start()); 6298f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(1025, matchResult.end()); 6299f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6300f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Large amount of input may be cached 6301f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project chars = new char[102400]; 6302f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Arrays.fill(chars, 'a'); 6303f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project stringBuilder = new StringBuilder(); 6304f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project stringBuilder.append(chars); 6305f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner(stringBuilder.toString()); 6306f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.skip(Pattern.compile(".*")); 6307f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project matchResult = s.match(); 6308f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(0, matchResult.start()); 6309f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(102400, matchResult.end()); 6310f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6311f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // skip something without risking a NoSuchElementException 6312f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.skip(Pattern.compile("[ \t]*")); 6313f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project matchResult = s.match(); 6314f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(102400, matchResult.start()); 6315f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(102400, matchResult.end()); 6316f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 6317f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6318f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 6319f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Scanner#skip(String) 6320f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 6321f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 6322f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 6323f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 6324f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "skip", 6325f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.lang.String.class} 6326f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 6327f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_skip_LString() { 6328f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("test"); 6329f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 6330f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.skip((String) null); 6331f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw NullPointerException"); 6332f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NullPointerException e) { 6333f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 6334f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 6335f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6336f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If pattern does not match, NoSuchElementException will be thrown out. 6337f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("1234"); 6338f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 6339f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.skip("\\p{Lower}"); 6340f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw NoSuchElementException"); 6341f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NoSuchElementException e) { 6342f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 6343f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 6344f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Then, no matchResult will be thrown out. 6345f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 6346f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.match(); 6347f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw IllegalStateException"); 6348f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalStateException e) { 6349f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 6350f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 6351f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6352f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.skip("\\p{Digit}"); 6353f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project MatchResult matchResult = s.match(); 6354f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(0, matchResult.start()); 6355f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(1, matchResult.end()); 6356f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6357f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.skip("\\p{Digit}+"); 6358f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project matchResult = s.match(); 6359f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(1, matchResult.start()); 6360f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(4, matchResult.end()); 6361f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6362f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.close(); 6363f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 6364f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.skip("test"); 6365f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw IllegalStateException"); 6366f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalStateException e) { 6367f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 6368f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 6369f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6370f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project MockStringReader2Read reader = new MockStringReader2Read("test"); 6371f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner(reader); 6372f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 6373f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.skip("\\p{Digit}{4}"); 6374f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw NoSuchElementException"); 6375f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NoSuchElementException e) { 6376f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 6377f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 6378f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 6379f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.match(); 6380f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw IllegalStateException"); 6381f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalStateException e) { 6382f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 6383f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 6384f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.skip("\\p{Digit}{3}\\p{Lower}"); 6385f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project matchResult = s.match(); 6386f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(0, matchResult.start()); 6387f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(4, matchResult.end()); 6388f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6389f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.close(); 6390f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 6391f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.skip(""); 6392f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw IllegalStateException"); 6393f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalStateException e) { 6394f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 6395f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 6396f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6397f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project StringBuilder stringBuilder = new StringBuilder(); 6398f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project char [] chars = new char[1024]; 6399f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Arrays.fill(chars, 'a'); 6400f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project stringBuilder.append(chars); 6401f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project stringBuilder.append('3'); 6402f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner(stringBuilder.toString()); 6403f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.skip("\\p{Lower}+\\p{Digit}"); 6404f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project matchResult = s.match(); 6405f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(0, matchResult.start()); 6406f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(1025, matchResult.end()); 6407f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6408f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Large amount of input may be cached 6409f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project chars = new char[102400]; 6410f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Arrays.fill(chars, 'a'); 6411f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project stringBuilder = new StringBuilder(); 6412f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project stringBuilder.append(chars); 6413f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner(stringBuilder.toString()); 6414f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.skip(".*"); 6415f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project matchResult = s.match(); 6416f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(0, matchResult.start()); 6417f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(102400, matchResult.end()); 6418f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6419f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // skip something without risking a NoSuchElementException 6420f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.skip("[ \t]*"); 6421f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project matchResult = s.match(); 6422f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(102400, matchResult.start()); 6423f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(102400, matchResult.end()); 6424f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6425f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("test"); 6426f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 6427f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.skip((String) null); 6428f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw NullPointerException"); 6429f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NullPointerException e) { 6430f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 6431f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 6432f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 6433f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6434f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 6435f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws IOException 6436f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Scanner#nextDouble() 6437f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 6438f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 6439f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 6440f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 6441f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "nextDouble", 6442f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {} 6443f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 6444f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_nextDouble() throws IOException { 64458ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot Locale[] requiredLocales = {Locale.GERMANY, Locale.ENGLISH}; 64468ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot if (!Support_Locale.areLocalesAvailable(requiredLocales)) { 64478ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot // locale dependent test, bug 1943269 64488ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot return; 64498ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot } 6450f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123 45\u0666. 123.4 .123 "); 6451f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 6452f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(123.0, s.nextDouble()); 6453f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(456.0, s.nextDouble()); 6454f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(123.4, s.nextDouble()); 6455f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(0.123, s.nextDouble()); 6456f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 6457f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextDouble(); 6458f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw NoSuchElementException"); 6459f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NoSuchElementException e) { 6460f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 6461f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 6462f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6463f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("+123.4 -456.7 123,456.789 0.1\u06623,4"); 6464f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 6465f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(123.4, s.nextDouble()); 6466f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(-456.7, s.nextDouble()); 6467f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(123456.789, s.nextDouble()); 6468f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 6469f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextDouble(); 6470f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 6471f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 6472f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 6473f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 6474f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6475f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Scientific notation 6476f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("+123.4E10 -456.7e+12 123,456.789E-10"); 6477f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 6478f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(1.234E12, s.nextDouble()); 6479f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(-4.567E14, s.nextDouble()); 6480f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(1.23456789E-5, s.nextDouble()); 6481f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6482f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("NaN Infinity -Infinity"); 6483f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(Double.NaN, s.nextDouble()); 6484f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(Double.POSITIVE_INFINITY, s.nextDouble()); 6485f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(Double.NEGATIVE_INFINITY, s.nextDouble()); 6486f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6487f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //The following test case fails on RI 6488f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s=new Scanner("\u221e"); 6489f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 6490f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// assertEquals(Double.POSITIVE_INFINITY, s.nextDouble()); 6491f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6492f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project String str=String.valueOf(Double.MAX_VALUE*2); 6493f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s=new Scanner(str); 6494f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(Double.POSITIVE_INFINITY,s.nextDouble()); 6495f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6496f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 6497f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Different locale can only recognize corresponding locale sensitive 6498f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * string. ',' is used in many locales as group separator. 6499f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 6500f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("23,456 23,456"); 6501f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 6502f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(23456.0, s.nextDouble()); 6503f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.GERMANY); 6504f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(23.456, s.nextDouble()); 6505f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6506f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("23.456 23.456"); 6507f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 6508f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(23.456, s.nextDouble()); 6509f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.GERMANY); 6510f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(23456.0, s.nextDouble()); 6511f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6512f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("23,456.7 23.456,7"); 6513f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 6514f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(23456.7, s.nextDouble()); 6515f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.GERMANY); 6516f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(23456.7, s.nextDouble()); 6517f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6518f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("-123.4"); 6519f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 6520f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(-123.4, s.nextDouble()); 6521f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6522f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.close(); 6523f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 6524f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextDouble(); 6525f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("IllegalStateException expected"); 6526f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalStateException e) { 6527f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //expected 6528f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 6529f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 6530f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6531f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 6532f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws IOException 6533f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Scanner#nextBigDecimal() 6534f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 6535f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 6536f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 6537f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 6538f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "nextBigDecimal", 6539f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {} 6540f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 6541f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_nextBigDecimal() throws IOException { 65428ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot Locale[] requiredLocales = {Locale.ENGLISH, Locale.GERMANY}; 65438ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot if (!Support_Locale.areLocalesAvailable(requiredLocales)) { 65448ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot // locale dependent test, bug 1943269 65458ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot return; 65468ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot } 6547f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123 45\u0666. 123.4 .123 "); 6548f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 6549f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigDecimal("123"), s.nextBigDecimal()); 6550f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigDecimal("456"), s.nextBigDecimal()); 6551f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigDecimal("123.4"), s.nextBigDecimal()); 6552f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigDecimal("0.123"), s.nextBigDecimal()); 6553f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 6554f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextBigDecimal(); 6555f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw NoSuchElementException"); 6556f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NoSuchElementException e) { 6557f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 6558f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 6559f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6560f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("+123.4 -456.7 123,456.789 0.1\u06623,4"); 6561f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 6562f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigDecimal("123.4"), s.nextBigDecimal()); 6563f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigDecimal("-456.7"), s.nextBigDecimal()); 6564f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigDecimal("123456.789"), s.nextBigDecimal()); 6565f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 6566f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextBigDecimal(); 6567f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 6568f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 6569f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 6570f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 6571f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6572f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Scientific notation 6573f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("+123.4E10 -456.7e+12 123,456.789E-10"); 6574f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 6575f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigDecimal("1.234E12"), s.nextBigDecimal()); 6576f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigDecimal("-4.567E14"), s.nextBigDecimal()); 6577f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigDecimal("1.23456789E-5"), s.nextBigDecimal()); 6578f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6579f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("NaN"); 6580f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 6581f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextBigDecimal(); 6582f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw InputMismatchException"); 6583f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InputMismatchException e) { 6584f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 6585f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 6586f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6587f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 6588f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Different locale can only recognize corresponding locale sensitive 6589f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * string. ',' is used in many locales as group separator. 6590f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 6591f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("23,456 23,456"); 6592f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 6593f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigDecimal("23456"), s.nextBigDecimal()); 6594f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.GERMANY); 6595f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigDecimal("23.456"), s.nextBigDecimal()); 6596f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6597f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("23.456 23.456"); 6598f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 6599f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigDecimal("23.456"), s.nextBigDecimal()); 6600f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.GERMANY); 6601f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigDecimal("23456"), s.nextBigDecimal()); 6602f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6603f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("23,456.7"); 6604f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 6605f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigDecimal("23456.7"), s.nextBigDecimal()); 6606f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6607f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("-123.4"); 6608f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.useLocale(Locale.ENGLISH); 6609f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(new BigDecimal("-123.4"), s.nextBigDecimal()); 6610f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6611f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.close(); 6612f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 6613f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextBigDecimal(); 6614f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("IllegalStateException expected"); 6615f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalStateException e) { 6616f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //expected 6617f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 6618f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 6619f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6620f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 6621f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Scanner#toString() 6622f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 6623f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 6624f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 6625f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 6626f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "toString", 6627f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {} 6628f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 6629f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_toString() { 6630f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("test"); 6631f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertNotNull(s.toString()); 6632f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 6633f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6634f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 6635f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Scanner#nextLine() 6636f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 6637f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 6638f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 6639f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 6640f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "nextLine", 6641f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {} 6642f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 6643f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_nextLine() { 6644f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner(""); 6645f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.close(); 6646f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 6647f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextLine(); 6648f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw IllegalStateException"); 6649f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalStateException e) { 6650f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 6651f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 6652f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6653f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("test\r\ntest"); 6654f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project String result = s.nextLine(); 6655f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("test", result); 6656f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project MatchResult matchResult = s.match(); 6657f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(0, matchResult.start()); 6658f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(6, matchResult.end()); 6659f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6660f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("\u0085"); 6661f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.nextLine(); 6662f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("", result); 6663f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project matchResult = s.match(); 6664f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(0, matchResult.start()); 6665f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(1, matchResult.end()); 6666f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6667f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("\u2028"); 6668f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.nextLine(); 6669f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("", result); 6670f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project matchResult = s.match(); 6671f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(0, matchResult.start()); 6672f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(1, matchResult.end()); 6673f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6674f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("\u2029"); 6675f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.nextLine(); 6676f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("", result); 6677f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project matchResult = s.match(); 6678f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(0, matchResult.start()); 6679f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(1, matchResult.end()); 6680f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6681f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner(""); 6682f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 6683f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.nextLine(); 6684f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw NoSuchElementException"); 6685f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NoSuchElementException e) { 6686f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 6687f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 6688f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 6689f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.match(); 6690f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw IllegalStateException"); 6691f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalStateException e) { 6692f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 6693f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 6694f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6695f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("Ttest"); 6696f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.nextLine(); 6697f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("Ttest", result); 6698f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project matchResult = s.match(); 6699f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(0, matchResult.start()); 6700f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(5, matchResult.end()); 6701f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6702f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("\r\n"); 6703f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.nextLine(); 6704f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("", result); 6705f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project matchResult = s.match(); 6706f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(0, matchResult.start()); 6707f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(2, matchResult.end()); 6708f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6709f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project char[] chars = new char[1024]; 6710f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Arrays.fill(chars, 'a'); 6711f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project StringBuilder stringBuilder = new StringBuilder(); 6712f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project stringBuilder.append(chars); 6713f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project chars = new char[] { '+', '-' }; 6714f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project stringBuilder.append(chars); 6715f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project stringBuilder.append("\u2028"); 6716f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner(stringBuilder.toString()); 6717f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.nextLine(); 6718f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6719f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(stringBuilder.toString().substring(0, 1026), result); 6720f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project matchResult = s.match(); 6721f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(0, matchResult.start()); 6722f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(1027, matchResult.end()); 6723f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6724f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project chars = new char[1023]; 6725f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Arrays.fill(chars, 'a'); 6726f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project stringBuilder = new StringBuilder(); 6727f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project stringBuilder.append(chars); 6728f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project stringBuilder.append("\r\n"); 6729f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner(stringBuilder.toString()); 6730f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.nextLine(); 6731f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6732f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(stringBuilder.toString().substring(0, 1023), result); 6733f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project matchResult = s.match(); 6734f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(0, matchResult.start()); 6735f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(1025, matchResult.end()); 6736f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6737f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner(" "); 6738f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.nextLine(); 6739f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(" ", result); 6740f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6741f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("test\n\n\n"); 6742f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.nextLine(); 6743f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("test", result); 6744f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project matchResult = s.match(); 6745f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(0, matchResult.start()); 6746f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(5, matchResult.end()); 6747f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.nextLine(); 6748f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project matchResult = s.match(); 6749f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(5, matchResult.start()); 6750f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(6, matchResult.end()); 6751f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6752f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("\n\n\n"); 6753f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.nextLine(); 6754f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("", result); 6755f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project matchResult = s.match(); 6756f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(0, matchResult.start()); 6757f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(1, matchResult.end()); 6758f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.nextLine(); 6759f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project matchResult = s.match(); 6760f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(1, matchResult.start()); 6761f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(2, matchResult.end()); 6762f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6763f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("123 test\n "); 6764f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project int value = s.nextInt(); 6765f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(123, value); 6766f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6767f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.nextLine(); 6768f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(" test", result); 6769f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6770f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("test\n "); 6771f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.nextLine(); 6772f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("test", result); 6773f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 6774f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6775f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 6776f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Scanner#hasNextLine() 6777f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 6778f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 6779f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 6780f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 6781f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "hasNextLine", 6782f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {} 6783f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 6784f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_hasNextLine() { 6785f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6786f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner(""); 6787f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.close(); 6788f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 6789f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.hasNextLine(); 6790f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Should throw IllegalStateException"); 6791f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalStateException e) { 6792f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 6793f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 6794f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6795f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("test\r\ntest"); 6796f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project boolean result = s.hasNextLine(); 6797f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(result); 6798f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project MatchResult matchResult = s.match(); 6799f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(0, matchResult.start()); 6800f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(6, matchResult.end()); 6801f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6802f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("\u0085"); 6803f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.hasNextLine(); 6804f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(result); 6805f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project matchResult = s.match(); 6806f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(0, matchResult.start()); 6807f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(1, matchResult.end()); 6808f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6809f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("\u2028"); 6810f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.hasNextLine(); 6811f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(result); 6812f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project matchResult = s.match(); 6813f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(0, matchResult.start()); 6814f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(1, matchResult.end()); 6815f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6816f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("\u2029"); 6817f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.hasNextLine(); 6818f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(result); 6819f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project matchResult = s.match(); 6820f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(0, matchResult.start()); 6821f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(1, matchResult.end()); 6822f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6823f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("test\n"); 6824f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextLine()); 6825f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project matchResult = s.match(); 6826f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(0, matchResult.start()); 6827f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(5, matchResult.end()); 6828f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6829f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project char[] chars = new char[2048]; 6830f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Arrays.fill(chars, 'a'); 6831f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project StringBuilder stringBuilder = new StringBuilder(); 6832f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project stringBuilder.append(chars); 6833f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner(stringBuilder.toString()); 6834f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project result = s.hasNextLine(); 6835f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(result); 6836f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6837f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project matchResult = s.match(); 6838f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(0, matchResult.start()); 6839f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(2048, matchResult.end()); 6840f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6841f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s = new Scanner("\n\n\n"); 6842f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextLine()); 6843f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project matchResult = s.match(); 6844f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(0, matchResult.start()); 6845f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(1, matchResult.end()); 6846f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6847f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // The scanner will not advance any input. 6848f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(s.hasNextLine()); 6849f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project matchResult = s.match(); 6850f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(0, matchResult.start()); 6851f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(1, matchResult.end()); 6852f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 6853f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6854f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project protected void setUp() throws Exception { 6855f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project super.setUp(); 6856f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6857f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project server = new ServerSocket(0); 6858f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project address = new InetSocketAddress("127.0.0.1", server.getLocalPort()); 6859f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6860f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project client = SocketChannel.open(); 6861f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project client.connect(address); 6862f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project serverSocket = server.accept(); 6863f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6864f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project os = serverSocket.getOutputStream(); 6865f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 6866f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6867f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project protected void tearDown() throws Exception { 6868f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project super.tearDown(); 6869f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6870f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 6871f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project serverSocket.close(); 6872f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception e) { 6873f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6874f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 6875f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 6876f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project client.close(); 6877f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception e) { 6878f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // do nothing 6879f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 6880f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 6881f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project server.close(); 6882f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception e) { 6883f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // do nothing 6884f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 6885f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 6886f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6887f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 6888f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Scanner#Scanner(ReadableByteChannel) 6889f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 6890f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 6891f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 6892f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 6893f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "Scanner", 6894f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.nio.channels.ReadableByteChannel.class} 6895f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 6896f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_Constructor_LReadableByteChannel() 6897f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project throws IOException { 6898f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project InetSocketAddress localAddr = new InetSocketAddress("127.0.0.1", 6899f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Support_PortManager.getNextPort()); 6900f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ServerSocketChannel ssc = ServerSocketChannel.open(); 6901f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ssc.socket().bind(localAddr); 6902f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6903f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project SocketChannel sc = SocketChannel.open(); 6904f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project sc.connect(localAddr); 6905f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project sc.configureBlocking(false); 6906f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(sc.isBlocking()); 6907f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6908f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ssc.accept().close(); 6909f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ssc.close(); 6910f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(sc.isBlocking()); 6911f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6912f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Scanner s = new Scanner(sc); 6913f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project while (s.hasNextInt()) { 6914f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project s.nextInt(); 6915f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 6916f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6917f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project sc.close(); 6918f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 6919f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project} 6920