use of java.util.function.IntFunction in project lucene-solr by apache.
the class SimpleTextDocValuesReader method getNumericNonIterator.
IntFunction<Long> getNumericNonIterator(FieldInfo fieldInfo) throws IOException {
final OneField field = fields.get(fieldInfo.name);
assert field != null;
// valid:
assert field != null : "field=" + fieldInfo.name + " fields=" + fields;
final IndexInput in = data.clone();
final BytesRefBuilder scratch = new BytesRefBuilder();
final DecimalFormat decoder = new DecimalFormat(field.pattern, new DecimalFormatSymbols(Locale.ROOT));
decoder.setParseBigDecimal(true);
return new IntFunction<Long>() {
@Override
public Long apply(int docID) {
try {
//System.out.println(Thread.currentThread().getName() + ": get docID=" + docID + " in=" + in);
if (docID < 0 || docID >= maxDoc) {
throw new IndexOutOfBoundsException("docID must be 0 .. " + (maxDoc - 1) + "; got " + docID);
}
in.seek(field.dataStartFilePointer + (1 + field.pattern.length() + 2) * docID);
SimpleTextUtil.readLine(in, scratch);
//System.out.println("parsing delta: " + scratch.utf8ToString());
BigDecimal bd;
try {
bd = (BigDecimal) decoder.parse(scratch.get().utf8ToString());
} catch (ParseException pe) {
throw new CorruptIndexException("failed to parse BigDecimal value", in, pe);
}
// read the line telling us if it's real or not
SimpleTextUtil.readLine(in, scratch);
return BigInteger.valueOf(field.minValue).add(bd.toBigIntegerExact()).longValue();
} catch (IOException ioe) {
throw new RuntimeException(ioe);
}
}
};
}
use of java.util.function.IntFunction in project narchy by automenta.
the class QuestionTest method questionDrivesInference.
// @Test public void testQuestionHandler() throws Narsese.NarseseException {
// NAR nar = NARS.shell();
//
// final int[] s = {0};
// new TaskMatch("add(%1, %2, #x)", nar) {
//
// @Override public boolean test(@NotNull Task task) { return task.isQuestOrQuestion(); }
//
// @Override
// protected void accept(Task task, Map<Term, Term> xy) {
// System.out.println(task + " " + xy);
// s[0] = xy.size();
// }
// };
//
// nar.ask($.$("add(1, 2, #x)"));
//
// assertEquals(3, s[0]);
//
// }
// @Test public void testOperationHandler() throws Narsese.NarseseException {
// NAR nar = NARS.shell();
//
// final int[] s = {0};
// StringBuilder match = new StringBuilder();
// new OperationTaskMatch( $.$("add(%1, %2, #x)"), nar) {
//
// @Override public boolean test(@NotNull Task task) { return task.isQuestOrQuestion(); }
//
// @Override
// protected void onMatch(Term[] args) {
// match.append(Arrays.toString(args)).append(' ');
// }
// };
//
// nar.ask($.$("add(1, 2, #x)"));
//
// assertTrue(match.toString().contains("[1, 2, #1026]"));
//
// nar.ask($.$("add(1, #x)"));
// nar.ask($.$("(#x --> add)"));
//
// assertFalse(match.toString().contains("[1, #1026]"));
// }
/**
* tests whether the use of a question guides inference as measured by the speed to reach a specific conclusion
*/
@Test
public void questionDrivesInference() {
final int[] dims = { 3, 2 };
final int timelimit = 2400;
TaskStatistics withTasks = new TaskStatistics();
TaskStatistics withoutTasks = new TaskStatistics();
DoubleSummaryStatistics withTime = new DoubleSummaryStatistics();
DoubleSummaryStatistics withOutTime = new DoubleSummaryStatistics();
IntFunction<NAR> narProvider = (seed) -> {
NAR d = NARS.tmp(1);
d.random().setSeed(seed);
d.termVolumeMax.set(16);
d.freqResolution.set(0.1f);
return d;
};
BiFunction<Integer, Integer, TestNAR> testProvider = (seed, variation) -> {
NAR n = narProvider.apply(seed);
TestNAR t = new TestNAR(n);
switch(variation) {
case 0:
new DeductiveMeshTest(t, dims, timelimit);
break;
case 1:
new DeductiveMeshTest(t, dims, timelimit) {
@Override
public void ask(@NotNull TestNAR n, Term term) {
// disabled
}
};
break;
}
return t;
};
for (int i = 0; i < 10; i++) {
int seed = i + 1;
TestNAR withQuestion = testProvider.apply(seed, 0);
withQuestion.test(true);
withTime.accept(withQuestion.time());
withTasks.add(withQuestion.nar);
TestNAR withoutQuestion = testProvider.apply(seed, 1);
withoutQuestion.test(true);
withOutTime.accept(withoutQuestion.time());
withoutTasks.add(withoutQuestion.nar);
}
withTasks.print();
withoutTasks.print();
assertNotEquals(withTime, withOutTime);
System.out.println("with: " + withTime);
System.out.println("withOut: " + withOutTime);
// assertTrue(withTime.getSum() < withOutTime.getSum());
// assertTrue(withTime.getSum() < 2 * withOutTime.getSum()); //less than half, considering that a search "diameter" becomes a "radius" by providing the answer end-point
}
use of java.util.function.IntFunction in project kafka-streams-examples by confluentinc.
the class KafkaMusicExampleTest method shouldCreateChartsAndAccessThemViaInteractiveQueries.
@Test
public void shouldCreateChartsAndAccessThemViaInteractiveQueries() throws Exception {
final Properties props = new Properties();
props.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, CLUSTER.bootstrapServers());
final Map<String, String> serdeConfig = Collections.singletonMap(AbstractKafkaAvroSerDeConfig.SCHEMA_REGISTRY_URL_CONFIG, CLUSTER.schemaRegistryUrl());
final SpecificAvroSerializer<PlayEvent> playEventSerializer = new SpecificAvroSerializer<>();
playEventSerializer.configure(serdeConfig, false);
final SpecificAvroSerializer<Song> songSerializer = new SpecificAvroSerializer<>();
songSerializer.configure(serdeConfig, false);
final KafkaProducer<String, PlayEvent> playEventProducer = new KafkaProducer<>(props, Serdes.String().serializer(), playEventSerializer);
final KafkaProducer<Long, Song> songProducer = new KafkaProducer<>(props, new LongSerializer(), songSerializer);
final List<Song> songs = Arrays.asList(new Song(1L, "Fresh Fruit For Rotting Vegetables", "Dead Kennedys", "Chemical Warfare", "Punk"), new Song(2L, "We Are the League", "Anti-Nowhere League", "Animal", "Punk"), new Song(3L, "Live In A Dive", "Subhumans", "All Gone Dead", "Punk"), new Song(4L, "PSI", "Wheres The Pope?", "Fear Of God", "Punk"), new Song(5L, "Totally Exploited", "The Exploited", "Punks Not Dead", "Punk"), new Song(6L, "The Audacity Of Hype", "Jello Biafra And The Guantanamo School Of " + "Medicine", "Three Strikes", "Punk"), new Song(7L, "Licensed to Ill", "The Beastie Boys", "Fight For Your Right", "Hip Hop"), new Song(8L, "De La Soul Is Dead", "De La Soul", "Oodles Of O's", "Hip Hop"), new Song(9L, "Straight Outta Compton", "N.W.A", "Gangsta Gangsta", "Hip Hop"), new Song(10L, "Fear Of A Black Planet", "Public Enemy", "911 Is A Joke", "Hip Hop"), new Song(11L, "Curtain Call - The Hits", "Eminem", "Fack", "Hip Hop"), new Song(12L, "The Calling", "Hilltop Hoods", "The Calling", "Hip Hop"));
songs.forEach(song -> songProducer.send(new ProducerRecord<Long, Song>(KafkaMusicExample.SONG_FEED, song.getId(), song)));
songProducer.flush();
songProducer.close();
// create the play events we can use for charting
sendPlayEvents(6, songs.get(0), playEventProducer);
sendPlayEvents(5, songs.get(1), playEventProducer);
sendPlayEvents(4, songs.get(2), playEventProducer);
sendPlayEvents(3, songs.get(3), playEventProducer);
sendPlayEvents(2, songs.get(4), playEventProducer);
sendPlayEvents(1, songs.get(5), playEventProducer);
sendPlayEvents(6, songs.get(6), playEventProducer);
sendPlayEvents(5, songs.get(7), playEventProducer);
sendPlayEvents(4, songs.get(8), playEventProducer);
sendPlayEvents(3, songs.get(9), playEventProducer);
sendPlayEvents(2, songs.get(10), playEventProducer);
sendPlayEvents(1, songs.get(11), playEventProducer);
playEventProducer.close();
streams.start();
// wait until the StreamsMetadata is available as this indicates that
// KafkaStreams initialization has occurred
TestUtils.waitForCondition(() -> !StreamsMetadata.NOT_AVAILABLE.equals(streams.allMetadataForStore(KafkaMusicExample.TOP_FIVE_SONGS_STORE)), MAX_WAIT_MS, "StreamsMetadata should be available");
final String baseUrl = "http://localhost:" + appServerPort + "/kafka-music";
final Client client = ClientBuilder.newClient();
// Wait until the all-songs state store has some data in it
TestUtils.waitForCondition(() -> {
final ReadOnlyKeyValueStore<Long, Song> songsStore;
try {
songsStore = streams.store(KafkaMusicExample.ALL_SONGS, QueryableStoreTypes.<Long, Song>keyValueStore());
return songsStore.all().hasNext();
} catch (Exception e) {
return false;
}
}, MAX_WAIT_MS, KafkaMusicExample.ALL_SONGS + " should be non-empty");
final IntFunction<SongPlayCountBean> intFunction = index -> {
final Song song = songs.get(index);
return songCountPlayBean(song, 6L - (index % 6));
};
// Verify that the charts are as expected
verifyChart(baseUrl + "/charts/genre/punk", client, IntStream.range(0, 5).mapToObj(intFunction).collect(Collectors.toList()));
verifyChart(baseUrl + "/charts/genre/hip hop", client, IntStream.range(6, 11).mapToObj(intFunction).collect(Collectors.toList()));
verifyChart(baseUrl + "/charts/top-five", client, Arrays.asList(songCountPlayBean(songs.get(0), 6L), songCountPlayBean(songs.get(6), 6L), songCountPlayBean(songs.get(1), 5L), songCountPlayBean(songs.get(7), 5L), songCountPlayBean(songs.get(2), 4L)));
}
use of java.util.function.IntFunction in project RichTextFX by FXMisc.
the class LineIndicatorDemo method start.
@Override
public void start(Stage primaryStage) {
CodeArea codeArea = new CodeArea();
IntFunction<Node> numberFactory = LineNumberFactory.get(codeArea);
IntFunction<Node> arrowFactory = new ArrowFactory(codeArea.currentParagraphProperty());
IntFunction<Node> graphicFactory = line -> {
HBox hbox = new HBox(numberFactory.apply(line), arrowFactory.apply(line));
hbox.setAlignment(Pos.CENTER_LEFT);
return hbox;
};
codeArea.setParagraphGraphicFactory(graphicFactory);
codeArea.replaceText("The green arrow will only be on the line where the caret appears.\n\nTry it.");
codeArea.moveTo(0, 0);
primaryStage.setScene(new Scene(new StackPane(codeArea), 600, 400));
primaryStage.show();
}
use of java.util.function.IntFunction in project hazelcast by hazelcast.
the class ExecutionPlan method createLocalOutboundCollector.
private OutboundCollector createLocalOutboundCollector(EdgeDef edge, int processorIndex, int totalPartitionCount, int[][] partitionsPerProcessor) {
int upstreamParallelism = edge.sourceVertex().localParallelism();
int downstreamParallelism = edge.destVertex().localParallelism();
int queueSize = edge.getConfig().getQueueSize();
int numRemoteMembers = ptionArrgmt.getRemotePartitionAssignment().size();
if (edge.routingPolicy() == RoutingPolicy.ISOLATED) {
ConcurrentConveyor<Object>[] localConveyors = localConveyorMap.computeIfAbsent(edge.edgeId(), edgeId -> {
int queueCount = upstreamParallelism / downstreamParallelism;
int remainder = upstreamParallelism % downstreamParallelism;
return Stream.concat(Arrays.stream(createConveyorArray(remainder, queueCount + 1, queueSize)), Arrays.stream(createConveyorArray(downstreamParallelism - remainder, Math.max(1, queueCount), queueSize))).toArray((IntFunction<ConcurrentConveyor<Object>[]>) ConcurrentConveyor[]::new);
});
OutboundCollector[] localCollectors = IntStream.range(0, downstreamParallelism).filter(i -> i % upstreamParallelism == processorIndex % downstreamParallelism).mapToObj(i -> new ConveyorCollector(localConveyors[i], processorIndex / downstreamParallelism, null)).toArray(OutboundCollector[]::new);
return compositeCollector(localCollectors, edge, totalPartitionCount, true);
} else {
ConcurrentConveyor<Object>[] localConveyors = localConveyorMap.computeIfAbsent(edge.edgeId(), edgeId -> {
int queueCount = upstreamParallelism + (!edge.isLocal() ? numRemoteMembers : 0);
return createConveyorArray(downstreamParallelism, queueCount, queueSize);
});
OutboundCollector[] localCollectors = new OutboundCollector[downstreamParallelism];
Arrays.setAll(localCollectors, n -> new ConveyorCollector(localConveyors[n], processorIndex, partitionsPerProcessor[n]));
return compositeCollector(localCollectors, edge, totalPartitionCount, true);
}
}
Aggregations