Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: master
Fetching contributors…

Cannot retrieve contributors at this time

file 68 lines (54 sloc) 3.562 kb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
require 'specHelper'
require 'testableSpellCheck'

# For disabled tests
xit = ->

describe "Flatten", ->
    it "can flatten an empty array", ->
        same [].flat(), []

    it "can flatten an array with one array", ->
        same [['a']].flat(), ['a']

    it "can flatten an array with one array and more than one element", ->
        same [['a', 'b']].flat(), ['a', 'b']

    it "can flatten an array with many arrays and elements", ->
        same [['a', 'b'], ['c', 'd', 'e'], ['f']].flat(), ['a', 'b', 'c', 'd', 'e', 'f']

    it "ignores empty subarrays", ->
        same [['a', 'b'], [], ['c', 'd', 'e'], [], ['f']].flat(),
        ['a', 'b', 'c', 'd', 'e', 'f']

    it "will arrays of arrays of arrays will become arrays of arrays (not recursive)", ->
        same [[['a', 'b']], ['c']].flat(), [['a', 'b'], 'c']

describe "Spellcheck", ->
    it 'can split string into words just fine', ->
        same words("a test"), ["a", "test"]
        same words("one two three one"), ["one", "two", "three", "one"]

    it "can train a dictionary based on words", ->
        same train(words("one two three one")), { one: 3, two: 2, three: 2}



    it "can get edits1 correct", ->
        same edits1('a'), ['', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l',
        'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'aa', 'ba',
        'ca', 'da', 'ea', 'fa', 'ga', 'ha', 'ia', 'ja', 'ka', 'la', 'ma', 'na', 'oa',
        'pa', 'qa', 'ra', 'sa', 'ta', 'ua', 'va', 'wa', 'xa', 'ya', 'za', 'aa', 'ab',
        'ac', 'ad', 'ae', 'af', 'ag', 'ah', 'ai', 'aj', 'ak', 'al', 'am', 'an', 'ao',
        'ap', 'aq', 'ar', 'as', 'at', 'au', 'av', 'aw', 'ax', 'ay', 'az']

    it "can get edits1 correct for the empty string", ->
        same edits1(''), ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',
        'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']

    it "can get edits1 correct for a 3 letter word", ->
        same edits1('law'), ['aw', 'lw', 'la', 'alw', 'lwa', 'aaw', 'baw', 'caw', 'daw',
        'eaw', 'faw', 'gaw', 'haw', 'iaw', 'jaw', 'kaw', 'law', 'maw', 'naw', 'oaw',
        'paw', 'qaw', 'raw', 'saw', 'taw', 'uaw', 'vaw', 'waw', 'xaw', 'yaw', 'zaw',
        'law', 'lbw', 'lcw', 'ldw', 'lew', 'lfw', 'lgw', 'lhw', 'liw', 'ljw', 'lkw',
        'llw', 'lmw', 'lnw', 'low', 'lpw', 'lqw', 'lrw', 'lsw', 'ltw', 'luw', 'lvw',
        'lww', 'lxw', 'lyw', 'lzw', 'laa', 'lab', 'lac', 'lad', 'lae', 'laf', 'lag',
        'lah', 'lai', 'laj', 'lak', 'lal', 'lam', 'lan', 'lao', 'lap', 'laq', 'lar',
        'las', 'lat', 'lau', 'lav', 'law', 'lax', 'lay', 'laz', 'alaw', 'blaw', 'claw',
        'dlaw', 'elaw', 'flaw', 'glaw', 'hlaw', 'ilaw', 'jlaw', 'klaw', 'llaw', 'mlaw',
        'nlaw', 'olaw', 'plaw', 'qlaw', 'rlaw', 'slaw', 'tlaw', 'ulaw', 'vlaw', 'wlaw',
        'xlaw', 'ylaw', 'zlaw', 'laaw', 'lbaw', 'lcaw', 'ldaw', 'leaw', 'lfaw', 'lgaw',
        'lhaw', 'liaw', 'ljaw', 'lkaw', 'llaw', 'lmaw', 'lnaw', 'loaw', 'lpaw', 'lqaw',
        'lraw', 'lsaw', 'ltaw', 'luaw', 'lvaw', 'lwaw', 'lxaw', 'lyaw', 'lzaw', 'laaw',
        'labw', 'lacw', 'ladw', 'laew', 'lafw', 'lagw', 'lahw', 'laiw', 'lajw', 'lakw',
        'lalw', 'lamw', 'lanw', 'laow', 'lapw', 'laqw', 'larw', 'lasw', 'latw', 'lauw',
        'lavw', 'laww', 'laxw', 'layw', 'lazw', 'lawa', 'lawb', 'lawc', 'lawd', 'lawe',
        'lawf', 'lawg', 'lawh', 'lawi', 'lawj', 'lawk', 'lawl', 'lawm', 'lawn', 'lawo',
        'lawp', 'lawq', 'lawr', 'laws', 'lawt', 'lawu', 'lawv', 'laww', 'lawx', 'lawy',
        'lawz']
Something went wrong with that request. Please try again.