diff --git a/packages/tonal/vitest/tonal.test.mjs b/packages/tonal/vitest/tonal.test.mjs new file mode 100644 index 00000000..5c039477 --- /dev/null +++ b/packages/tonal/vitest/tonal.test.mjs @@ -0,0 +1,17 @@ +/* +tonal.test.mjs - +Copyright (C) 2022 Strudel contributors - see +This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see . +*/ + +// import { strict as assert } from 'assert'; + +import '../tonal.mjs'; // need to import this to add prototypes +import { pure } from '@strudel.cycles/core'; +import { describe, it, expect } from 'vitest'; + +describe('tonal', () => { + it('Should run tonal functions ', () => { + expect(pure('c3').scale('C major').scaleTranspose(1)._firstCycleValues).toEqual(['D3']); + }); +}); diff --git a/packages/tone/vitest/tone.test.mjs b/packages/tone/vitest/tone.test.mjs new file mode 100644 index 00000000..aced9e9a --- /dev/null +++ b/packages/tone/vitest/tone.test.mjs @@ -0,0 +1,18 @@ +/* +tone.test.mjs - +Copyright (C) 2022 Strudel contributors - see +This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see . +*/ + +import '../tone.mjs'; +import { pure } from '@strudel.cycles/core'; +import { describe, it, expect } from 'vitest'; + +describe('tone', () => { + it('Should have working tone function', () => { + // const s = synth().chain(out()); // TODO: mock audio context? + // assert.deepStrictEqual(s, new Tone.Synth().chain(out())); + const s = {}; + expect(pure('c3').tone(s)._firstCycleValues).toEqual(['c3']); + }); +}); diff --git a/packages/xen/vitest/xen.test.mjs b/packages/xen/vitest/xen.test.mjs new file mode 100644 index 00000000..977b0f69 --- /dev/null +++ b/packages/xen/vitest/xen.test.mjs @@ -0,0 +1,14 @@ +/* +xen.test.mjs - +Copyright (C) 2022 Strudel contributors - see +This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see . +*/ + +import { edo } from '../xen.mjs'; +import { describe, it, expect } from 'vitest'; + +describe('xen', () => { + it('edo', () => { + expect(edo('3edo')).toEqual([1, Math.pow(2, 1 / 3), Math.pow(2, 2 / 3)]); + }); +});