// Plan to test when result type is ByteArray and casting is requested
// for example casting of values coming out of map lookup.
POCast opWithInputTypeAsBA = new POCast(new OperatorKey("", r.nextLong()), -1);
PhysicalPlan planToTestBACasts = constructPlan(opWithInputTypeAsBA);
TupleFactory tf = TupleFactory.getInstance();
{
Tuple t = tf.newTuple();
t.append((new Integer(r.nextInt())).toString());
plan.attachInput(t);
Integer i = Integer.valueOf(((String) t.get(0)));
Result res = op.getNext(i);
if(res.returnStatus == POStatus.STATUS_OK) {
//System.out.println(res.result + " : " + i);
assertEquals(i, res.result);
}
planToTestBACasts.attachInput(t);
res = opWithInputTypeAsBA.getNext(i);
if(res.returnStatus == POStatus.STATUS_OK)
assertEquals(i, res.result);
}
{
Tuple t = tf.newTuple();
t.append((new Float(r.nextFloat())).toString());
plan.attachInput(t);
Float i = Float.valueOf(((String) t.get(0)));
Result res = op.getNext(i);
if(res.returnStatus == POStatus.STATUS_OK) {
//System.out.println(res.result + " : " + i);
assertEquals(i, res.result);
}
planToTestBACasts.attachInput(t);
res = opWithInputTypeAsBA.getNext(i);
if(res.returnStatus == POStatus.STATUS_OK)
assertEquals(i, res.result);
}
{
Tuple t = tf.newTuple();
t.append((new Long(r.nextLong())).toString());
plan.attachInput(t);
Long i = Long.valueOf(((String) t.get(0)));
Result res = op.getNext(i);
if(res.returnStatus == POStatus.STATUS_OK) {
//System.out.println(res.result + " : " + i);
assertEquals(i, res.result);
}
planToTestBACasts.attachInput(t);
res = opWithInputTypeAsBA.getNext(i);
if(res.returnStatus == POStatus.STATUS_OK)
assertEquals(i, res.result);
}
{
Tuple t = tf.newTuple();
t.append((new Double(r.nextDouble())).toString());
plan.attachInput(t);
Double i = Double.valueOf(((String) t.get(0)));
Result res = op.getNext(i);
if(res.returnStatus == POStatus.STATUS_OK) {
//System.out.println(res.result + " : " + i);
assertEquals(i, res.result);
}
planToTestBACasts.attachInput(t);
res = opWithInputTypeAsBA.getNext(i);
if(res.returnStatus == POStatus.STATUS_OK)
assertEquals(i, res.result);
}
{
Tuple t = tf.newTuple();
t.append(GenRandomData.genRandString(r));
plan.attachInput(t);
String str = (String) t.get(0);
Result res = op.getNext(str);
if(res.returnStatus == POStatus.STATUS_OK) {
//System.out.println(res.result + " : " + str);
assertEquals(str, res.result);
}
planToTestBACasts.attachInput(t);
res = opWithInputTypeAsBA.getNext(str);
if(res.returnStatus == POStatus.STATUS_OK)
assertEquals(str, res.result);
}
{
Tuple t = tf.newTuple();
t.append(GenRandomData.genRandString(r));
plan.attachInput(t);
DataByteArray dba = new DataByteArray(((String)t.get(0)).getBytes());
Result res = op.getNext(dba);
if(res.returnStatus == POStatus.STATUS_OK) {
//System.out.println(res.result + " : " + dba);
assertEquals(dba, res.result);
}
planToTestBACasts.attachInput(t);
res = opWithInputTypeAsBA.getNext(dba);
if(res.returnStatus == POStatus.STATUS_OK)
assertEquals(dba, res.result);
}
{
Tuple t = tf.newTuple();
t.append(GenRandomData.genRandString(r));
plan.attachInput(t);
Map map = null;
Result res = op.getNext(map);
assertEquals(POStatus.STATUS_ERR, res.returnStatus);
}
{
Tuple t = tf.newTuple();
t.append(GenRandomData.genRandString(r));
plan.attachInput(t);
Result res = op.getNext(t);
assertEquals(POStatus.STATUS_ERR, res.returnStatus);
}
{
Tuple t = tf.newTuple();
t.append(GenRandomData.genRandString(r));
plan.attachInput(t);
DataBag b = null;
Result res = op.getNext(b);
assertEquals(POStatus.STATUS_ERR, res.returnStatus);