Javascript skill evaluation

by Alexandre Azevedo

HTML

<script src="https://searls.github.io/jasmine-all/jasmine-all-min.js"></script>
<script type="application/javascript">
	'use strict';

    describe('Declaration', function() {
		it('is function', function() {
        	var type = typeof(window.MyFunction);
            expect(type).toBe('function');
        });
    });

    describe('Execution of', function() {
    
    	var value;

        it("initial sequence", function() {
	        value = new window.MyFunction();
            expect(value.current()).toBe(1);
        });

		it("incrementing sequence once", function() {
	        value.increment();
            expect(value.current()).toBe(1);
        });

		it("incrementing sequence three times", function() {
	        value.increment().increment().increment().increment();
            expect(value.current()).toBe(8);
        });

		it("decrementing sequence two times", function() {
	        value.decrement().decrement();
            expect(value.current()).toBe(3);
        });
    });

</script>

CSS

/*

INSTRUCTIONS
############

A simple algorithm based on Fibonacci sequence and prototype methods.

1. The function stores the current sequence number.
2. On each call of increment(), the current number is incremented based on next Fibonacci sequence number.
3. On each call of decrement(), should be similar, but decrementing to the last Fibonacci sequence number.

*/

JavaScript

'use strict';

window.MyFunction;