package elw.dp.mips.asm;
import junit.framework.TestCase;
public class DataTest extends TestCase {
public void testIsValidInt() {
assertTrue(Data.isNum("0", 32));
assertTrue(Data.isNum("0x0", 32));
assertTrue(Data.isNum("0b", 32));
assertTrue(Data.isNum("0h", 32));
assertTrue(Data.isNum("0o", 32));
assertTrue(Data.isNum("9", 32));
assertTrue(Data.isNum("9h", 32));
assertTrue(Data.isNum("0x9", 32));
assertTrue(Data.isNum("7o", 32));
assertTrue(Data.isNum("1o", 32));
assertTrue(Data.isNum("1b", 32));
assertTrue(Data.isNum("-0", 32));
assertTrue(Data.isNum("-0x0", 32));
assertTrue(Data.isNum("-0b", 32));
assertTrue(Data.isNum("-0h", 32));
assertTrue(Data.isNum("-0o", 32));
assertTrue(Data.isNum("-9", 32));
assertTrue(Data.isNum("-9h", 32));
assertTrue(Data.isNum("-0x9", 32));
assertTrue(Data.isNum("-7o", 32));
assertTrue(Data.isNum("-1o", 32));
assertTrue(Data.isNum("-1b", 32));
assertFalse(Data.isNum("-F", 32));
assertFalse(Data.isNum("-0xG", 32));
assertFalse(Data.isNum("-2b", 32));
assertFalse(Data.isNum("-Gh", 32));
assertFalse(Data.isNum("-8o", 32));
assertFalse(Data.isNum("-9-", 32));
assertFalse(Data.isNum("9-h", 32));
assertFalse(Data.isNum("-00x9", 32));
assertFalse(Data.isNum("-8o", 32));
assertFalse(Data.isNum("-8o", 32));
assertFalse(Data.isNum("-2b", 32));
assertFalse(Data.isNum(null, 32));
assertFalse(Data.isNum("-", 32));
assertFalse(Data.isNum("", 32));
assertFalse(Data.isNum("--", 32));
assertFalse(Data.isNum("0x", 32));
assertFalse(Data.isNum("h", 32));
assertFalse(Data.isNum("b", 32));
assertFalse(Data.isNum("o", 32));
}
public void testParseInt() {
assertEquals(0, Data.parse("-0"));
assertEquals(0, Data.parse("-0x0"));
assertEquals(0, Data.parse("-0b"));
assertEquals(0, Data.parse("-0h"));
assertEquals(0, Data.parse("-0o"));
assertEquals(-9, Data.parse("-9"));
assertEquals(-9, Data.parse("-9h"));
assertEquals(-9, Data.parse("-0x9"));
assertEquals(-7, Data.parse("-7o"));
assertEquals(-1, Data.parse("-1o"));
assertEquals(-1, Data.parse("-1b"));
assertEquals(-10, Data.parse("-10"));
assertEquals(-16, Data.parse("-0x10"));
assertEquals(-2, Data.parse("-10b"));
assertEquals(-16, Data.parse("-10h"));
assertEquals(-8, Data.parse("-10o"));
assertEquals(-19, Data.parse("-19"));
assertEquals(-25, Data.parse("-19h"));
assertEquals(-25, Data.parse("-0x19"));
assertEquals(-15, Data.parse("-17o"));
assertEquals(-9, Data.parse("-11o"));
assertEquals(-3, Data.parse("-11b"));
}
public void testMsb() {
assertEquals(0, Data.width(0));
assertEquals(1, Data.width(1));
assertEquals(2, Data.width(2));
assertEquals(2, Data.width(3));
assertEquals(3, Data.width(4));
assertEquals(4, Data.width(12));
assertEquals(5, Data.width(25));
assertEquals(10, Data.width(1023));
assertEquals(11, Data.width(1025));
assertEquals(11, Data.width(1025));
assertEquals(26, Data.width((1 << 25) + (1 << 23) + (1 << 12) + (1 << 3 + 1)));
}
}