Refactor string conversions

This commit is contained in:
James Roseborough
2010-04-25 15:50:40 +00:00
parent 10450a0427
commit 79b0294207
41 changed files with 267 additions and 239 deletions

View File

@@ -167,18 +167,18 @@ public class MetatableTest extends TestCase {
// plain metatable
mt.set( LuaValue.INDEX, new TwoArgFunction() {
public LuaValue call(LuaValue arg1, LuaValue arg2) {
return LuaValue.valueOf( arg1.typename()+"["+arg2.toString()+"]=xyz" );
return LuaValue.valueOf( arg1.typename()+"["+arg2.tojstring()+"]=xyz" );
}
});
assertEquals( "table[1]=xyz", table.get(1).toString() );
assertEquals( "userdata[1]=xyz", userdata.get(1).toString() );
assertEquals( "nil[1]=xyz", LuaValue.NIL.get(1).toString() );
assertEquals( "boolean[1]=xyz", LuaValue.TRUE.get(1).toString() );
assertEquals( "number[1]=xyz", LuaValue.ONE.get(1).toString() );
// assertEquals( "string[1]=xyz", string.get(1).toString() );
assertEquals( "function[1]=xyz", function.get(1).toString() );
assertEquals( "thread[1]=xyz", thread.get(1).toString() );
assertEquals( "table[1]=xyz", table.get(1).tojstring() );
assertEquals( "userdata[1]=xyz", userdata.get(1).tojstring() );
assertEquals( "nil[1]=xyz", LuaValue.NIL.get(1).tojstring() );
assertEquals( "boolean[1]=xyz", LuaValue.TRUE.get(1).tojstring() );
assertEquals( "number[1]=xyz", LuaValue.ONE.get(1).tojstring() );
// assertEquals( "string[1]=xyz", string.get(1).tojstring() );
assertEquals( "function[1]=xyz", function.get(1).tojstring() );
assertEquals( "thread[1]=xyz", thread.get(1).tojstring() );
}

View File

