summaryrefslogtreecommitdiff
path: root/src/protein/protein.test.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/protein/protein.test.js')
-rw-r--r--src/protein/protein.test.js29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/protein/protein.test.js b/src/protein/protein.test.js
new file mode 100644
index 0000000..61c4896
--- /dev/null
+++ b/src/protein/protein.test.js
@@ -0,0 +1,29 @@
+'use strict';
+
+import { compare } from './protein';
+
+test('compare size-1 proteins', () => {
+ expect(compare([0], [0])).toBe(1);
+ expect(compare([0], [1])).toBe(0);
+ expect(compare([1], [0])).toBe(0);
+ expect(compare([1], [1])).toBe(1);
+});
+
+
+test('compare larger proteins', () => {
+ expect(compare([0,0], [0,0])).toBe(1);
+ expect(compare([1,1], [1,1])).toBe(1);
+ expect(compare([0,1], [1,1])).toBeCloseTo(0.5);
+ expect(compare([0,1,0], [1,1,1])).toBeCloseTo(1/3);
+ expect(compare([0,1,0,1], [1,1,1,1])).toBeCloseTo(0.5);
+ expect(compare([0,1,0,1], [0,1,1,1])).toBeCloseTo(0.75);
+ expect(compare([0,1,0,1], [0,1,1,0])).toBeCloseTo(0.5);
+ expect(compare([0,1,0,0], [0,1,1,0])).toBeCloseTo(0.75);
+ expect(compare([0,1,1,0], [0,1,1,0])).toBeCloseTo(1);
+});
+
+
+test('comparisons between differently-sized proteins throw', () => {
+ expect(() => compare([0], [0, 0])).toThrow();
+ expect(() => compare([0, 0], [0])).toThrow();
+});