Java Code Examples for com.google.common.collect.Multiset#add()
The following examples show how to use
com.google.common.collect.Multiset#add() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: AbstractIdentifierRenamings.java From naturalize with BSD 3-Clause "New" or "Revised" License | 6 votes |
/** * @param relevantNgrams * @param currentName * @return */ public Multiset<String> getAlternativeNames( final Multiset<NGram<String>> relevantNgrams, final String currentName) { // Get all alternative namings final Multiset<String> nameAlternatives = ngramLM .getAlternativeNamings(relevantNgrams, WILDCARD_TOKEN); nameAlternatives.add(currentName); // Give the current identifier a // chance... // Prune naming alternatives final Multiset<String> toKeep = TreeMultiset.create(); int seen = 0; for (final Entry<String> ent : Multisets.copyHighestCountFirst( nameAlternatives).entrySet()) { if (seen > 1000) { break; } toKeep.add(ent.getElement(), ent.getCount()); seen++; } toKeep.add(AbstractNGramLM.UNK_SYMBOL); return toKeep; }
Example 2
Source File: EntropyTest.java From ProjectAres with GNU Affero General Public License v3.0 | 6 votes |
@Test public void intRange() throws Exception { Entropy e = new MutableEntropy(SEED); Range<Integer> range = Range.closedOpen(-5, 5); Multiset<Integer> distribution = HashMultiset.create(); // Choose 1k values and check that they are in the range for(int i = 0; i < 10000; i++) { final int value = e.randomInt(range); assertContains(range, value); distribution.add(value); e.advance(); } // Assert that each of the 10 values was chosen ~1000 times Ranges.forEach(range, value -> { assertEquals(1000D, distribution.count(value), 50D); }); }
Example 3
Source File: NodePropertiesAnswerer.java From batfish with Apache License 2.0 | 6 votes |
/** * Gets properties of nodes. * * @param propertySpecifier Specifies which properties to get * @param ctxt Specifier context to use in extractions * @param nodeSpecifier Specifies the set of nodes to focus on * @param columns a map from column name to {@link ColumnMetadata} * @return A multiset of {@link Row}s where each row corresponds to a node and columns correspond * to property values. */ public static Multiset<Row> getProperties( NodePropertySpecifier propertySpecifier, SpecifierContext ctxt, NodeSpecifier nodeSpecifier, Map<String, ColumnMetadata> columns) { Multiset<Row> rows = HashMultiset.create(); for (String nodeName : nodeSpecifier.resolve(ctxt)) { RowBuilder row = Row.builder(columns).put(COL_NODE, new Node(nodeName)); for (String property : propertySpecifier.getMatchingProperties()) { PropertySpecifier.fillProperty( NodePropertySpecifier.getPropertyDescriptor(property), ctxt.getConfigs().get(nodeName), property, row); } rows.add(row.build()); } return rows; }
Example 4
Source File: DatabaseShardingTest.java From mango with Apache License 2.0 | 5 votes |
private void check(List<Msg> msgs, MsgDao dao) { List<Msg> dbMsgs = new ArrayList<Msg>(); Multiset<Integer> ms = HashMultiset.create(); for (Msg msg : msgs) { ms.add(msg.getUid()); } for (Multiset.Entry<Integer> entry : ms.entrySet()) { dbMsgs.addAll(dao.getMsgs(entry.getElement())); } assertThat(dbMsgs, hasSize(msgs.size())); assertThat(dbMsgs, containsInAnyOrder(msgs.toArray())); }
Example 5
Source File: Schema.java From registry with Apache License 2.0 | 5 votes |
private static Multiset<Field> parseArray(List<Object> array) throws ParserException { Multiset<Field> members = LinkedHashMultiset.create(); for(Object member: array) { members.add(parseField(null, member)); } return members; }
Example 6
Source File: GuavaMultiSetUnitTest.java From tutorials with MIT License | 5 votes |
@Test public void givenMultiSet_whenSettingCountWithCorrectValue_shouldBeSuccessful() { Multiset<String> bookStore = HashMultiset.create(); bookStore.add("Potter"); bookStore.add("Potter"); assertThat(bookStore.setCount("Potter", 2, 52)).isTrue(); }
Example 7
Source File: HeaderSamplerTest.java From log-synth with Apache License 2.0 | 5 votes |
@Test public void testEncoding() throws IOException { HeaderSampler s = new HeaderSampler(); s.setType("normal"); Multiset<String> encodings = HashMultiset.create(); for (int i = 0; i < 1000; i++) { encodings.add(s.encoding()); } assertEquals(3, encodings.elementSet().size()); assertEquals(333.0, encodings.count("deflate"), 90); assertEquals(333.0, encodings.count("gzip"), 90); assertEquals(333.0, encodings.count("gzip, deflate"), 90); s.setType("mal1"); encodings = HashMultiset.create(); for (int i = 0; i < 1000; i++) { encodings.add(s.encoding()); } assertEquals(1, encodings.elementSet().size()); assertEquals(1000, encodings.count("identity"), 90); s.setType("mal2"); encodings = HashMultiset.create(); for (int i = 0; i < 1000; i++) { encodings.add(s.encoding()); } assertEquals(1, encodings.elementSet().size()); }
Example 8
Source File: YagoLabelsToClassProbabilitiesBmeow.java From ambiverse-nlu with Apache License 2.0 | 5 votes |
private static void addNerTypeLabel(String token, BmeowTypePair pair) { Multiset<BmeowTypePair> labelCount = classTypeCounts.get(token); if(labelCount == null){ labelCount = HashMultiset.create(); } labelCount.add(pair); classTypeCounts.put(token, labelCount); }
Example 9
Source File: Anagram.java From tutorials with MIT License | 5 votes |
public boolean isAnagramMultiset(String string1, String string2) { if (string1.length() != string2.length()) { return false; } Multiset<Character> multiset1 = HashMultiset.create(); Multiset<Character> multiset2 = HashMultiset.create(); for (int i = 0; i < string1.length(); i++) { multiset1.add(string1.charAt(i)); multiset2.add(string2.charAt(i)); } return multiset1.equals(multiset2); }
Example 10
Source File: ByEventTypeResultWriter.java From tac-kbp-eal with MIT License | 5 votes |
static Multiset<Symbol> gatherEventTypesSeen( final Iterable<EALScorer2015Style.Result> perDocResults) { final Multiset<Symbol> eventTypesSeen = HashMultiset.create(); for (final EALScorer2015Style.Result perDocResult : perDocResults) { for (final TypeRoleFillerRealis trfr : perDocResult.argResult().argumentScoringAlignment() .allEquivalenceClassess()) { eventTypesSeen.add(trfr.type()); } } return eventTypesSeen; }
Example 11
Source File: MultisetType.java From javers with Apache License 2.0 | 5 votes |
/** * @return immutable Multiset */ @Override public Object map(Object sourceEnumerable, EnumerableFunction mapFunction, OwnerContext owner) { Validate.argumentIsNotNull(mapFunction); Multiset sourceMultiset = toNotNullMultiset(sourceEnumerable); Multiset targetMultiset = HashMultiset.create(); EnumerationAwareOwnerContext enumeratorContext = new EnumerationAwareOwnerContext(owner, true); for (Object sourceVal : sourceMultiset) { targetMultiset.add(mapFunction.apply(sourceVal, enumeratorContext)); } return Multisets.unmodifiableMultiset(targetMultiset); }
Example 12
Source File: FlatSequenceTest.java From log-synth with Apache License 2.0 | 5 votes |
@Test public void testCrossProduct() throws IOException { // here we verify the cross product result when we have multiple flattened sequences in a record //noinspection UnstableApiUsage SchemaSampler s1 = new SchemaSampler(Resources.asCharSource(Resources.getResource("schema035.json"), Charsets.UTF_8).read()); Multiset<String> count = HashMultiset.create(); for (int i = 0; i < 150; i++) { JsonNode r = s1.sample(); assertEquals(r.get("a").asInt() + 100, r.get("b").asInt()); assertEquals(r.get("foo").get("a").asInt() + 100, r.get("foo").get("b").asInt()); count.add(String.format("a=%d", r.get("a").asInt())); count.add(String.format("a=%d, b=%d", r.get("a").asInt(), r.get("b").asInt())); count.add(String.format("a=%d, foo.a=%d", r.get("a").asInt(), r.get("foo").get("a").asInt())); count.add(String.format("foo.a=%d", r.get("foo").get("a").asInt())); count.add(String.format("foo.a=%d, foo.b=%d", r.get("foo").get("a").asInt(), r.get("foo").get("b").asInt())); } assertEquals(50, count.count("a=1"), 1.5); assertEquals(50, count.count("a=2"), 1.5); assertEquals(0, count.count("a=3")); assertEquals(75, count.count("foo.a=0")); assertEquals(75, count.count("foo.a=1")); assertEquals(0, count.count("foo.a=3")); assertEquals(25, count.count("a=0, foo.a=0")); assertEquals(75, count.count("foo.a=0, foo.b=100")); assertEquals(25, count.count("a=0, foo.a=1")); assertEquals(50, count.count("a=0, b=100")); }
Example 13
Source File: TermGeneratorTest.java From log-synth with Apache License 2.0 | 5 votes |
@Test public void generateTerms() { TermGenerator x = new TermGenerator(WORDS, 1, 0.8); final Multiset<String> counts = HashMultiset.create(); for (int i = 0; i < 10000; i++) { counts.add(x.sample()); } assertEquals(10000, counts.size()); assertTrue("Should have some common words", counts.elementSet().size() < 10000); List<Integer> k = Lists.newArrayList( counts.elementSet().stream() .map(counts::count) .collect(Collectors.toList())); // System.out.printf("%s\n", Ordering.natural().reverse().sortedCopy(k).subList(0, 30)); // System.out.printf("%s\n", Iterables.transform(Iterables.filter(counts.elementSet(), new Predicate<String>() { // public boolean apply(String s) { // return counts.count(s) > 100; // } // }), new Function<String, String>() { // public String apply(String s) { // return s + ":" + counts.count(s); // } // })); assertEquals(1, Ordering.natural().leastOf(k, 1).get(0).intValue()); assertTrue(Ordering.natural().greatestOf(k, 1).get(0) > 300); assertTrue(counts.count("the") > 300); }
Example 14
Source File: TestTreeBoundedSynthesis.java From angelix with MIT License | 5 votes |
@Test public void testForbiddenNonexistent() { Multiset<Node> components = HashMultiset.create(); components.add(x); components.add(y); components.add(Library.ADD); ArrayList<TestCase> testSuite = new ArrayList<>(); Map<ProgramVariable, Node> assignment1 = new HashMap<>(); assignment1.put(x, IntConst.of(1)); assignment1.put(y, IntConst.of(1)); testSuite.add(TestCase.ofAssignment(assignment1, IntConst.of(2))); Map<ProgramVariable, Node> assignment2 = new HashMap<>(); assignment2.put(x, IntConst.of(1)); assignment2.put(y, IntConst.of(2)); testSuite.add(TestCase.ofAssignment(assignment2, IntConst.of(3))); List<Expression> forbidden = new ArrayList<>(); Map<Hole, Expression> args = new HashMap<>(); args.put((Hole) Library.ADD.getLeft(), Expression.leaf(x)); args.put((Hole) Library.ADD.getRight(), Expression.leaf(y)); forbidden.add(Expression.app(Library.SUB, args)); Synthesis synthesizerWithForbidden = new Synthesis(new BoundedShape(2, forbidden), new TreeBoundedEncoder(false)); Optional<Pair<Expression, Map<Parameter, Constant>>> result = synthesizerWithForbidden.synthesize(testSuite, components); assertTrue(result.isPresent()); Node node = result.get().getLeft().getSemantics(result.get().getRight()); assertTrue(node.equals(new Add(x, y)) || node.equals(new Add(y, x))); }
Example 15
Source File: ObservableMultisetTests.java From gef with Eclipse Public License 2.0 | 4 votes |
@Test public void remove_withCount() { // initialize multiset with some values observable.add(1, 1); observable.add(2, 2); observable.add(3, 3); // prepare backup multiset Multiset<Integer> backupMultiset = HashMultiset.create(); backupMultiset.add(1, 1); backupMultiset.add(2, 2); backupMultiset.add(3, 3); check(observable, backupMultiset); // register listeners registerListeners(); // remove zero occurrences (no change expected) assertEquals(backupMultiset.remove(3, 0), observable.remove(3, 0)); check(observable, backupMultiset); checkListeners(); // remove (two occurrences of) value invalidationListener.expect(1); multisetChangeListener.addAtomicExpectation(); multisetChangeListener.addElementaryExpection(3, 2, 0); assertEquals(backupMultiset.remove(3, 2), observable.remove(3, 2)); check(observable, backupMultiset); checkListeners(); // remove more occurrences than contained (change contains fewer // occurrences) invalidationListener.expect(1); multisetChangeListener.addAtomicExpectation(); multisetChangeListener.addElementaryExpection(3, 1, 0); assertEquals(backupMultiset.remove(3, 2), observable.remove(3, 2)); check(observable, backupMultiset); checkListeners(); // remove not contained value (no change expected) assertEquals(backupMultiset.remove(3, 1), observable.remove(3, 1)); check(observable, backupMultiset); checkListeners(); }
Example 16
Source File: ImportSystemOutputToAnnotationStore.java From tac-kbp-eal with MIT License | 4 votes |
private static void importSystemOutputToAnnotationStore(Set<SystemOutputStore> argumentStores, Set<AnnotationStore> annotationStores, Function<DocumentSystemOutput, DocumentSystemOutput> filter, Predicate<Symbol> docIdFilter) throws IOException { log.info("Loading system outputs from {}", StringUtils.unixNewlineJoiner().join(argumentStores)); log.info("Using assessment stores at {}", StringUtils.unixNewlineJoiner().join(annotationStores)); final Multiset<AnnotationStore> totalNumAdded = HashMultiset.create(); final Multiset<AnnotationStore> totalAlreadyThere = HashMultiset.create(); for (final SystemOutputStore systemOutput : argumentStores) { log.info("Processing system output from {}", systemOutput); for (final Symbol docid : filter(systemOutput.docIDs(), docIdFilter)) { final DocumentSystemOutput docOutput = filter.apply(systemOutput.read(docid)); log.info("Processing {} responses for document {}", docid, docOutput.arguments().size()); for (final AnnotationStore annStore : annotationStores) { final AnswerKey currentAnnotation = annStore.readOrEmpty(docid); final int numAnnotatedResponsesInCurrentAnnotation = currentAnnotation.annotatedResponses().size(); final int numUnannotatedResponsesInCurrentAnnotation = currentAnnotation.unannotatedResponses().size(); final AnswerKey newAnswerKey = currentAnnotation.copyAddingPossiblyUnannotated( docOutput.arguments().responses()); final int numAdded = newAnswerKey.unannotatedResponses().size() - numUnannotatedResponsesInCurrentAnnotation; final int numAlreadyKnown = docOutput.arguments().responses().size() - numAdded; log.info( "Annotation store {} has {} annotated and {} unannotated; added {} for assessment", annStore, numAnnotatedResponsesInCurrentAnnotation, numUnannotatedResponsesInCurrentAnnotation, numAdded); annStore.write(newAnswerKey); totalNumAdded.add(annStore, numAdded); totalAlreadyThere.add(annStore, numAlreadyKnown); } } } log.info("Total number of responses added: {}", totalNumAdded); log.info("Total number of responses already known: {}", totalAlreadyThere); }
Example 17
Source File: ObservableMultisetTests.java From gef with Eclipse Public License 2.0 | 4 votes |
@Test public void replaceAll() { // initialize multiset with some values observable.add(1, 1); observable.add(2, 2); observable.add(3, 3); observable.add(4, 4); // prepare backup multiset Multiset<Integer> backupMultiset = HashMultiset.create(); backupMultiset.add(1, 1); backupMultiset.add(2, 2); backupMultiset.add(3, 3); backupMultiset.add(4, 4); check(observable, backupMultiset); // register listeners registerListeners(); // replaceAll invalidationListener.expect(1); multisetChangeListener.addAtomicExpectation(); multisetChangeListener.addElementaryExpection(2, 1, 0); // decrease // count multisetChangeListener.addElementaryExpection(4, 4, 0); // remove multisetChangeListener.addElementaryExpection(3, 0, 3); // increase // count multisetChangeListener.addElementaryExpection(5, 0, 5); // add Multiset<Integer> toReplace = HashMultiset.create(); toReplace.add(1); toReplace.add(2, 1); toReplace.add(3, 6); toReplace.add(5, 5); observable.replaceAll(toReplace); backupMultiset.clear(); backupMultiset.addAll(toReplace); check(observable, backupMultiset); checkListeners(); // replace with same contents (should not have any effect) invalidationListener.expect(0); observable.replaceAll(toReplace); check(observable, backupMultiset); checkListeners(); }
Example 18
Source File: BgpPeerConfigurationAnswererTest.java From batfish with Apache License 2.0 | 4 votes |
@Test public void testAnswer() { MockSpecifierContext ctxt = MockSpecifierContext.builder().setConfigs(ImmutableMap.of("c", _c)).build(); Multiset<Row> rows = BgpPeerConfigurationAnswerer.getAnswerRows( ctxt, new NameNodeSpecifier("c"), BgpPeerConfigurationAnswerer.createTableMetadata( new BgpPeerConfigurationQuestion(null, BgpPeerPropertySpecifier.ALL)) .toColumnMap(), BgpPeerPropertySpecifier.ALL); Node node = new Node("c"); Multiset<Row> expected = HashMultiset.create(); expected.add( Row.builder() .put(COL_NODE, node) .put(COL_VRF, "v") .put(COL_REMOTE_IP, new SelfDescribingObject(Schema.IP, Ip.parse("2.2.2.2"))) .put(getColumnName(LOCAL_AS), 100L) .put(COL_LOCAL_INTERFACE, null) .put(getColumnName(REMOTE_AS), LongSpace.of(200L).toString()) .put(getColumnName(LOCAL_IP), Ip.parse("1.1.1.1")) .put(getColumnName(CONFEDERATION), 1L) .put(getColumnName(IS_PASSIVE), false) .put(getColumnName(ROUTE_REFLECTOR_CLIENT), false) .put(getColumnName(CLUSTER_ID), null) .put(getColumnName(PEER_GROUP), "g1") .put(getColumnName(IMPORT_POLICY), ImmutableSet.of("p1")) .put(getColumnName(EXPORT_POLICY), ImmutableSet.of("p2")) .put(getColumnName(SEND_COMMUNITY), false) .build()); expected.add( Row.builder() .put(COL_NODE, node) .put(COL_VRF, "v") .put(getColumnName(LOCAL_AS), 100L) .put(COL_LOCAL_INTERFACE, null) .put( COL_REMOTE_IP, new SelfDescribingObject(Schema.PREFIX, Prefix.create(Ip.parse("3.3.3.0"), 24))) .put(getColumnName(REMOTE_AS), LongSpace.of(300L).toString()) .put(getColumnName(LOCAL_IP), Ip.parse("1.1.1.2")) .put(getColumnName(CONFEDERATION), 2L) .put(getColumnName(IS_PASSIVE), true) .put(getColumnName(ROUTE_REFLECTOR_CLIENT), true) .put(getColumnName(CLUSTER_ID), Ip.parse("5.5.5.5")) .put(getColumnName(PEER_GROUP), "g2") .put(getColumnName(IMPORT_POLICY), ImmutableSet.of("p3")) .put(getColumnName(EXPORT_POLICY), ImmutableSet.of("p4")) .put(getColumnName(SEND_COMMUNITY), false) .build()); expected.add( Row.builder() .put(COL_NODE, node) .put(COL_VRF, "v") .put(getColumnName(LOCAL_AS), 100L) .put(COL_LOCAL_INTERFACE, "iface") .put(COL_REMOTE_IP, null) .put(getColumnName(REMOTE_AS), LongSpace.of(400L).toString()) .put(getColumnName(LOCAL_IP), null) .put(getColumnName(CONFEDERATION), 3L) .put(getColumnName(IS_PASSIVE), false) .put(getColumnName(ROUTE_REFLECTOR_CLIENT), true) .put(getColumnName(CLUSTER_ID), Ip.parse("6.6.6.6")) .put(getColumnName(PEER_GROUP), "g3") .put(getColumnName(IMPORT_POLICY), ImmutableSet.of("p5")) .put(getColumnName(EXPORT_POLICY), ImmutableSet.of("p6")) .put(getColumnName(SEND_COMMUNITY), false) .build()); assertThat(rows, equalTo(expected)); }
Example 19
Source File: OAuthParameters.java From google-oauth-java-client with Apache License 2.0 | 4 votes |
private void putParameter(Multiset<Parameter> parameters, String key, Object value) { parameters.add(new Parameter(escape(key), value == null ? null : escape(value.toString()))); }
Example 20
Source File: BucketBalancer.java From presto with Apache License 2.0 | 4 votes |
private static Multimap<String, BucketAssignment> computeAssignmentChanges(ClusterState clusterState) { Multimap<String, BucketAssignment> sourceToAllocationChanges = HashMultimap.create(); Map<String, Long> allocationBytes = new HashMap<>(clusterState.getAssignedBytes()); Set<String> activeNodes = clusterState.getActiveNodes(); for (Distribution distribution : clusterState.getDistributionAssignments().keySet()) { // number of buckets in this distribution assigned to a node Multiset<String> allocationCounts = HashMultiset.create(); Collection<BucketAssignment> distributionAssignments = clusterState.getDistributionAssignments().get(distribution); distributionAssignments.stream() .map(BucketAssignment::getNodeIdentifier) .forEach(allocationCounts::add); int currentMin = allocationBytes.keySet().stream() .mapToInt(allocationCounts::count) .min() .getAsInt(); int currentMax = allocationBytes.keySet().stream() .mapToInt(allocationCounts::count) .max() .getAsInt(); int numBuckets = distributionAssignments.size(); int targetMin = (int) Math.floor((numBuckets * 1.0) / clusterState.getActiveNodes().size()); int targetMax = (int) Math.ceil((numBuckets * 1.0) / clusterState.getActiveNodes().size()); log.info("Distribution %s: Current bucket skew: min %s, max %s. Target bucket skew: min %s, max %s", distribution.getId(), currentMin, currentMax, targetMin, targetMax); for (String source : ImmutableSet.copyOf(allocationCounts)) { List<BucketAssignment> existingAssignments = distributionAssignments.stream() .filter(assignment -> assignment.getNodeIdentifier().equals(source)) .collect(toList()); for (BucketAssignment existingAssignment : existingAssignments) { if (activeNodes.contains(source) && allocationCounts.count(source) <= targetMin) { break; } // identify nodes with bucket counts lower than the computed target, and greedily select from this set based on projected disk utilization. // greediness means that this may produce decidedly non-optimal results if one looks at the global distribution of buckets->nodes. // also, this assumes that nodes in a cluster have identical storage capacity String target = activeNodes.stream() .filter(candidate -> !candidate.equals(source) && allocationCounts.count(candidate) < targetMax) .sorted(comparingInt(allocationCounts::count)) .min(Comparator.comparingDouble(allocationBytes::get)) .orElseThrow(() -> new VerifyException("unable to find target for rebalancing")); long bucketSize = clusterState.getDistributionBucketSize().get(distribution); // only move bucket if it reduces imbalance if (activeNodes.contains(source) && (allocationCounts.count(source) == targetMax && allocationCounts.count(target) == targetMin)) { break; } allocationCounts.remove(source); allocationCounts.add(target); allocationBytes.compute(source, (k, v) -> v - bucketSize); allocationBytes.compute(target, (k, v) -> v + bucketSize); sourceToAllocationChanges.put( existingAssignment.getNodeIdentifier(), new BucketAssignment(existingAssignment.getDistributionId(), existingAssignment.getBucketNumber(), target)); } } } return sourceToAllocationChanges; }