'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(); });