Skip to content

Commit

Permalink
Add tests for operators
Browse files Browse the repository at this point in the history
  • Loading branch information
oampo committed Feb 13, 2012
1 parent d87cd24 commit 4ad95c9
Show file tree
Hide file tree
Showing 8 changed files with 220 additions and 0 deletions.
27 changes: 27 additions & 0 deletions tests/operators/Add.js
@@ -0,0 +1,27 @@
load('../../../../audiotest.js/trunk/audiotest.js');
load('../../src/audiofile/audiofile.js');
load('../../src/audiolet/Audiolet.js');
load('../Environment.js');

function testAdd() {
var audiolet = new Audiolet();
var sine = new Sine(audiolet);
var add = new Add(audiolet, 1);
var recorder = new InputRecorder(audiolet, 1);

sine.connect(add);
add.connect(recorder);

for (var i=0; i<81920; i++) {
sine.tick();
add.tick();
recorder.tick();
}

var buffer = recorder.buffers[0][0];
Assert.assertContinuous(buffer);
Assert.assertAudibleValues(buffer);
Assert.assertValuesInRange(buffer, 0, 2);
}

test("Add", testAdd);
27 changes: 27 additions & 0 deletions tests/operators/Divide.js
@@ -0,0 +1,27 @@
load('../../../../audiotest.js/trunk/audiotest.js');
load('../../src/audiofile/audiofile.js');
load('../../src/audiolet/Audiolet.js');
load('../Environment.js');

function testDivide() {
var audiolet = new Audiolet();
var sine = new Sine(audiolet);
var divide = new Divide(audiolet, 2);
var recorder = new InputRecorder(audiolet, 1);

sine.connect(divide);
divide.connect(recorder);

for (var i=0; i<81920; i++) {
sine.tick();
divide.tick();
recorder.tick();
}

var buffer = recorder.buffers[0][0];
Assert.assertContinuous(buffer);
Assert.assertAudibleValues(buffer);
Assert.assertValuesInRange(buffer, -0.5, 0.5);
}

test("Divide", testDivide);
27 changes: 27 additions & 0 deletions tests/operators/Modulo.js
@@ -0,0 +1,27 @@
load('../../../../audiotest.js/trunk/audiotest.js');
load('../../src/audiofile/audiofile.js');
load('../../src/audiolet/Audiolet.js');
load('../Environment.js');

function testModulo() {
var audiolet = new Audiolet();
var sine = new Sine(audiolet);
var modulo = new Modulo(audiolet, 0.1);
var recorder = new InputRecorder(audiolet, 1);

sine.connect(modulo);
modulo.connect(recorder);

for (var i=0; i<81920; i++) {
sine.tick();
modulo.tick();
recorder.tick();
}

var buffer = recorder.buffers[0][0];
Assert.assertContinuous(buffer);
Assert.assertAudibleValues(buffer);
Assert.assertValuesInRange(buffer, -0.1, 0.1);
}

test("Modulo", testModulo);
27 changes: 27 additions & 0 deletions tests/operators/MulAdd.js
@@ -0,0 +1,27 @@
load('../../../../audiotest.js/trunk/audiotest.js');
load('../../src/audiofile/audiofile.js');
load('../../src/audiolet/Audiolet.js');
load('../Environment.js');

function testMulAdd() {
var audiolet = new Audiolet();
var sine = new Sine(audiolet);
var mulAdd = new MulAdd(audiolet, 0.5, 0.5);
var recorder = new InputRecorder(audiolet, 1);

sine.connect(mulAdd);
mulAdd.connect(recorder);

for (var i=0; i<81920; i++) {
sine.tick();
mulAdd.tick();
recorder.tick();
}

var buffer = recorder.buffers[0][0];
Assert.assertContinuous(buffer);
Assert.assertAudibleValues(buffer);
Assert.assertValuesInRange(buffer, 0, 1);
}

