mirror of
https://github.com/Tonejs/Tone.js
synced 2024-11-16 16:48:00 +00:00
86 lines
No EOL
1.9 KiB
JavaScript
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();
|
|
});
|
|
});
|
|
});
|
|
}); |