hexlet-pairs
Version:
45 lines (35 loc) • 901 B
JavaScript
// @flow
import { cons, car, cdr, toString } from '../src';
describe('Pair', () => {
it('#cons', () => {
const pair = cons(3, 4);
expect(car(pair)).toBe(3);
expect(cdr(pair)).toBe(4);
});
it('#toString', () => {
const pair = cons(10, -10);
expect(toString(pair)).toBe('(10, -10)');
});
it('#toString2', () => {
const pair = cons(cons(3, 5), cons(1, null));
expect(toString(pair)).toBe('((3, 5), (1, null))');
});
it('#toString3', () => {
const pair = cons(10, cons(1, 10));
expect(toString(pair)).toBe('(10, (1, 10))');
});
it('#checkPair', () => {
expect(() => {
car(345);
}).toThrowError(/345/);
expect(() => {
cdr('asdf');
}).toThrowError(/asdf/);
expect(() => {
cdr(() => 'ehu');
}).toThrowError(/ehu/);
expect(() => {
car({ key: 'value' });
}).toThrowError(/value/);
});
});