From 1fa9872ad4683de387b2594ed25677cf3fd99309 Mon Sep 17 00:00:00 2001 From: sanine Date: Sun, 25 Jun 2023 00:06:43 -0500 Subject: add protein --- src/protein/protein.test.js | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 src/protein/protein.test.js (limited to 'src/protein/protein.test.js') 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(); +}); -- cgit v1.2.1