Queue in Typescript
by Preetha Srinivasan
HTML
<link rel="stylesheet" href="https://cdn.jsdelivr.net/jasmine/1.3.1/jasmine.css">
<script src="https://cdn.jsdelivr.net/jasmine/1.3.1/jasmine.js"></script>
<script src="https://cdn.jsdelivr.net/jasmine/1.3.1/jasmine-html.js"></script>
TypeScript
class Queue{
data: any[];
constructor() {
this.data = [];
}
enqueue(item:any) {
this.data.push(item);
}
dequeue() {
return this.data.shift();
}
size() {
return this.data.length;
}
print() {
this.data.forEach(item => {
console.log(item);
})
}
}
describe("Queue tests", function() {
it ("enqueue operation",function(){
var queue = new Queue();
queue.enqueue(10);
queue.enqueue("string");
expect(queue.size()).toEqual(2);
});
it ("dequeue operation",function(){
var queue = new Queue();
queue.enqueue(10);
queue.enqueue("string");
expect(queue.size()).toEqual(2);
var value = queue.dequeue();
expect(value).toEqual(10);
});
it ("size operation",function(){
var queue = new Queue();
expect(queue.size()).toEqual(0);
var value = queue.dequeue();
expect(value).toEqual(undefined);
});
});
// load jasmine htmlReporter
(function() {
var env = jasmine.getEnv();
env.addReporter(new jasmine.HtmlReporter());
env.execute();
}());