From 17f656495b1fcb0528ef65ec4ea8d41cfe2913b3 Mon Sep 17 00:00:00 2001 From: Sonia Keys Date: Sat, 7 Feb 2015 15:23:44 -0500 Subject: [PATCH] add hamming.json --- hamming.json | 100 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 hamming.json diff --git a/hamming.json b/hamming.json new file mode 100644 index 0000000000..5d7efd8c1e --- /dev/null +++ b/hamming.json @@ -0,0 +1,100 @@ +{ + "#": [ + "Language implementations vary on the issue of unequal length strands.", + "A language may elect to simplify this task by only presenting equal", + "length test cases. For languages handling unequal length strands as", + "error condition, unequal length test cases are included here and are", + "indicated with an expected value of -1. Note however that -1 is", + "simply an indication here in the JSON. Actually returning -1 from", + "a hamming distance function may or may not be idiomatic in a languge.", + "Language idioms of errors or exceptions should be followed.", + "Alternative interpretations such as ignoring excess length at the end", + "are not represented here." + ], + "cases": [ + { + "description": "identical strands", + "strand1": "A", + "strand2": "A", + "expected": 0 + }, + { + "description": "long identical strands", + "strand1": "GGACTGA", + "strand2": "GGACTGA", + "expected": 0 + }, + { + "description": "complete distance in single nucleotide strands", + "strand1": "A", + "strand2": "G", + "expected": 1 + }, + { + "description": "complete distance in small strands", + "strand1": "AG", + "strand2": "CT", + "expected": 2 + }, + { + "description": "small distance in small strands", + "strand1": "AT", + "strand2": "CT", + "expected": 1 + }, + { + "description": "small distance", + "strand1": "GGACG", + "strand2": "GGTCG", + "expected": 1 + }, + { + "description": "small distance in long strands", + "strand1": "ACCAGGG", + "strand2": "ACTATGG", + "expected": 2 + }, + { + "description": "non-unique character in first strand", + "strand1": "AGA", + "strand2": "AGG", + "expected": 1 + }, + { + "description": "non-unique character in second strand", + "strand1": "AGG", + "strand2": "AGA", + "expected": 1 + }, + { + "description": "large distance", + "strand1": "GATACA", + "strand2": "GCATAA", + "expected": 4 + }, + { + "description": "large distance in off-by-one strand", + "strand1": "GGACGGATTCTG", + "strand2": "AGGACGGATTCT", + "expected": 9 + }, + { + "description": "empty strands", + "strand1": "", + "strand2": "", + "expected": 0 + }, + { + "description": "disallow first strand longer", + "strand1": "AATG", + "strand2": "AAA", + "expected": -1 + }, + { + "description": "disallow second strand longer", + "strand1": "ATA", + "strand2": "AGTG", + "expected": -1 + } + ] +}