Sha256: 1c8fd4189ee0543593e5f2513b195fd914a6a9e834d70232a0dff1d5d327275c

Contents?: true

Size: 1.78 KB

Versions: 105

Compression:

Stored size: 1.78 KB

Contents

import ceylon.test { ... }

// Tests adapted from x-common version 1.0.1
{[String, {String*}, {String*}]*} cases => {
  // no matches
  ["diaper", {"hello", "world", "zombies", "pants"}, {}],
  // detects simple anagram
  ["ant", {"tan", "stand", "at"}, {"tan"}],
  // does not detect false positives
  ["galea", {"eagle"}, {}],
  // detects two anagrams
  ["master", {"stream", "pigeon", "maters"}, {"stream", "maters"}],
  // does not detect anagram subsets
  ["good", {"dog", "goody"}, {}],
  // detects anagram
  ["listen", {"enlists", "google", "inlets", "banana"}, {"inlets"}],
  // detects three anagrams
  [
    "allergy",
    {"gallery", "ballerina", "regally", "clergy", "largely", "leading"},
    {"gallery", "regally", "largely"}
  ],
  // does not detect identical words
  ["corn", {"corn", "dark", "Corn", "rank", "CORN", "cron", "park"}, {"cron"}],
  // does not detect non-anagrams with identical checksum
  ["mass", {"last"}, {}],
  // detects anagrams case-insensitively
  ["Orchestra", {"cashregister", "Carthorse", "radishes"}, {"Carthorse"}],
  // detects anagrams using case-insensitive subject
  ["Orchestra", {"cashregister", "carthorse", "radishes"}, {"carthorse"}],
  // detects anagrams using case-insensitive possible matches
  ["orchestra", {"cashregister", "Carthorse", "radishes"}, {"Carthorse"}],
  // does not detect a word as its own anagram
  ["banana", {"Banana"}, {}],
  // does not detect a anagram if the original word is repeated
  ["go", {"go Go GO"}, {}],
  // anagrams must use all letters exactly once
  ["tapper", {"patter"}, {}],
  // capital word is not own anagram
  ["BANANA", {"Banana"}, {}]
};

test
parameters(`value cases`)
void testAnagram(String subject, {String*} candidates, {String*} expected) {
  assertEquals(sort(anagrams(subject, candidates)), sort(expected));
}

Version data entries

105 entries across 105 versions & 1 rubygems

Version Path
trackler-2.2.1.30 tracks/ceylon/exercises/anagram/source/anagram/AnagramTest.ceylon
trackler-2.2.1.29 tracks/ceylon/exercises/anagram/source/anagram/AnagramTest.ceylon
trackler-2.2.1.28 tracks/ceylon/exercises/anagram/source/anagram/AnagramTest.ceylon
trackler-2.2.1.27 tracks/ceylon/exercises/anagram/source/anagram/AnagramTest.ceylon
trackler-2.2.1.26 tracks/ceylon/exercises/anagram/source/anagram/AnagramTest.ceylon
trackler-2.2.1.25 tracks/ceylon/exercises/anagram/source/anagram/AnagramTest.ceylon
trackler-2.2.1.24 tracks/ceylon/exercises/anagram/source/anagram/AnagramTest.ceylon
trackler-2.2.1.23 tracks/ceylon/exercises/anagram/source/anagram/AnagramTest.ceylon
trackler-2.2.1.22 tracks/ceylon/exercises/anagram/source/anagram/AnagramTest.ceylon
trackler-2.2.1.21 tracks/ceylon/exercises/anagram/source/anagram/AnagramTest.ceylon
trackler-2.2.1.20 tracks/ceylon/exercises/anagram/source/anagram/AnagramTest.ceylon
trackler-2.2.1.19 tracks/ceylon/exercises/anagram/source/anagram/AnagramTest.ceylon
trackler-2.2.1.18 tracks/ceylon/exercises/anagram/source/anagram/AnagramTest.ceylon
trackler-2.2.1.17 tracks/ceylon/exercises/anagram/source/anagram/AnagramTest.ceylon
trackler-2.2.1.16 tracks/ceylon/exercises/anagram/source/anagram/AnagramTest.ceylon
trackler-2.2.1.15 tracks/ceylon/exercises/anagram/source/anagram/AnagramTest.ceylon
trackler-2.2.1.14 tracks/ceylon/exercises/anagram/source/anagram/AnagramTest.ceylon
trackler-2.2.1.13 tracks/ceylon/exercises/anagram/source/anagram/AnagramTest.ceylon
trackler-2.2.1.12 tracks/ceylon/exercises/anagram/source/anagram/AnagramTest.ceylon
trackler-2.2.1.11 tracks/ceylon/exercises/anagram/source/anagram/AnagramTest.ceylon