Sha256: a9777980fa072150d38eb394dc0aac92a24f48b9236741b2f02af67a9295a71e

Contents?: true

Size: 1.47 KB

Versions: 14

Compression:

Stored size: 1.47 KB

Contents

import ceylon.test { ... }

// Tests adapted from problem-specifications version 1.2.0
{[String, {String*}, {String*}]*} cases => {
  // no matches
  ["diaper", {"hello", "world", "zombies", "pants"}, {}],
  // 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 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 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

14 entries across 14 versions & 1 rubygems

Version Path
trackler-2.2.1.116 tracks/ceylon/exercises/anagram/source/anagram/AnagramTest.ceylon
trackler-2.2.1.115 tracks/ceylon/exercises/anagram/source/anagram/AnagramTest.ceylon
trackler-2.2.1.114 tracks/ceylon/exercises/anagram/source/anagram/AnagramTest.ceylon
trackler-2.2.1.113 tracks/ceylon/exercises/anagram/source/anagram/AnagramTest.ceylon
trackler-2.2.1.111 tracks/ceylon/exercises/anagram/source/anagram/AnagramTest.ceylon
trackler-2.2.1.110 tracks/ceylon/exercises/anagram/source/anagram/AnagramTest.ceylon
trackler-2.2.1.109 tracks/ceylon/exercises/anagram/source/anagram/AnagramTest.ceylon
trackler-2.2.1.108 tracks/ceylon/exercises/anagram/source/anagram/AnagramTest.ceylon
trackler-2.2.1.107 tracks/ceylon/exercises/anagram/source/anagram/AnagramTest.ceylon
trackler-2.2.1.106 tracks/ceylon/exercises/anagram/source/anagram/AnagramTest.ceylon
trackler-2.2.1.105 tracks/ceylon/exercises/anagram/source/anagram/AnagramTest.ceylon
trackler-2.2.1.104 tracks/ceylon/exercises/anagram/source/anagram/AnagramTest.ceylon
trackler-2.2.1.103 tracks/ceylon/exercises/anagram/source/anagram/AnagramTest.ceylon
trackler-2.2.1.102 tracks/ceylon/exercises/anagram/source/anagram/AnagramTest.ceylon