56 lines
1.2 KiB
TypeScript
56 lines
1.2 KiB
TypeScript
import { describe, expect, it } from '@jest/globals'
|
|
import { nucleotideCounts } from './nucleotide-count.ts'
|
|
|
|
describe('count all nucleotides in a strand', () => {
|
|
it('empty strand', () => {
|
|
const expected = {
|
|
A: 0,
|
|
C: 0,
|
|
G: 0,
|
|
T: 0,
|
|
}
|
|
expect(nucleotideCounts('')).toEqual(expected)
|
|
})
|
|
|
|
it('can count one nucleotide in single-character input', () => {
|
|
const expected = {
|
|
A: 0,
|
|
C: 0,
|
|
G: 1,
|
|
T: 0,
|
|
}
|
|
expect(nucleotideCounts('G')).toEqual(expected)
|
|
})
|
|
|
|
it('strand with repeated nucleotide', () => {
|
|
const expected = {
|
|
A: 0,
|
|
C: 0,
|
|
G: 7,
|
|
T: 0,
|
|
}
|
|
expect(nucleotideCounts('GGGGGGG')).toEqual(expected)
|
|
})
|
|
|
|
it('strand with multiple nucleotides', () => {
|
|
const expected = {
|
|
A: 20,
|
|
C: 12,
|
|
G: 17,
|
|
T: 21,
|
|
}
|
|
expect(
|
|
nucleotideCounts(
|
|
'AGCTTTTCATTCTGACTGCAACGGGCAATATGTCTCTGTGTGGATTAAAAAAAGAGTGTCTGATAGCAGC'
|
|
)
|
|
).toEqual(expected)
|
|
})
|
|
|
|
it('strand with invalid nucleotides', () => {
|
|
const expected = 'Invalid nucleotide in strand'
|
|
expect(() => {
|
|
nucleotideCounts('AGXXACT')
|
|
}).toThrow(expected)
|
|
})
|
|
})
|