ByteLiteralTest.java revision 57b5423285167163893078ea08830c15d8313a93
1/* 2 * [The "BSD licence"] 3 * Copyright (c) 2009 Ben Gruver 4 * All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions 8 * are met: 9 * 1. Redistributions of source code must retain the above copyright 10 * notice, this list of conditions and the following disclaimer. 11 * 2. Redistributions in binary form must reproduce the above copyright 12 * notice, this list of conditions and the following disclaimer in the 13 * documentation and/or other materials provided with the distribution. 14 * 3. The name of the author may not be used to endorse or promote products 15 * derived from this software without specific prior written permission. 16 * 17 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 18 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 19 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 20 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 21 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 22 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 23 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 24 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 */ 28 29import org.junit.*; 30import org.jf.smali.literalTools; 31 32public class ByteLiteralTest 33{ 34 35 @Test 36 public void SuccessHexTests() { 37 38 Assert.assertTrue(literalTools.parseByte("0x0T") == 0x0); 39 Assert.assertTrue(literalTools.parseByte("0x00") == 0x0); 40 Assert.assertTrue(literalTools.parseByte("0x1T") == 0x1); 41 Assert.assertTrue(literalTools.parseByte("0x12") == 0x12); 42 Assert.assertTrue(literalTools.parseByte("0x7fT") == 0x7f); 43 Assert.assertTrue(literalTools.parseByte("0x80t") == Byte.MIN_VALUE); 44 Assert.assertTrue(literalTools.parseByte("0xFFt") == -1); 45 46 Assert.assertTrue(literalTools.parseByte("-0x00") == 0); 47 Assert.assertTrue(literalTools.parseByte("-0x01") == -1); 48 Assert.assertTrue(literalTools.parseByte("-0x12") == -0x12); 49 Assert.assertTrue(literalTools.parseByte("-0x80") == Byte.MIN_VALUE); 50 } 51 52 @Test(expected=NumberFormatException.class) 53 public void FaileHexTest1() { 54 literalTools.parseByte("-0x81"); 55 } 56 57 @Test(expected=NumberFormatException.class) 58 public void FailHexTest2() { 59 literalTools.parseByte("-0xFF"); 60 } 61 62 @Test(expected=NumberFormatException.class) 63 public void FailHexTest3() { 64 literalTools.parseByte("0x100"); 65 } 66 67 68 69 @Test 70 public void SuccessDecTests() { 71 Assert.assertTrue(literalTools.parseByte("0") == 0); 72 Assert.assertTrue(literalTools.parseByte("1t") == 1); 73 Assert.assertTrue(literalTools.parseByte("123") == 123); 74 Assert.assertTrue(literalTools.parseByte("127T") == 127); 75 Assert.assertTrue(literalTools.parseByte("128") == Byte.MIN_VALUE); 76 Assert.assertTrue(literalTools.parseByte("255") == -1); 77 78 79 Assert.assertTrue(literalTools.parseByte("-0") == 0); 80 Assert.assertTrue(literalTools.parseByte("-1") == -1); 81 Assert.assertTrue(literalTools.parseByte("-123") == -123); 82 Assert.assertTrue(literalTools.parseByte("-127") == -127); 83 Assert.assertTrue(literalTools.parseByte("-128") == Byte.MIN_VALUE); 84 } 85 86 @Test(expected=NumberFormatException.class) 87 public void FaileDecTest1() { 88 literalTools.parseByte("-129"); 89 } 90 91 @Test(expected=NumberFormatException.class) 92 public void FailDecTest2() { 93 literalTools.parseByte("-255"); 94 } 95 96 @Test(expected=NumberFormatException.class) 97 public void FailDecTest3() { 98 literalTools.parseByte("256"); 99 } 100 101 @Test(expected=NumberFormatException.class) 102 public void FailDecTest4() { 103 literalTools.parseByte("260"); 104 } 105 106 107 @Test 108 public void SuccessOctTests() { 109 Assert.assertTrue(literalTools.parseByte("00") == 00); 110 Assert.assertTrue(literalTools.parseByte("01") == 01); 111 Assert.assertTrue(literalTools.parseByte("0123t") == 0123); 112 Assert.assertTrue(literalTools.parseByte("0177") == Byte.MAX_VALUE); 113 Assert.assertTrue(literalTools.parseByte("0200T") == Byte.MIN_VALUE); 114 Assert.assertTrue(literalTools.parseByte("0377") == -1); 115 116 117 Assert.assertTrue(literalTools.parseByte("-00") == 0); 118 Assert.assertTrue(literalTools.parseByte("-01") == -1); 119 Assert.assertTrue(literalTools.parseByte("-0123") == -0123); 120 Assert.assertTrue(literalTools.parseByte("-0177") == -0177); 121 Assert.assertTrue(literalTools.parseByte("-0200") == Byte.MIN_VALUE); 122 } 123 124 @Test(expected=NumberFormatException.class) 125 public void FaileOctTest1() { 126 literalTools.parseByte("-0201"); 127 } 128 129 @Test(expected=NumberFormatException.class) 130 public void FailOctTest2() { 131 literalTools.parseByte("-0377"); 132 } 133 134 @Test(expected=NumberFormatException.class) 135 public void FailOctTest3() { 136 literalTools.parseByte("0400"); 137 } 138} 139