@@ -53,7 +53,7 @@ public class TableArrayTest extends TestCase {
// Ensure all keys are still there.
for ( int i = 1; i <= 32; ++i ) {
assertEquals( "Test Value! " + i, t.get( i ).toString() );
assertEquals( "Test Value! " + i, t.get( i ).tojstring() );
}
// Ensure capacities make sense
@@ -92,7 +92,7 @@ public class TableArrayTest extends TestCase {
// Ensure all keys are still there.
for ( int i = 1; i <= 32; ++i ) {
assertEquals( "Test Value! "+i, t.get( i ).toString() );
assertEquals( "Test Value! "+i, t.get( i ).tojstring() );
}
// Ensure capacities make sense
@@ -134,8 +134,8 @@ public class TableArrayTest extends TestCase {
assertTrue( ( intKeys & mask ) == 0 );
intKeys |= mask;
} else if ( k instanceof LuaString ) {
final int ik = Integer.parseInt( k.toString() );
assertEquals( String.valueOf( ik ), k.toString() );
final int ik = Integer.parseInt( k.tojstring() );
assertEquals( String.valueOf( ik ), k.tojstring() );
assertTrue( ik >= 0 && ik < 10 );
final int mask = 1 << ik;
assertTrue( "Key \""+ik+"\" found more than once", ( stringKeys & mask ) == 0 );
@@ -267,8 +267,8 @@ public class TableArrayTest extends TestCase {
assertEquals(v.size(),t.length());
for ( int j=0; j<n; j++ ) {
Object vj = v.elementAt(j);
Object tj = t.get(j+1).toString();
vj = ((LuaString)vj).toString();
Object tj = t.get(j+1).tojstring();
vj = ((LuaString)vj).tojstring();
assertEquals(vj,tj);
}
}

View File

@@ -107,48 +107,48 @@ public class TableHashTest extends TestCase {
fb.set( 456, "jkl" );
// check before setting metatable
assertEquals( "abc", t.get("ppp").toString() );
assertEquals( "def", t.get(123).toString() );
assertEquals( "nil", t.get("qqq").toString() );
assertEquals( "nil", t.get(456).toString() );
assertEquals( "nil", fb.get("ppp").toString() );
assertEquals( "nil", fb.get(123).toString() );
assertEquals( "ghi", fb.get("qqq").toString() );
assertEquals( "jkl", fb.get(456).toString() );
assertEquals( "nil", mt.get("ppp").toString() );
assertEquals( "nil", mt.get(123).toString() );
assertEquals( "nil", mt.get("qqq").toString() );
assertEquals( "nil", mt.get(456).toString() );
assertEquals( "abc", t.get("ppp").tojstring() );
assertEquals( "def", t.get(123).tojstring() );
assertEquals( "nil", t.get("qqq").tojstring() );
assertEquals( "nil", t.get(456).tojstring() );
assertEquals( "nil", fb.get("ppp").tojstring() );
assertEquals( "nil", fb.get(123).tojstring() );
assertEquals( "ghi", fb.get("qqq").tojstring() );
assertEquals( "jkl", fb.get(456).tojstring() );
assertEquals( "nil", mt.get("ppp").tojstring() );
assertEquals( "nil", mt.get(123).tojstring() );
assertEquals( "nil", mt.get("qqq").tojstring() );
assertEquals( "nil", mt.get(456).tojstring() );
// check before setting metatable
t.setmetatable(mt);
assertEquals( mt, t.getmetatable() );
assertEquals( "abc", t.get("ppp").toString() );
assertEquals( "def", t.get(123).toString() );
assertEquals( "ghi", t.get("qqq").toString() );
assertEquals( "jkl", t.get(456).toString() );
assertEquals( "nil", fb.get("ppp").toString() );
assertEquals( "nil", fb.get(123).toString() );
assertEquals( "ghi", fb.get("qqq").toString() );
assertEquals( "jkl", fb.get(456).toString() );
assertEquals( "nil", mt.get("ppp").toString() );
assertEquals( "nil", mt.get(123).toString() );
assertEquals( "nil", mt.get("qqq").toString() );
assertEquals( "nil", mt.get(456).toString() );
assertEquals( "abc", t.get("ppp").tojstring() );
assertEquals( "def", t.get(123).tojstring() );
assertEquals( "ghi", t.get("qqq").tojstring() );
assertEquals( "jkl", t.get(456).tojstring() );
assertEquals( "nil", fb.get("ppp").tojstring() );
assertEquals( "nil", fb.get(123).tojstring() );
assertEquals( "ghi", fb.get("qqq").tojstring() );
assertEquals( "jkl", fb.get(456).tojstring() );
assertEquals( "nil", mt.get("ppp").tojstring() );
assertEquals( "nil", mt.get(123).tojstring() );
assertEquals( "nil", mt.get("qqq").tojstring() );
assertEquals( "nil", mt.get(456).tojstring() );
// set metatable to metatable without values
t.setmetatable(fb);
assertEquals( "abc", t.get("ppp").toString() );
assertEquals( "def", t.get(123).toString() );
assertEquals( "nil", t.get("qqq").toString() );
assertEquals( "nil", t.get(456).toString() );
assertEquals( "abc", t.get("ppp").tojstring() );
assertEquals( "def", t.get(123).tojstring() );
assertEquals( "nil", t.get("qqq").tojstring() );
assertEquals( "nil", t.get(456).tojstring() );
// set metatable to null
t.setmetatable(null);
assertEquals( "abc", t.get("ppp").toString() );
assertEquals( "def", t.get(123).toString() );
assertEquals( "nil", t.get("qqq").toString() );
assertEquals( "nil", t.get(456).toString() );
assertEquals( "abc", t.get("ppp").tojstring() );
assertEquals( "def", t.get(123).tojstring() );
assertEquals( "nil", t.get("qqq").tojstring() );
assertEquals( "nil", t.get(456).tojstring() );
}
public void testIndexFunction() {
@@ -168,42 +168,42 @@ public class TableHashTest extends TestCase {
mt.set(LuaValue.INDEX, fb);
// check before setting metatable
assertEquals( "abc", t.get("ppp").toString() );
assertEquals( "def", t.get(123).toString() );
assertEquals( "nil", t.get("qqq").toString() );
assertEquals( "nil", t.get(456).toString() );
assertEquals( "abc", t.get("ppp").tojstring() );
assertEquals( "def", t.get(123).tojstring() );
assertEquals( "nil", t.get("qqq").tojstring() );
assertEquals( "nil", t.get(456).tojstring() );
// check before setting metatable
t.setmetatable(mt);
assertEquals( mt, t.getmetatable() );
assertEquals( "abc", t.get("ppp").toString() );
assertEquals( "def", t.get(123).toString() );
assertEquals( "from mt: qqq", t.get("qqq").toString() );
assertEquals( "from mt: 456", t.get(456).toString() );
assertEquals( "abc", t.get("ppp").tojstring() );
assertEquals( "def", t.get(123).tojstring() );
assertEquals( "from mt: qqq", t.get("qqq").tojstring() );
assertEquals( "from mt: 456", t.get(456).tojstring() );
// use raw set
t.rawset("qqq", "alt-qqq");
t.rawset(456, "alt-456");
assertEquals( "abc", t.get("ppp").toString() );
assertEquals( "def", t.get(123).toString() );
assertEquals( "alt-qqq", t.get("qqq").toString() );
assertEquals( "alt-456", t.get(456).toString() );
assertEquals( "abc", t.get("ppp").tojstring() );
assertEquals( "def", t.get(123).tojstring() );
assertEquals( "alt-qqq", t.get("qqq").tojstring() );
assertEquals( "alt-456", t.get(456).tojstring() );
// remove using raw set
t.rawset("qqq", LuaValue.NIL);
t.rawset(456, LuaValue.NIL);
assertEquals( "abc", t.get("ppp").toString() );
assertEquals( "def", t.get(123).toString() );
assertEquals( "from mt: qqq", t.get("qqq").toString() );
assertEquals( "from mt: 456", t.get(456).toString() );
assertEquals( "abc", t.get("ppp").tojstring() );
assertEquals( "def", t.get(123).tojstring() );
assertEquals( "from mt: qqq", t.get("qqq").tojstring() );
assertEquals( "from mt: 456", t.get(456).tojstring() );
// set metatable to null
t.setmetatable(null);
assertEquals( "abc", t.get("ppp").toString() );
assertEquals( "def", t.get(123).toString() );
assertEquals( "nil", t.get("qqq").toString() );
assertEquals( "nil", t.get(456).toString() );
assertEquals( "abc", t.get("ppp").tojstring() );
assertEquals( "def", t.get(123).tojstring() );
assertEquals( "nil", t.get("qqq").tojstring() );
assertEquals( "nil", t.get(456).tojstring() );
}
public void testNext() {

View File

@@ -44,7 +44,7 @@ public class TableTest extends TestCase {
// Ensure all keys are still there.
for ( int i = 1; i <= 32; ++i ) {
assertEquals( "Test Value! " + i, t.get( i ).toString() );
assertEquals( "Test Value! " + i, t.get( i ).tojstring() );
}
// Ensure capacities make sense
@@ -83,7 +83,7 @@ public class TableTest extends TestCase {
// Ensure all keys are still there.
for ( int i = 1; i <= 32; ++i ) {
assertEquals( "Test Value! "+i, t.get( i ).toString() );
assertEquals( "Test Value! "+i, t.get( i ).tojstring() );
}
// Ensure capacities make sense
@@ -125,8 +125,8 @@ public class TableTest extends TestCase {
assertTrue( ( intKeys & mask ) == 0 );
intKeys |= mask;
} else if ( k instanceof LuaString ) {
final int ik = Integer.parseInt( k.strvalue().toString() );
assertEquals( String.valueOf( ik ), k.strvalue().toString() );
final int ik = Integer.parseInt( k.strvalue().tojstring() );
assertEquals( String.valueOf( ik ), k.strvalue().tojstring() );
assertTrue( ik >= 0 && ik < 10 );
final int mask = 1 << ik;
assertTrue( "Key \""+ik+"\" found more than once", ( stringKeys & mask ) == 0 );
@@ -252,8 +252,8 @@ public class TableTest extends TestCase {
assertEquals(v.size(),t.length());
for ( int j=0; j<n; j++ ) {
Object vj = v.elementAt(j);
Object tj = t.get(j+1).toString();
vj = ((LuaString)vj).toString();
Object tj = t.get(j+1).tojstring();
vj = ((LuaString)vj).tojstring();
assertEquals(vj,tj);
}
}

View File

@@ -495,23 +495,23 @@ public class TypeTest extends TestCase {
}
public void testToString() {
assertEquals( "nil", somenil.toString() );
assertEquals( "false", somefalse.toString() );
assertEquals( "true", sometrue.toString() );
assertEquals( "0", zero.toString() );
assertEquals( String.valueOf(sampleint), intint.toString() );
assertEquals( String.valueOf(samplelong), longdouble.toString() );
assertEquals( String.valueOf(sampledouble), doubledouble.toString() );
assertEquals( samplestringstring, stringstring.toString() );
assertEquals( String.valueOf(sampleint), stringint.toString() );
assertEquals( String.valueOf(samplelong), stringlong.toString() );
assertEquals( String.valueOf(sampledouble), stringdouble.toString() );
assertEquals( "thread: ", thread.toString().substring(0,8) );
assertEquals( "table: ", table.toString().substring(0,7) );
assertEquals( sampleobject.toString(), userdataobj.toString() );
assertEquals( sampledata.toString(), userdatacls.toString() );
assertEquals( "function: ", somefunc.toString().substring(0,10) );
assertEquals( "function: ", someclosure.toString().substring(0,10) );
assertEquals( "nil", somenil.tojstring() );
assertEquals( "false", somefalse.tojstring() );
assertEquals( "true", sometrue.tojstring() );
assertEquals( "0", zero.tojstring() );
assertEquals( String.valueOf(sampleint), intint.tojstring() );
assertEquals( String.valueOf(samplelong), longdouble.tojstring() );
assertEquals( String.valueOf(sampledouble), doubledouble.tojstring() );
assertEquals( samplestringstring, stringstring.tojstring() );
assertEquals( String.valueOf(sampleint), stringint.tojstring() );
assertEquals( String.valueOf(samplelong), stringlong.tojstring() );
assertEquals( String.valueOf(sampledouble), stringdouble.tojstring() );
assertEquals( "thread: ", thread.tojstring().substring(0,8) );
assertEquals( "table: ", table.tojstring().substring(0,7) );
assertEquals( sampleobject.toString(), userdataobj.tojstring() );
assertEquals( sampledata.toString(), userdatacls.tojstring() );
assertEquals( "function: ", somefunc.tojstring().substring(0,10) );
assertEquals( "function: ", someclosure.tojstring().substring(0,10) );
}
public void testToUserdata() {
@@ -763,20 +763,20 @@ public class TypeTest extends TestCase {
}
public void testOptJavaString() {
assertEquals( "xyz", somenil.optString("xyz") );
assertEquals( null, somenil.optString(null) );
assertEquals( "xyz", somenil.optjstring("xyz") );
assertEquals( null, somenil.optjstring(null) );
throwsError( sometrue, "optString", String.class, "xyz" );
throwsError( somefalse, "optString", String.class, "xyz" );
assertEquals( String.valueOf(zero), zero.optString("xyz") );
assertEquals( String.valueOf(intint), intint.optString("xyz") );
assertEquals( String.valueOf(longdouble), longdouble.optString("xyz") );
assertEquals( String.valueOf(doubledouble), doubledouble.optString("xyz") );
assertEquals( String.valueOf(zero), zero.optjstring("xyz") );
assertEquals( String.valueOf(intint), intint.optjstring("xyz") );
assertEquals( String.valueOf(longdouble), longdouble.optjstring("xyz") );
assertEquals( String.valueOf(doubledouble), doubledouble.optjstring("xyz") );
throwsError( somefunc, "optString", String.class, "xyz" );
throwsError( someclosure, "optString", String.class, "xyz" );
assertEquals( samplestringstring, stringstring.optString("xyz") );
assertEquals( samplestringint, stringint.optString("xyz") );
assertEquals( samplestringlong, stringlong.optString("xyz") );
assertEquals( samplestringdouble, stringdouble.optString("xyz") );
assertEquals( samplestringstring, stringstring.optjstring("xyz") );
assertEquals( samplestringint, stringint.optjstring("xyz") );
assertEquals( samplestringlong, stringlong.optjstring("xyz") );
assertEquals( samplestringdouble, stringdouble.optjstring("xyz") );
throwsError( thread, "optString", String.class, "xyz" );
throwsError( table, "optString", String.class, "xyz" );
throwsError( userdataobj, "optString", String.class, "xyz" );
@@ -1119,16 +1119,16 @@ public class TypeTest extends TestCase {
throwsErrorReq( somenil, "checkString" );
throwsErrorReq( sometrue, "checkString" );
throwsErrorReq( somefalse, "checkString" );
assertEquals( String.valueOf(zero), zero.checkString() );
assertEquals( String.valueOf(intint), intint.checkString() );
assertEquals( String.valueOf(longdouble), longdouble.checkString() );
assertEquals( String.valueOf(doubledouble), doubledouble.checkString() );
assertEquals( String.valueOf(zero), zero.checkjstring() );
assertEquals( String.valueOf(intint), intint.checkjstring() );
assertEquals( String.valueOf(longdouble), longdouble.checkjstring() );
assertEquals( String.valueOf(doubledouble), doubledouble.checkjstring() );
throwsErrorReq( somefunc, "checkString" );
throwsErrorReq( someclosure, "checkString" );
assertEquals( samplestringstring, stringstring.checkString() );
assertEquals( samplestringint, stringint.checkString() );
assertEquals( samplestringlong, stringlong.checkString() );
assertEquals( samplestringdouble, stringdouble.checkString() );
assertEquals( samplestringstring, stringstring.checkjstring() );
assertEquals( samplestringint, stringint.checkjstring() );
assertEquals( samplestringlong, stringlong.checkjstring() );
assertEquals( samplestringdouble, stringdouble.checkjstring() );
throwsErrorReq( thread, "checkString" );
throwsErrorReq( table, "checkString" );
throwsErrorReq( userdataobj, "checkString" );

View File

@@ -89,7 +89,7 @@ public class DumpLoadEndianIntTest extends TestCase {
// double check script result before dumping
LuaClosure f = new LuaClosure(p, _G);
LuaValue r = f.call();
String actual = r.toString();
String actual = r.tojstring();
assertEquals( expectedPriorDump, actual );
// dump into bytes
@@ -111,7 +111,7 @@ public class DumpLoadEndianIntTest extends TestCase {
p = LoadState.compile(is, "dumped");
f = new LuaClosure(p, _G);
r = f.call();
actual = r.toString();
actual = r.tojstring();
assertEquals( expectedPostDump, actual );
// write test chunk

View File

@@ -48,7 +48,7 @@ public class LuaJavaCoercionTest extends TestCase {
String s = new String("777");
LuaValue v = CoerceJavaToLua.coerce(s);
assertEquals( LuaString.class, v.getClass() );
assertEquals( "777", v.toString() );
assertEquals( "777", v.tojstring() );
}
public void testLuaStringToJavaString() {
@@ -162,22 +162,22 @@ public class LuaJavaCoercionTest extends TestCase {
// get sample field, call with no arguments
LuaValue method = v.get(SAMPLE);
LuaValue result = method.call(v);
assertEquals( "void-args", result.toString() );
assertEquals( "void-args", result.tojstring() );
// get sample field, call with one arguments
LuaValue arg = CoerceJavaToLua.coerce(new Integer(123));
result = method.call(v,arg);
assertEquals( "int-args 123", result.toString() );
assertEquals( "int-args 123", result.tojstring() );
// get sample field, call with array argument
arg = CoerceJavaToLua.coerce(new int[]{345,678});
result = method.call(v,arg);
assertEquals( "int-array-args 345,678", result.toString() );
assertEquals( "int-array-args 345,678", result.tojstring() );
// get sample field, call with two-d array argument
arg = CoerceJavaToLua.coerce(new int[][]{{22,33},{44,55}});
result = method.call(v,arg);
assertEquals( "int-array-array-args 22,33,44,55", result.toString() );
assertEquals( "int-array-array-args 22,33,44,55", result.tojstring() );
}
public static final class SomeException extends RuntimeException {
@@ -198,7 +198,7 @@ public class LuaJavaCoercionTest extends TestCase {
LuaValue status = vresult.arg1();
LuaValue message = vresult.arg(2);
assertEquals( LuaValue.FALSE, status );
assertEquals( "vm error: "+SomeException.class.getName()+": this is some message", message.toString() );
assertEquals( "vm error: "+SomeException.class.getName()+": this is some message", message.tojstring() );
}
public void testLuaErrorCause() {
@@ -234,7 +234,7 @@ public class LuaJavaCoercionTest extends TestCase {
"} )\n";
Varargs chunk = _G.get("loadstring").call(LuaValue.valueOf(script));
if ( ! chunk.arg1().toboolean() )
fail( chunk.arg(2).toString() );
fail( chunk.arg(2).tojstring() );
LuaValue result = chunk.arg1().call();
Object u = result.touserdata();
VarArgsInterface v = (VarArgsInterface) u;

View File

@@ -96,7 +96,7 @@ public class Luajvm1CompatibilityTest extends TestCase {
LuaThread.getRunning().setfenv(_G);
_G.get("package").get("loaders").checktable().insert(1, new org.luaj.vm2.lib.OneArgFunction(_G) {
public LuaValue call(LuaValue arg) {
String name = arg.toString();
String name = arg.tojstring();
String file = name + ".lua";
InputStream is = open( file );
if ( is == null )