MCPcopy Create free account
hub / github.com/apache/pig / randData

Method randData

test/org/apache/pig/data/TestSchemaTuple.java:417–459  ·  view source on GitHub ↗
(FieldSchema fs)

Source from the content-addressed store, hash-verified

415 private Random r = new Random(100L);
416
417 private Object randData(FieldSchema fs) throws ExecException {
418 switch (fs.type) {
419 case DataType.BIGDECIMAL: return new BigDecimal(r.nextDouble());
420 case DataType.BIGINTEGER: return new BigInteger(130, r);
421 case DataType.BOOLEAN: return r.nextBoolean();
422 case DataType.BYTEARRAY: return new DataByteArray(new BigInteger(130, r).toByteArray());
423 case DataType.CHARARRAY: return new BigInteger(130, r).toString(32);
424 case DataType.INTEGER: return r.nextInt();
425 case DataType.LONG: return r.nextLong();
426 case DataType.FLOAT: return r.nextFloat();
427 case DataType.DOUBLE: return r.nextDouble();
428 case DataType.DATETIME: return new DateTime(r.nextLong());
429 case DataType.BAG:
430 DataBag db = BagFactory.getInstance().newDefaultBag();
431 int sz = r.nextInt(100);
432 for (int i = 0; i < sz; i++) {
433 int tSz = r.nextInt(10);
434 Tuple t = TupleFactory.getInstance().newTuple(tSz);
435 for (int j = 0; j < tSz; j++) {
436 t.set(j, r.nextInt());
437 }
438 db.add(t);
439 }
440 return db;
441 case DataType.MAP:
442 Map<String, Object> map = Maps.newHashMap();
443 int keys = r.nextInt(10);
444 for (int i = 0; i < keys; i++) {
445 String key = (String) randData(new FieldSchema(null, DataType.CHARARRAY));
446 int values = r.nextInt(100);
447 for (int j = 0; j < values; j++) {
448 int tSz = r.nextInt(10);
449 Tuple t = TupleFactory.getInstance().newTuple(tSz);
450 for (int k = 0; k < tSz; k++) {
451 t.set(k, r.nextInt());
452 }
453 map.put(key, t);
454 }
455 }
456 return map;
457 default: throw new RuntimeException("Cannot generate data for given FieldSchema: " + fs);
458 }
459 }
460
461 public void testTypeAwareGetSetting(TupleFactory tf) throws ExecException {
462 SchemaTuple<?> st = (SchemaTuple<?>)tf.newTuple();

Callers 1

fillWithDataMethod · 0.95

Calls 12

getInstanceMethod · 0.95
getInstanceMethod · 0.95
setMethod · 0.95
addMethod · 0.95
newTupleMethod · 0.65
nextDoubleMethod · 0.45
toStringMethod · 0.45
nextIntMethod · 0.45
nextLongMethod · 0.45
nextFloatMethod · 0.45
newDefaultBagMethod · 0.45
putMethod · 0.45

Tested by

no test coverage detected