.
*/
/** ***********************************************************
*
*
* PURPOSE: class for testing special MArrays
*
*
* COMMENTS:
* - adapt to general testbed structure
*
*********************************************************** */
import java.io.*;
import java.net.*;
import rasj.clientcommhttp.*;
import rasj.odmg.*;
import org.odmg.*;
import rasj.*;
import java.util.*;
/**
* class for testing special MArrays
* for testing please enable test data output in toString method of RASGMArray
* @version $$
*/
public class TestMArray
{
/**
* constants used in this test
**/
// prefixes for test output
static final String PREFIX_PROGRAM = "+++ +++ +++ ";
static final String PREFIX_TESTSET = "+++ +++ ";
static final String PREFIX_TESTCASE = "+++ ";
static final String DEFAULT_HOST = "localhost";
static final String DEFAULT_BASE = "RASBASE";
static final String DEFAULT_COLL = "test";
/**
* std error tag printed if a test fails
**/
static final String ERROR_TAG = "ERROR: ";
/**
* main program for testing
* on error, an exception is thrown (java main() knows no exit status)
**/
public static void main(String[] args)
{
String serv = DEFAULT_HOST;
String base = DEFAULT_BASE;
String coll = DEFAULT_COLL;
boolean wrongUsage = false; // error in cmd line params?
for (int i=args.length-1; i>=0; i--)
{
if (args[i].equals("--server"))
serv = args[i+1];
else if (args[i].equals("--database"))
base = args[i+1];
else if (args[i].equals("--collname"))
coll = args[i+1];
else
wrongUsage = true;
}
if (wrongUsage)
{
System.out.println( "Usage: TestMArray [--server s] [--database d] [--collname c]" );
System.out.println( "defaults: s=" + DEFAULT_HOST + ", d=" + DEFAULT_BASE + ", c=" + DEFAULT_COLL );
return;
}
System.out.println( "rasdaman system test v5.1revC: testing class MArray." );
System.out.println( PREFIX_PROGRAM + "system test started, using server" + serv + ", database " + base + ", collection" + coll );
// -- START test cases -------------------------------------------------
TestMArray marrayTest = new TestMArray(serv);
// -- END test cases ---------------------------------------------------
System.out.println( PREFIX_PROGRAM + "system test done." );
return;
} // main()
public TestMArray(String server)
{
DBag resultBag = null;
Object result = null;
Transaction myTa = null;
Database myDb = null;
OQLQuery myQu = null;
boolean equal = false;
try
{
System.out.println("### Testing MArrays: ...");
Implementation myApp = new RasImplementation("http://"+server+":7001");
myDb = myApp.newDatabase();
System.out.println("Opening database ...");
myDb.open("RASBASE", Database.OPEN_READ_WRITE);
myTa = myApp.newTransaction();
int width, height, len;
width = 18;
height = 18;
len = (width+1)*(height+1);
RasMInterval domain = new RasMInterval("[0:"+width+",0:"+height+"]");
RasMInterval domain2 = new RasMInterval("[1:3,1:3]");
RasStorageLayout stl = new RasStorageLayout();
stl.setTileSize(128);
/**
* test the GMArray
*/
System.out.println("\n\n### Testing GMArray with OID: ################################################");
myQu = myApp.newOQLQuery();
myQu.create("drop collection test");
myTa.begin();
try
{
resultBag = (DBag)myQu.execute();
myTa.commit();
//System.out.println("collection dropped");
}
catch(ODMGException e)
{
myTa.abort();
System.err.println("Collection test does not exist: " + e.getMessage());
}
myQu.create("create collection test GreySet");
RasGMArray mddConst = new RasGMArray(domain, 1, stl);
//RasGMArray mddConst = new RasGMArray(domain, 1);
byte[] data = new byte[len];
mddConst.setObjectTypeName("GreyImage");
// test: get new OID from the server for GMArray and insert
System.out.println("new OID from server: " + myApp.getObjectId(mddConst));
for(int j = 0; j < data.length; j++)
data[j] = (byte)j;
mddConst.setArray(data);
/*
System.out.println("\nbyte array: ");
for(int j=0; j