public @Nonnull Metrics build() { return new Metrics( _aggregations, _emptyColumns, _majorIssueConfigs, _numExcludedRows, _numRows); }
private Set<IssueSettingsId> getOrCreateIssueSettingsIds( NetworkId networkId, AnswerMetadata baseAnswerMetadata) throws IOException { Metrics metrics = baseAnswerMetadata.getMetrics(); if (metrics == null) { return ImmutableSet.of(); } ImmutableSet.Builder<IssueSettingsId> ids = ImmutableSet.builder(); for (String majorIssueType : metrics.getMajorIssueConfigs().keySet()) { ids.add(getOrCreateIssueSettingsId(networkId, majorIssueType)); } return ids.build(); }
Set<String> emptyColumns = computeEmptyColumns(table); Map<String, MajorIssueConfig> majorIssueTypes = computeMajorIssueConfigs(table); return Metrics.builder() .setAggregations(columnAggregationResults) .setEmptyColumns(emptyColumns)
AnswerMetadata.builder() .setMetrics( Metrics.builder() .setAggregations( ImmutableMap.of("A", ImmutableMap.of(Aggregation.MAX, 1))) AnswerMetadata.builder() .setMetrics( Metrics.builder() .setAggregations( ImmutableMap.of("A", ImmutableMap.of(Aggregation.MAX, 1))) AnswerMetadata.builder() .setMetrics( Metrics.builder() .setAggregations( ImmutableMap.of("A", ImmutableMap.of(Aggregation.MAX, 1)))
@Test public void testEquals() { Metrics.Builder builder = Metrics.builder(); Metrics group1Elem1 = builder.build(); Metrics group1Elem2 = builder.build(); Metrics group2Elem1 = builder .setAggregations(ImmutableMap.of("a", ImmutableMap.of(Aggregation.MAX, "A"))) .build(); Metrics group3Elem1 = builder.setEmptyColumns(ImmutableSet.of("b")).build(); Metrics group4Elem1 = builder .setMajorIssueConfigs( ImmutableMap.of("c", new MajorIssueConfig("m", ImmutableList.of()))) .build(); Metrics group5Elem1 = builder.setNumExcludedRows(5).build(); Metrics group6Elem1 = builder.setNumRows(3).build(); new EqualsTester() .addEqualityGroup(group1Elem1, group1Elem2) .addEqualityGroup(group2Elem1) .addEqualityGroup(group3Elem1) .addEqualityGroup(group4Elem1) .addEqualityGroup(group5Elem1) .addEqualityGroup(group6Elem1) .testEquals(); } }
} else { rebuildFinalAnswerAndMetadata( metrics.getMajorIssueConfigs(), networkId, snapshotId,
@JsonCreator private static @Nonnull Metrics create( @JsonProperty(BfConsts.PROP_AGGREGATIONS) Map<String, Map<Aggregation, Object>> aggregations, @JsonProperty(BfConsts.PROP_EMPTY_COLUMNS) Set<String> emptyColumns, @JsonProperty(BfConsts.PROP_MAJOR_ISSUE_CONFIGS) Map<String, MajorIssueConfig> majorIssueConfigs, @JsonProperty(BfConsts.PROP_NUM_EXCLUDED_ROWS) int numExcludedRows, @JsonProperty(BfConsts.PROP_NUM_ROWS) int numRows) { return new Metrics( firstNonNull(aggregations, ImmutableMap.of()), firstNonNull(emptyColumns, ImmutableSet.of()), firstNonNull(majorIssueConfigs, ImmutableMap.of()), numExcludedRows, numRows); }
@Test public void testComputeAnswerMetadataInapplicable() throws IOException { String columnName = "col"; List<Integer> value = ImmutableList.of(5); Answer testAnswer = new Answer(); testAnswer.addAnswerElement( new TableAnswerElement( new TableMetadata( ImmutableList.of( new ColumnMetadata(columnName, Schema.list(Schema.INTEGER), "foobar")), new DisplayHints().getTextDesc())) .addRow(Row.of(columnName, value))); testAnswer.setStatus(AnswerStatus.SUCCESS); assertThat( AnswerMetadataUtil.computeAnswerMetadata(testAnswer, _logger), equalTo( AnswerMetadata.builder() .setMetrics(Metrics.builder().setNumRows(1).build()) .setStatus(AnswerStatus.SUCCESS) .build())); }
AnswerMetadata.builder() .setMetrics( Metrics.builder() .setAggregations( ImmutableMap.of(
@Test public void testEquals() { AnswerMetadata.Builder builder = AnswerMetadata.builder().setStatus(AnswerStatus.SUCCESS); AnswerMetadata group1Elem1 = builder.build(); AnswerMetadata group1Elem2 = builder.build(); AnswerMetadata group1Elem3 = AnswerMetadata.forStatus(AnswerStatus.SUCCESS); AnswerMetadata group2Elem1 = builder.setMetrics(Metrics.builder().setNumRows(5).build()).build(); AnswerMetadata group3Elem1 = builder.setStatus(AnswerStatus.FAILURE).build(); new EqualsTester() .addEqualityGroup(group1Elem1, group1Elem2, group1Elem3) .addEqualityGroup(group2Elem1) .addEqualityGroup(group3Elem1) .testEquals(); } }