test("MulAdd", testMulAdd);
28 changes: 28 additions & 0 deletions tests/operators/Multiply.js
@@ -0,0 +1,28 @@
load('../../../../audiotest.js/trunk/audiotest.js');
load('../../src/audiofile/audiofile.js');
load('../../src/audiolet/Audiolet.js');
load('../Environment.js');

function testMultiply() {
var audiolet = new Audiolet();
var sine = new Sine(audiolet);
var multiply = new Multiply(audiolet, 2);
var recorder = new InputRecorder(audiolet, 1);

sine.connect(multiply);
multiply.connect(recorder);

for (var i=0; i<81920; i++) {
sine.tick();
multiply.tick();
recorder.tick();
}

var buffer = recorder.buffers[0][0];
Assert.assertContinuous(buffer, 0.2);
Assert.assertAudibleValues(buffer);
Assert.assertValuesInRange(buffer, -2, 2);
Assert.assertValuesReach(buffer, -1.9, 1.9);
}

test("Multiply", testMultiply);
30 changes: 30 additions & 0 deletions tests/operators/Reciprocal.js
@@ -0,0 +1,30 @@
load('../../../../audiotest.js/trunk/audiotest.js');
load('../../src/audiofile/audiofile.js');
load('../../src/audiolet/Audiolet.js');
load('../Environment.js');

function testReciprocal() {
var audiolet = new Audiolet();
var sine = new Sine(audiolet);
var mulAdd = new MulAdd(audiolet, 0.5, 1.5); // Values between 1 and 2
var reciprocal = new Reciprocal(audiolet, 1);
var recorder = new InputRecorder(audiolet, 1);

sine.connect(mulAdd);
mulAdd.connect(reciprocal);
reciprocal.connect(recorder);

for (var i=0; i<81920; i++) {
sine.tick();
mulAdd.tick();
reciprocal.tick();
recorder.tick();
}

var buffer = recorder.buffers[0][0];
Assert.assertContinuous(buffer);
Assert.assertAudibleValues(buffer);
Assert.assertValuesInRange(buffer, 0.5, 1);
}

test("Reciprocal", testReciprocal);
27 changes: 27 additions & 0 deletions tests/operators/Subtract.js
@@ -0,0 +1,27 @@
load('../../../../audiotest.js/trunk/audiotest.js');
load('../../src/audiofile/audiofile.js');
load('../../src/audiolet/Audiolet.js');
load('../Environment.js');

function testSubtract() {
var audiolet = new Audiolet();
var sine = new Sine(audiolet);
var subtract = new Subtract(audiolet, 1);
var recorder = new InputRecorder(audiolet, 1);

sine.connect(subtract);
subtract.connect(recorder);

for (var i=0; i<81920; i++) {
sine.tick();
subtract.tick();
recorder.tick();
}

var buffer = recorder.buffers[0][0];
Assert.assertContinuous(buffer);
Assert.assertAudibleValues(buffer);
Assert.assertValuesInRange(buffer, -2, 0);
}

test("Subtract", testSubtract);
27 changes: 27 additions & 0 deletions tests/operators/Tanh.js
@@ -0,0 +1,27 @@
load('../../../../audiotest.js/trunk/audiotest.js');
load('../../src/audiofile/audiofile.js');
load('../../src/audiolet/Audiolet.js');
load('../Environment.js');

function testTanh() {
var audiolet = new Audiolet();
var sine = new Sine(audiolet);
var tanh = new Tanh(audiolet, 1);
var recorder = new InputRecorder(audiolet, 1);

sine.connect(tanh);
tanh.connect(recorder);

for (var i=0; i<81920; i++) {
sine.tick();
tanh.tick();
recorder.tick();
}

var buffer = recorder.buffers[0][0];
Assert.assertContinuous(buffer);
Assert.assertAudibleValues(buffer);
Assert.assertValuesInRange(buffer, -0.8, 0.8); // Should be clipped
}

test("Tanh", testTanh);

0 comments on commit 4ad95c9

Please sign in to comment.