Tone.js/test/signal/Switch.js
2015-08-24 17:29:19 -04:00

86 lines
No EOL
1.9 KiB
JavaScript

define(["helper/Offline", "helper/Basic", "Tone/signal/Switch", "Tone/signal/Signal", "Test"],
function (Offline, Basic, Switch, Signal, Test) {
describe("Switch", function(){
Basic(Switch);
describe("Switching Logic", function(){
it ("handles input and output connections", function(){
var gate = new Switch();
gate.connect(Test);
Test.connect(gate);
Test.connect(gate.gate);
gate.dispose();
});
it("is closed by default", function(done){
var signal, gate;
var offline = new Offline();
offline.before(function(dest){
signal = new Signal(10);
gate = new Switch();
signal.connect(gate);
gate.connect(dest);
});
offline.test(function(sample){
expect(sample).to.equal(0);
});
offline.after(function(){
signal.dispose();
gate.dispose();
done();
});
offline.run();
});
it("can be opened", function(done){
var signal, gate;
var offline = new Offline();
offline.before(function(dest){
signal = new Signal(10);
gate = new Switch();
signal.connect(gate);
gate.connect(dest);
gate.open();
});
offline.test(function(sample){
expect(sample).to.equal(10);
});
offline.after(function(){
signal.dispose();
gate.dispose();
done();
});
offline.run();
});
it("can be scheduled to close", function(done){
var signal, gate;
var offline = new Offline();
offline.before(function(dest){
signal = new Signal(10);
gate = new Switch();
signal.connect(gate);
gate.connect(dest);
gate.open();
gate.close(0.4);
});
offline.test(function(sample, time){
if (time >= 0.4){
expect(sample).to.equal(0);
} else {
expect(sample).to.equal(10);
}
});
offline.after(function(){
signal.dispose();
gate.dispose();
done();
});
offline.run();
});
});
});
});