phaser
Version:
A fast, free and fun HTML5 Game Framework for Desktop and Mobile web browsers from the team at Phaser Studio Inc.
65 lines (56 loc) • 1.77 kB
JavaScript
var Between = require('../../src/math/Between');
describe('Phaser.Math.Between', function ()
{
it('should always return an integer', function ()
{
for (var i = 0; i < 100; i++)
{
var result = Between(0, 10);
expect(Number.isInteger(result)).toBe(true);
}
});
it('should return values within the given range (inclusive)', function ()
{
for (var i = 0; i < 1000; i++)
{
var result = Between(5, 15);
expect(result).toBeGreaterThanOrEqual(5);
expect(result).toBeLessThanOrEqual(15);
}
});
it('should return the only possible value when min equals max', function ()
{
for (var i = 0; i < 50; i++)
{
expect(Between(7, 7)).toBe(7);
}
});
it('should work with negative ranges', function ()
{
for (var i = 0; i < 100; i++)
{
var result = Between(-10, -5);
expect(result).toBeGreaterThanOrEqual(-10);
expect(result).toBeLessThanOrEqual(-5);
}
});
it('should work with a range spanning zero', function ()
{
for (var i = 0; i < 100; i++)
{
var result = Between(-5, 5);
expect(result).toBeGreaterThanOrEqual(-5);
expect(result).toBeLessThanOrEqual(5);
}
});
it('should produce a distribution across the range (not always the same value)', function ()
{
var results = new Set();
for (var i = 0; i < 200; i++)
{
results.add(Between(0, 10));
}
// With 200 samples over 11 possible values, we should hit at least 5 distinct values
expect(results.size).toBeGreaterThan(5);
});
});