• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

ljacqu / wordeval / 14552398690

19 Apr 2025 07:59PM UTC coverage: 52.924% (+2.3%) from 50.591%
14552398690

push

github

ljacqu
Write sanitizer tests that don't require the dictionary file

268 of 576 branches covered (46.53%)

1 of 2 new or added lines in 1 file covered. (50.0%)

36 existing lines in 9 files now uncovered.

724 of 1368 relevant lines covered (52.92%)

3.06 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

44.0
/src/main/java/ch/jalu/wordeval/evaluators/impl/FullPalindromes.java
1
package ch.jalu.wordeval.evaluators.impl;
2

3
import ch.jalu.wordeval.dictionary.Word;
4
import ch.jalu.wordeval.evaluators.PostEvaluator;
5
import ch.jalu.wordeval.evaluators.export.EvaluatorExportUtil;
6
import ch.jalu.wordeval.evaluators.processing.AllWordsEvaluatorProvider;
7
import ch.jalu.wordeval.evaluators.result.WordWithKey;
8
import ch.jalu.wordeval.evaluators.result.WordWithScore;
9
import com.google.common.collect.ListMultimap;
10
import lombok.Getter;
11

12
import java.util.ArrayList;
13
import java.util.Comparator;
14
import java.util.HashSet;
15
import java.util.List;
16
import java.util.Set;
17

18
/**
19
 * Evaluator that finds proper palindromes based on the results of the
20
 * {@link Palindromes} evaluator, which also matches parts of a word (e.g.
21
 * "ette" in "better").
22
 */
23
public class FullPalindromes implements PostEvaluator {
2✔
24

25
  @Getter
6✔
26
  private final List<WordWithScore> results = new ArrayList<>();
27

28
  @Override
29
  public void evaluate(AllWordsEvaluatorProvider allWordsEvaluatorProvider) {
30
    List<WordWithKey> palindromeResults =
2✔
31
        allWordsEvaluatorProvider.getEvaluator(Palindromes.class).getResults();
4✔
32

33
    for (WordWithKey entry : palindromeResults) {
10✔
34
      Word word = entry.getWord();
3✔
35
      int wordLength = word.getWithoutAccentsWordCharsOnly().length();
4✔
36
      if (wordLength == entry.getKey().length()) {
5✔
37
        results.add(new WordWithScore(word, wordLength));
10✔
38
      }
39
    }
1✔
40
  }
1✔
41

42
  @Override
43
  public String getId() {
44
    return "palindromes.full";
×
45
  }
46

47
  @Override
48
  public ListMultimap<Object, Object> getTopResults(int topScores, int maxLimit) {
49
    List<WordWithScore> sortedResult = results.stream()
×
50
        .sorted(Comparator.comparing(WordWithScore::getScore).reversed())
×
51
        .toList();
×
52

UNCOV
53
    Set<Double> uniqueValues = new HashSet<>();
×
54
    ListMultimap<Object, Object> filteredResults = EvaluatorExportUtil.newListMultimap();
×
55
    for (WordWithScore wordWithScore : sortedResult) {
×
56
      if (uniqueValues.add(wordWithScore.getScore()) && uniqueValues.size() > topScores) {
×
UNCOV
57
        break;
×
58
      }
UNCOV
59
      filteredResults.put((int) wordWithScore.getScore(), wordWithScore.getWord().getRaw());
×
60
      if (filteredResults.size() >= maxLimit) {
×
UNCOV
61
        break;
×
62
      }
UNCOV
63
    }
×
64

UNCOV
65
    return filteredResults;
×
66
  }
67
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc