Sha256: 8c3b9041892decc957ff24a3b4fea5749ac69c2f1baf5f5946159d3191780651

Contents?: true

Size: 1.64 KB

Versions: 200

Compression:

Stored size: 1.64 KB

Contents

local compute = require('hamming').compute

describe('hamming', function ()
  it('identical strands', function ()
    assert.are.equal(0, compute('A', 'A'))
  end)

  it('long identical strands', function ()
    assert.are.equal(0, compute('GGACTGA', 'GGACTGA'))
  end)

  it('complete distance in single nucleotide strands', function ()
    assert.are.equal(1, compute('A', 'G'))
  end)

  it('complete distance in small strands', function ()
    assert.are.equal(2, compute('AG', 'CT'))
  end)

  it('small distance in small strands', function ()
    assert.are.equal(1, compute('AT', 'CT'))
  end)

  it('small distance', function ()
    assert.are.equal(1, compute('GGACG', 'GGTCG'))
  end)

  it('small distance in long strands', function ()
    assert.are.equal(2, compute('ACCAGGG', 'ACTATGG'))
  end)

  it('non unique character in first strand', function ()
    assert.are.equal(1, compute('AGA', 'AGG'))
  end)

  it('non unique character in second strand', function ()
    assert.are.equal(1, compute('AGG', 'AGA'))
  end)

  it('same nucleotides in different positions', function ()
    assert.are.equal(2, compute('TAG', 'GAT'))
  end)

  it('large distance', function ()
    assert.are.equal(4, compute('GATACA', 'GCATAA'))
  end)

  it('large distance in off-by-one strand', function ()
    assert.are.equal(9, compute('GGACGGATTCTG', 'AGGACGGATTCT'))
  end)

  it('empty strands', function ()
    assert.are.equal(0, compute('', ''))
  end)

  it('disallow first strand longer', function ()
    assert.are.equal(-1, compute('AATG', 'AAA'))
  end)

  it('disallow second strand longer', function ()
    assert.are.equal(-1, compute('ATA', 'AGTG'))
  end)
end)

Version data entries

200 entries across 200 versions & 1 rubygems

Version Path
trackler-2.2.1.119 tracks/lua/exercises/hamming/hamming_spec.lua
trackler-2.2.1.118 tracks/lua/exercises/hamming/hamming_spec.lua
trackler-2.2.1.117 tracks/lua/exercises/hamming/hamming_spec.lua
trackler-2.2.1.116 tracks/lua/exercises/hamming/hamming_spec.lua
trackler-2.2.1.115 tracks/lua/exercises/hamming/hamming_spec.lua
trackler-2.2.1.114 tracks/lua/exercises/hamming/hamming_spec.lua
trackler-2.2.1.113 tracks/lua/exercises/hamming/hamming_spec.lua
trackler-2.2.1.111 tracks/lua/exercises/hamming/hamming_spec.lua
trackler-2.2.1.110 tracks/lua/exercises/hamming/hamming_spec.lua
trackler-2.2.1.109 tracks/lua/exercises/hamming/hamming_spec.lua
trackler-2.2.1.108 tracks/lua/exercises/hamming/hamming_spec.lua
trackler-2.2.1.107 tracks/lua/exercises/hamming/hamming_spec.lua
trackler-2.2.1.106 tracks/lua/exercises/hamming/hamming_spec.lua
trackler-2.2.1.105 tracks/lua/exercises/hamming/hamming_spec.lua
trackler-2.2.1.104 tracks/lua/exercises/hamming/hamming_spec.lua
trackler-2.2.1.103 tracks/lua/exercises/hamming/hamming_spec.lua
trackler-2.2.1.102 tracks/lua/exercises/hamming/hamming_spec.lua
trackler-2.2.1.101 tracks/lua/exercises/hamming/hamming_spec.lua
trackler-2.2.1.100 tracks/lua/exercises/hamming/hamming_spec.lua
trackler-2.2.1.99 tracks/lua/exercises/hamming/hamming_spec.lua