/** * Works like addOutput(), but returns self for fluent style * @param outputRecord * @return this */ public MapReduceDriver<K1, V1, K2, V2, K3, V3> withOutput( Pair<K3, V3> outputRecord) { addOutput(outputRecord); return this; }
/** * Functions like addOutput() but returns self for fluent programming style * @param key * @param val * @return this */ public MapReduceDriver<K1, V1, K2, V2, K3, V3> withOutput(K3 key, V3 val) { addOutput(key, val); return this; }
/** * Generates tuples for the tests * * @param driver * Driver * @param num * Number of tuples to generate */ protected void generateData(MapReduceDriver<LongWritable, T, NodeWritable, LongWritable, NodeWritable, LongWritable> driver, int num) { Map<NodeWritable, Long> counts = new HashMap<NodeWritable, Long>(); for (int i = 0; i < num; i++) { LongWritable key = new LongWritable(i); T value = this.createValue(i); NodeWritable[] nodes = this.getNodes(value); driver.addInput(key, value); for (NodeWritable n : nodes) { if (counts.containsKey(n)) { counts.put(n, counts.get(n) + 1); } else { counts.put(n, 1l); } } } for (Entry<NodeWritable, Long> kvp : counts.entrySet()) { driver.addOutput(kvp.getKey(), new LongWritable(kvp.getValue())); } }
/** * Creates a set consisting of the given predicates * * @param predicates * Predicates * @return Set */ protected CharacteristicSetWritable createSet(MapReduceDriver<LongWritable, T, NodeWritable, T, CharacteristicSetWritable, NullWritable> driver, int occurrences, String... predicates) { CharacteristicSetWritable set = new CharacteristicSetWritable(); for (String predicateUri : predicates) { set.add(new CharacteristicWritable(NodeFactory.createURI(predicateUri))); } for (int i = 1; i <= occurrences; i++) { driver.addOutput(set, NullWritable.get()); } return set; }
@Test public void distinct_triples_01() throws IOException { MapReduceDriver<LongWritable, TripleWritable, TripleWritable, NullWritable, NullWritable, TripleWritable> driver = this .getMapReduceDriver(); Triple t = new Triple(NodeFactory.createURI("urn:s"), NodeFactory.createURI("urn:p"), NodeFactory.createLiteral("1")); TripleWritable tw = new TripleWritable(t); driver.addInput(new LongWritable(1), tw); driver.addOutput(NullWritable.get(), tw); driver.runTest(); }
/** * Creates a set consisting of the given predicates * * @param predicates * Predicates * @return Set */ protected CharacteristicSetWritable createSet( MapReduceDriver<CharacteristicSetWritable, CharacteristicSetWritable, CharacteristicSetWritable, CharacteristicSetWritable, CharacteristicSetWritable, NullWritable> driver, int inputOccurrences, int outputOccurrences, String... predicates) { CharacteristicSetWritable set = new CharacteristicSetWritable(); for (String predicateUri : predicates) { set.add(new CharacteristicWritable(NodeFactory.createURI(predicateUri))); } for (int i = 1; i <= inputOccurrences; i++) { driver.addInput(set, set); } for (int i = 1; i <= outputOccurrences; i++) { driver.addOutput(set, NullWritable.get()); } return set; }
@Test public void distinct_triples_02() throws IOException { MapReduceDriver<LongWritable, TripleWritable, TripleWritable, NullWritable, NullWritable, TripleWritable> driver = this .getMapReduceDriver(); Triple t = new Triple(NodeFactory.createURI("urn:s"), NodeFactory.createURI("urn:p"), NodeFactory.createLiteral("1")); TripleWritable tw = new TripleWritable(t); for (int i = 0; i < 100; i++) { driver.addInput(new LongWritable(i), tw); } driver.addOutput(NullWritable.get(), tw); driver.runTest(); }
@Test public void distinct_triples_03() throws IOException { MapReduceDriver<LongWritable, TripleWritable, TripleWritable, NullWritable, NullWritable, TripleWritable> driver = this .getMapReduceDriver(); Triple t = new Triple(NodeFactory.createURI("urn:s"), NodeFactory.createURI("urn:p"), NodeFactory.createLiteral("1")); Triple t2 = new Triple(t.getSubject(), t.getPredicate(), NodeFactory.createLiteral("2")); Assert.assertNotEquals(t, t2); TripleWritable tw = new TripleWritable(t); TripleWritable tw2 = new TripleWritable(t2); Assert.assertNotEquals(tw, tw2); driver.addInput(new LongWritable(1), tw); driver.addInput(new LongWritable(2), tw2); driver.addOutput(NullWritable.get(), tw); driver.addOutput(NullWritable.get(), tw2); driver.runTest(false); }
@Test public void distinct_triples_04() throws IOException { MapReduceDriver<LongWritable, TripleWritable, TripleWritable, NullWritable, NullWritable, TripleWritable> driver = this .getMapReduceDriver(); Node s1 = NodeFactory.createURI("urn:nf#cbf2b2c7-109e-4097-bbea-f67f272c7fcc"); Node s2 = NodeFactory.createURI("urn:nf#bb08b75c-1ad2-47ef-acd2-eb2d92b94b89"); Node p = NodeFactory.createURI("urn:p"); Node o = NodeFactory.createURI("urn:66.230.159.118"); Assert.assertNotEquals(s1, s2); Triple t1 = new Triple(s1, p, o); Triple t2 = new Triple(s2, p, o); Assert.assertNotEquals(t1, t2); TripleWritable tw1 = new TripleWritable(t1); TripleWritable tw2 = new TripleWritable(t2); Assert.assertNotEquals(tw1, tw2); Assert.assertNotEquals(0, tw1.compareTo(tw2)); driver.addInput(new LongWritable(1), tw1); driver.addInput(new LongWritable(2), tw2); driver.addOutput(NullWritable.get(), tw1); driver.addOutput(NullWritable.get(), tw2); driver.runTest(false); } }