From 03158bd68991a933d00642c0723db13b67d983c6 Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Sat, 6 Aug 2022 11:20:11 +0200 Subject: [PATCH] test tonal tone xen --- packages/tonal/vitest/tonal.test.mjs | 17 +++++++++++++++++ packages/tone/vitest/tone.test.mjs | 18 ++++++++++++++++++ packages/xen/vitest/xen.test.mjs | 14 ++++++++++++++ 3 files changed, 49 insertions(+) create mode 100644 packages/tonal/vitest/tonal.test.mjs create mode 100644 packages/tone/vitest/tone.test.mjs create mode 100644 packages/xen/vitest/xen.test.mjs 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)]); + }); +});