Sha256: cbff3fde853fb94215ce1e8ec4a2c860e4ffe98127d6b1b1d77641a23ddb43ef

Contents?: true

Size: 1.97 KB

Versions: 388

Compression:

Stored size: 1.97 KB

Contents

import unittest
from anagram import detectAnagrams

test "no matches":
  let
    word = "diaper"
    candidates = @["hello", "world", "zombies", "pants"]
    expected: seq[string] = @[]
    detected = detectAnagrams(word, candidates)
  check detected == expected

test "detect simple anagram":
  let
    word = "ant"
    candidates = @["tan", "stand", "at"]
    expected = @["tan"]
    detected = detectAnagrams(word, candidates)
  check detected == expected

test "detect multiple anagrams":
  let
    word = "master"
    candidates = @["stream", "pigeon", "maters"]
    expected = @["stream", "maters"]
    detected = detectAnagrams(word, candidates)
  check detected == expected

test "does not confuse different duplicate characters":
  let
    word = "galea"
    candidates = @["eagle"]
    expected: seq[string] = @[]
    detected = detectAnagrams(word, candidates)
  check detected == expected

test "eliminate anagram subsets":
  let
    word = "good"
    candidates = @["dog", "goody"]
    expected: seq[string] = @[]
    detected = detectAnagrams(word, candidates)
  check detected == expected

test "detect anagram":
  let
    word = "listen"
    candidates = @["enlists", "google", "inlets", "banana"]
    expected = @["inlets"]
    detected = detectAnagrams(word, candidates)
  check detected == expected

test "multiple anagrams":
  let
    word = "allergy"
    candidates = @["gallery", "ballerina", "regally", "clergy", "largely", "leading"]
    expected = @["gallery", "regally", "largely"]
    detected = detectAnagrams(word, candidates)
  check detected == expected

test "anagrams are case insensitive":
  let
    word = "Orchestra"
    candidates = @["cashregister", "Carthorse", "radishes"]
    expected = @["Carthorse"]
    detected = detectAnagrams(word, candidates)
  check detected == expected

test "same word isn't anagram":
  let
    word = "go"
    candidates = @["go", "Go", "GO"]
    expected: seq[string] = @[]
    detected = detectAnagrams(word, candidates)
  check detected == expected

Version data entries

388 entries across 388 versions & 1 rubygems

Version Path
trackler-2.2.1.172 tracks/nim/exercises/anagram/anagram_test.nim
trackler-2.2.1.171 tracks/nim/exercises/anagram/anagram_test.nim
trackler-2.2.1.170 tracks/nim/exercises/anagram/anagram_test.nim
trackler-2.2.1.169 tracks/nim/exercises/anagram/anagram_test.nim
trackler-2.2.1.167 tracks/nim/exercises/anagram/anagram_test.nim
trackler-2.2.1.166 tracks/nim/exercises/anagram/anagram_test.nim
trackler-2.2.1.165 tracks/nim/exercises/anagram/anagram_test.nim
trackler-2.2.1.164 tracks/nim/exercises/anagram/anagram_test.nim
trackler-2.2.1.163 tracks/nim/exercises/anagram/anagram_test.nim
trackler-2.2.1.162 tracks/nim/exercises/anagram/anagram_test.nim
trackler-2.2.1.161 tracks/nim/exercises/anagram/anagram_test.nim
trackler-2.2.1.160 tracks/nim/exercises/anagram/anagram_test.nim
trackler-2.2.1.159 tracks/nim/exercises/anagram/anagram_test.nim
trackler-2.2.1.158 tracks/nim/exercises/anagram/anagram_test.nim
trackler-2.2.1.157 tracks/nim/exercises/anagram/anagram_test.nim
trackler-2.2.1.156 tracks/nim/exercises/anagram/anagram_test.nim
trackler-2.2.1.155 tracks/nim/exercises/anagram/anagram_test.nim
trackler-2.2.1.154 tracks/nim/exercises/anagram/anagram_test.nim
trackler-2.2.1.153 tracks/nim/exercises/anagram/anagram_test.nim
trackler-2.2.1.152 tracks/nim/exercises/anagram/anagram_test.nim