Sha256: 452f21d4f33629b8c4074404f8af8b75e5b089e1653567f6796f9b53aca5a335

Contents?: true

Size: 1.24 KB

Versions: 23

Compression:

Stored size: 1.24 KB

Contents

import ceylon.test { ... }

// Tests adapted from problem-specifications version 2.1.0
{[String, String, Integer?]*} cases => {
  // identical strands
  ["A", "A", 0],
  // long identical strands
  ["GGACTGA", "GGACTGA", 0],
  // complete distance in single nucleotide strands
  ["A", "G", 1],
  // complete distance in small strands
  ["AG", "CT", 2],
  // small distance in small strands
  ["AT", "CT", 1],
  // small distance
  ["GGACG", "GGTCG", 1],
  // small distance in long strands
  ["ACCAGGG", "ACTATGG", 2],
  // non-unique character in first strand
  ["AAG", "AAA", 1],
  // non-unique character in second strand
  ["AAA", "AAG", 1],
  // same nucleotides in different positions
  ["TAG", "GAT", 2],
  // large distance
  ["GATACA", "GCATAA", 4],
  // large distance in off-by-one strand
  ["GGACGGATTCTG", "AGGACGGATTCT", 9],
  // empty strands
  ["", "", 0],
  // disallow first strand longer
  ["AATG", "AAA", null],
  // disallow second strand longer
  ["ATA", "AGTG", null]
};

test
parameters(`value cases`)
void testHamming(String s1, String s2, Integer? expected) {
  value result = distance(s1, s2);
  if (exists expected) {
    assertEquals(result, expected);
  } else if (!is Error result) {
    fail("should have errored, but got ``result``");
  }
}

Version data entries

23 entries across 23 versions & 1 rubygems

Version Path
trackler-2.2.1.116 tracks/ceylon/exercises/hamming/source/hamming/HammingTest.ceylon
trackler-2.2.1.115 tracks/ceylon/exercises/hamming/source/hamming/HammingTest.ceylon
trackler-2.2.1.114 tracks/ceylon/exercises/hamming/source/hamming/HammingTest.ceylon
trackler-2.2.1.113 tracks/ceylon/exercises/hamming/source/hamming/HammingTest.ceylon
trackler-2.2.1.111 tracks/ceylon/exercises/hamming/source/hamming/HammingTest.ceylon
trackler-2.2.1.110 tracks/ceylon/exercises/hamming/source/hamming/HammingTest.ceylon
trackler-2.2.1.109 tracks/ceylon/exercises/hamming/source/hamming/HammingTest.ceylon
trackler-2.2.1.108 tracks/ceylon/exercises/hamming/source/hamming/HammingTest.ceylon
trackler-2.2.1.107 tracks/ceylon/exercises/hamming/source/hamming/HammingTest.ceylon
trackler-2.2.1.106 tracks/ceylon/exercises/hamming/source/hamming/HammingTest.ceylon
trackler-2.2.1.105 tracks/ceylon/exercises/hamming/source/hamming/HammingTest.ceylon
trackler-2.2.1.104 tracks/ceylon/exercises/hamming/source/hamming/HammingTest.ceylon
trackler-2.2.1.103 tracks/ceylon/exercises/hamming/source/hamming/HammingTest.ceylon
trackler-2.2.1.102 tracks/ceylon/exercises/hamming/source/hamming/HammingTest.ceylon
trackler-2.2.1.101 tracks/ceylon/exercises/hamming/source/hamming/HammingTest.ceylon
trackler-2.2.1.100 tracks/ceylon/exercises/hamming/source/hamming/HammingTest.ceylon
trackler-2.2.1.99 tracks/ceylon/exercises/hamming/source/hamming/HammingTest.ceylon
trackler-2.2.1.98 tracks/ceylon/exercises/hamming/source/hamming/HammingTest.ceylon
trackler-2.2.1.97 tracks/ceylon/exercises/hamming/source/hamming/HammingTest.ceylon
trackler-2.2.1.96 tracks/ceylon/exercises/hamming/source/hamming/HammingTest.ceylon