409 lines
9.9 KiB
Java
409 lines
9.9 KiB
Java
//-----------------------------------------------------------------------------
|
|
// Copyright (c) 1994,1995 Southeastern Universities Research Association,
|
|
// Continuous Electron Beam Accelerator Facility
|
|
//
|
|
// This software was developed under a United States Government license
|
|
// described in the NOTICE file included as part of this distribution.
|
|
//
|
|
// Jefferson Lab HPC Group, 12000 Jefferson Ave., Newport News, VA 23606
|
|
//-----------------------------------------------------------------------------
|
|
//
|
|
// Description:
|
|
// rsvc data package test
|
|
//
|
|
// Author:
|
|
// Jie Chen
|
|
// Jefferson Lab HPC Group
|
|
//
|
|
// Revision History:
|
|
// $Log: rsvcDataTest.java,v $
|
|
// Revision 1.1.1.1 2000/05/23 15:12:50 pal
|
|
// cdev_psi_1.7.2
|
|
//
|
|
// Revision 1.1 1999/10/18 17:12:41 chen
|
|
// *** empty log message ***
|
|
//
|
|
//
|
|
//
|
|
//
|
|
import java.io.*;
|
|
import rsvcData;
|
|
|
|
public class rsvcDataTest
|
|
{
|
|
public static final byte bdata = 1;
|
|
public static final short sdata = 2;
|
|
public static final int idata = 3;
|
|
public static final long ldata = 4;
|
|
public static final float fdata = (float)5.0;
|
|
public static final double ddata = 6.0;
|
|
public static final String strdata = new String ("Hello World I am Here");
|
|
public static final String file = new String ("/home/chen/java/rsvc/test.dat");
|
|
public static final String coutputfile = new String ("/home/chen/java/rsvc/coutput.dat");
|
|
public static final String cinputfile = new String ("/home/chen/java/rsvc/cinput.dat");
|
|
|
|
static public void integerConvTest ()
|
|
{
|
|
|
|
// test array insert
|
|
int []iarray = new int[127];
|
|
for (int i = 0; i < 127; i++)
|
|
iarray[i] = i;
|
|
|
|
rsvcData data = new rsvcData ();
|
|
data.insert ("value", iarray);
|
|
|
|
// get data test
|
|
rsvcDataEntry de = data.get ("value");
|
|
|
|
// byte converstion
|
|
byte[] ba = de.byteArray ();
|
|
rsvcData data1 = new rsvcData ();
|
|
data1.insert ("value", ba);
|
|
|
|
de = data1.get ("value");
|
|
int []ia = de.intArray();
|
|
rsvcData data2 = new rsvcData();
|
|
data2.insert ("value", ia);
|
|
if (data.equals (data2))
|
|
System.out.print ("Integer -> Byte -> Integer OK\n");
|
|
else
|
|
System.out.print ("Integer -> Byte -> Integer Failed\n");
|
|
|
|
// short conversion
|
|
de = data.get ("value");
|
|
short[] sa = de.shortArray ();
|
|
rsvcData data3 = new rsvcData ();
|
|
data3.insert ("value", sa);
|
|
de = data3.get ("value");
|
|
ia = de.intArray ();
|
|
|
|
rsvcData data4 = new rsvcData();
|
|
data4.insert ("value", ia);
|
|
|
|
if (data.equals (data4))
|
|
System.out.print ("Integer -> Short -> Integer OK\n");
|
|
else
|
|
System.out.print ("Integer -> Short -> Integer Failed\n");
|
|
|
|
|
|
// long conversion
|
|
de = data.get ("value");
|
|
long[] la = de.longArray ();
|
|
rsvcData data5 = new rsvcData ();
|
|
data5.insert ("value", la);
|
|
de = data5.get ("value");
|
|
ia = de.intArray ();
|
|
|
|
rsvcData data6 = new rsvcData();
|
|
data6.insert ("value", ia);
|
|
|
|
if (data.equals (data6))
|
|
System.out.print ("Integer -> Long -> Integer OK\n");
|
|
else
|
|
System.out.print ("Integer -> Long -> Integer Failed\n");
|
|
|
|
|
|
// float conversion
|
|
de = data.get ("value");
|
|
float[] fa = de.floatArray ();
|
|
rsvcData data7 = new rsvcData ();
|
|
data7.insert ("value", fa);
|
|
de = data7.get ("value");
|
|
ia = de.intArray ();
|
|
|
|
rsvcData data8 = new rsvcData();
|
|
data8.insert ("value", ia);
|
|
|
|
if (data.equals (data8))
|
|
System.out.print ("Integer -> Float -> Integer OK\n");
|
|
else
|
|
System.out.print ("Integer -> Float -> Integer Failed\n");
|
|
|
|
// Double conversion
|
|
de = data.get ("value");
|
|
double[] da = de.doubleArray ();
|
|
rsvcData data9 = new rsvcData ();
|
|
data9.insert ("value", da);
|
|
de = data9.get ("value");
|
|
ia = de.intArray ();
|
|
|
|
rsvcData data10 = new rsvcData();
|
|
data10.insert ("value", ia);
|
|
|
|
if (data.equals (data10))
|
|
System.out.print ("Integer -> Double -> Integer OK\n");
|
|
else
|
|
System.out.print ("Integer -> Double -> Integer Failed\n");
|
|
}
|
|
|
|
static public void floatConvTest ()
|
|
{
|
|
|
|
// test array insert
|
|
float []farray = new float[127];
|
|
for (int i = 0; i < 127; i++)
|
|
farray[i] = (float)i;
|
|
|
|
rsvcData data = new rsvcData ();
|
|
data.insert ("value", farray);
|
|
|
|
// get data test
|
|
rsvcDataEntry de = data.get ("value");
|
|
|
|
// byte converstion
|
|
byte[] ba = de.byteArray ();
|
|
rsvcData data1 = new rsvcData ();
|
|
data1.insert ("value", ba);
|
|
|
|
de = data1.get ("value");
|
|
float []ia = de.floatArray();
|
|
rsvcData data2 = new rsvcData();
|
|
data2.insert ("value", ia);
|
|
if (data.equals (data2))
|
|
System.out.print ("Float -> Byte -> Float OK\n");
|
|
else
|
|
System.out.print ("Float -> Byte -> Float Failed\n");
|
|
|
|
// short conversion
|
|
de = data.get ("value");
|
|
short[] sa = de.shortArray ();
|
|
rsvcData data3 = new rsvcData ();
|
|
data3.insert ("value", sa);
|
|
de = data3.get ("value");
|
|
ia = de.floatArray ();
|
|
|
|
rsvcData data4 = new rsvcData();
|
|
data4.insert ("value", ia);
|
|
|
|
if (data.equals (data4))
|
|
System.out.print ("Float -> Short -> Float OK\n");
|
|
else
|
|
System.out.print ("Float -> Short -> Float Failed\n");
|
|
|
|
|
|
// long conversion
|
|
de = data.get ("value");
|
|
long[] la = de.longArray ();
|
|
rsvcData data5 = new rsvcData ();
|
|
data5.insert ("value", la);
|
|
de = data5.get ("value");
|
|
ia = de.floatArray ();
|
|
|
|
rsvcData data6 = new rsvcData();
|
|
data6.insert ("value", ia);
|
|
|
|
if (data.equals (data6))
|
|
System.out.print ("Float -> Long -> Float OK\n");
|
|
else
|
|
System.out.print ("Float -> Long -> Float Failed\n");
|
|
|
|
|
|
// Integer conversion
|
|
de = data.get ("value");
|
|
int[] fa = de.intArray ();
|
|
rsvcData data7 = new rsvcData ();
|
|
data7.insert ("value", fa);
|
|
de = data7.get ("value");
|
|
ia = de.floatArray ();
|
|
|
|
rsvcData data8 = new rsvcData();
|
|
data8.insert ("value", ia);
|
|
|
|
if (data.equals (data8))
|
|
System.out.print ("Float -> Integer -> Float OK\n");
|
|
else
|
|
System.out.print ("Float -> Integer -> Float Failed\n");
|
|
|
|
// Double conversion
|
|
de = data.get ("value");
|
|
double[] da = de.doubleArray ();
|
|
rsvcData data9 = new rsvcData ();
|
|
data9.insert ("value", da);
|
|
de = data9.get ("value");
|
|
ia = de.floatArray ();
|
|
|
|
rsvcData data10 = new rsvcData();
|
|
data10.insert ("value", ia);
|
|
|
|
if (data.equals (data10))
|
|
System.out.print ("Float -> Double -> Float OK\n");
|
|
else
|
|
System.out.print ("Float -> Double -> Float Failed\n");
|
|
}
|
|
|
|
public static rsvcData arrayData ()
|
|
{
|
|
rsvcData data = new rsvcData ();
|
|
int i;
|
|
|
|
// insert array of double
|
|
double[] darray = new double[127];
|
|
for (i = 0; i < 127; i++)
|
|
darray[i] = 123.232 + i*121.121 + i/89.12;
|
|
data.insert ("value0", darray);
|
|
|
|
// insert array of string
|
|
String[] sarray = new String[211];
|
|
for (i = 0; i < 211; i++)
|
|
sarray[i] = new String("value plus " + String.valueOf(i));
|
|
data.insert ("value1", sarray);
|
|
|
|
return data;
|
|
}
|
|
|
|
|
|
public static void main (String[] args)
|
|
{
|
|
rsvcData data = new rsvcData();
|
|
|
|
// test scaler data insert
|
|
data.insert ("value0", bdata);
|
|
data.insert ("value1", sdata);
|
|
data.insert ("value2", idata);
|
|
data.insert ("value3", ldata);
|
|
data.insert ("value4", fdata);
|
|
data.insert ("value5", ddata);
|
|
data.insert ("value6", strdata);
|
|
|
|
|
|
try {
|
|
data.dup ("value4", "value3");
|
|
}catch (rsvcException e) {
|
|
data.remove ("value3");
|
|
data.dup ("value4", "value3");
|
|
}
|
|
|
|
data.asciiDump ();
|
|
|
|
rsvcData data1 = new rsvcData (data);
|
|
if (data.equals (data1))
|
|
System.out.print ("Data == Data1\n");
|
|
else
|
|
System.out.print ("Data != Data1\n");
|
|
|
|
data1.insert ("value0", (byte)12);
|
|
if (data.equals (data1))
|
|
System.out.print ("Data == Data1\n");
|
|
else
|
|
System.out.print ("Data != Data1\n");
|
|
|
|
data1.changeTag ("value2", "value12");
|
|
|
|
data1.asciiDump ();
|
|
|
|
rsvcTimeStamp ts = new rsvcTimeStamp();
|
|
data1.insert ("value1", ts);
|
|
data1.asciiDump ();
|
|
|
|
integerConvTest ();
|
|
floatConvTest();
|
|
|
|
// test stream out and stream in
|
|
File outputfile = new File (rsvcDataTest.file);
|
|
FileOutputStream output = null;
|
|
try {
|
|
output = new FileOutputStream (outputfile);
|
|
}catch (IOException e) {
|
|
System.out.println (e);
|
|
System.exit (-1);
|
|
}
|
|
|
|
// find out how big stream rsvcData will be
|
|
// rsvcData olddata = arrayData ();
|
|
rsvcData olddata = new rsvcData ();
|
|
olddata.insert ("value0", (double)129.01);
|
|
olddata.insert ("value1", (double)142323.01);
|
|
int dsize = olddata.streamSize ();
|
|
|
|
System.out.print ("Data size is " + String.valueOf(dsize) + "\n");
|
|
|
|
// Create Buffered output stream
|
|
BufferedOutputStream boutput = new BufferedOutputStream (output, dsize);
|
|
try {
|
|
olddata.streamOut (boutput);
|
|
}catch (IOException e) {
|
|
System.out.println (e);
|
|
System.exit (-1);
|
|
}
|
|
|
|
try {
|
|
boutput.flush();
|
|
}catch (IOException e) {
|
|
System.out.println (e);
|
|
System.exit (-1);
|
|
}
|
|
|
|
|
|
// create a buffered input stream
|
|
rsvcData newdata = new rsvcData ();
|
|
FileInputStream input = null;
|
|
try {
|
|
input = new FileInputStream (outputfile);
|
|
}catch (IOException e) {
|
|
System.out.println (e);
|
|
System.exit (-1);
|
|
}
|
|
BufferedInputStream binput = new BufferedInputStream(input, dsize);
|
|
try {
|
|
newdata.streamIn (binput);
|
|
}catch (IOException e) {
|
|
System.out.println (e);
|
|
System.exit (-1);
|
|
}
|
|
|
|
newdata.asciiDump ();
|
|
|
|
// test equality between newdata and data
|
|
if (olddata.equals (newdata) )
|
|
System.out.print ("Data == newdata\n");
|
|
else
|
|
System.out.print ("Data != newdata\n");
|
|
|
|
// test whether we can read from a file generated by C code
|
|
// create a buffered input stream
|
|
|
|
rsvcData cdata = new rsvcData ();
|
|
try {
|
|
input = new FileInputStream (coutputfile);
|
|
}catch (IOException e) {
|
|
System.out.println (e);
|
|
System.exit (-1);
|
|
}
|
|
binput = new BufferedInputStream(input, 2400);
|
|
try {
|
|
cdata.streamIn (binput);
|
|
}catch (IOException e) {
|
|
System.out.println (e);
|
|
System.exit (-1);
|
|
}
|
|
|
|
cdata.asciiDump ();
|
|
|
|
// output some data stream let C++ to pick it up
|
|
try {
|
|
output = new FileOutputStream (cinputfile);
|
|
}catch (IOException e) {
|
|
System.out.println (e);
|
|
System.exit (-1);
|
|
}
|
|
boutput = new BufferedOutputStream(output, 2400);
|
|
try {
|
|
cdata.streamOut (boutput);
|
|
}catch (IOException e) {
|
|
System.out.println (e);
|
|
System.exit (-1);
|
|
}
|
|
|
|
try {
|
|
boutput.flush();
|
|
}catch (IOException e) {
|
|
System.out.println (e);
|
|
System.exit (-1);
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
|