Moved test runner to RandomGroupedSet and began offering option for different set randomization algorithms
parent
65f42c6ac4
commit
9923388cce
|
@ -26,7 +26,9 @@ rectest.RecTest = Class( 'RecTest',
|
||||||
{
|
{
|
||||||
this._jQuery = jquery;
|
this._jQuery = jquery;
|
||||||
this._cases = cases;
|
this._cases = cases;
|
||||||
this._runner = rectest.TestRunner( jquery, rectest.TestRun );
|
this._runner = rectest.TestRunner(
|
||||||
|
jquery, rectest.set.SetFactory()
|
||||||
|
);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
|
@ -98,7 +100,7 @@ rectest.RecTest = Class( 'RecTest',
|
||||||
{
|
{
|
||||||
var options = {},
|
var options = {},
|
||||||
values = [
|
values = [
|
||||||
'case', 'set', 'interval', 'blank', 'samples', 'delay'
|
'case', 'set', 'ralgo', 'interval', 'blank', 'samples', 'delay'
|
||||||
],
|
],
|
||||||
i = values.length;
|
i = values.length;
|
||||||
|
|
||||||
|
|
|
@ -15,6 +15,12 @@ rectest.TestRunner = Class( 'TestRunner',
|
||||||
*/
|
*/
|
||||||
'private _TestRun': null,
|
'private _TestRun': null,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Produces sets from the given id
|
||||||
|
* @var {set.SetFactory}
|
||||||
|
*/
|
||||||
|
'private _setFactory': null,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Render destination element
|
* Render destination element
|
||||||
* @var {jQuery}
|
* @var {jQuery}
|
||||||
|
@ -38,12 +44,12 @@ rectest.TestRunner = Class( 'TestRunner',
|
||||||
* Initialize with jQuery instance
|
* Initialize with jQuery instance
|
||||||
*
|
*
|
||||||
* @param {jQuery} jquery jQuery instance
|
* @param {jQuery} jquery jQuery instance
|
||||||
* @param {Function} TestRun TestRun constructor
|
* @param {set.SetFactory} set_factory factory to create sets
|
||||||
*/
|
*/
|
||||||
__construct: function( jquery, TestRun )
|
__construct: function( jquery, set_factory )
|
||||||
{
|
{
|
||||||
this._jQuery = jquery;
|
this._jQuery = jquery;
|
||||||
this._TestRun = TestRun;
|
this._setFactory = set_factory;
|
||||||
this._$dest = this._createDestElement();
|
this._$dest = this._createDestElement();
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -86,7 +92,9 @@ rectest.TestRunner = Class( 'TestRunner',
|
||||||
this._$dest.html( '' );
|
this._$dest.html( '' );
|
||||||
|
|
||||||
var _self = this,
|
var _self = this,
|
||||||
run = _self._TestRun( test_case, options );
|
run = this._setFactory.fromId( options.ralgo,
|
||||||
|
test_case, options
|
||||||
|
);
|
||||||
|
|
||||||
// allow test case to initialize its display
|
// allow test case to initialize its display
|
||||||
test_case.initRender( this._$dest );
|
test_case.initRender( this._$dest );
|
||||||
|
|
|
@ -3,7 +3,7 @@ window.Class = easejs.Class;
|
||||||
window.Interface = easejs.Interface;
|
window.Interface = easejs.Interface;
|
||||||
|
|
||||||
// namespace
|
// namespace
|
||||||
window.rectest = { cases: {} };
|
window.rectest = { set: {}, cases: {} };
|
||||||
|
|
||||||
$( document ).ready( function()
|
$( document ).ready( function()
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,4 +1,11 @@
|
||||||
rectest.TestRun = Class( 'TestRun',
|
/**
|
||||||
|
* Represents a set that is randomized each time the first element is reached.
|
||||||
|
* The set will loop back to the first element until the required number of
|
||||||
|
* samples are satisfied.
|
||||||
|
*/
|
||||||
|
rectest.set.RandomGroupedSet = Class( 'RandomGroupedSet' )
|
||||||
|
.implement( rectest.set.Set )
|
||||||
|
.extend(
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Test case being executed
|
* Test case being executed
|
||||||
|
@ -89,6 +96,11 @@ rectest.TestRun = Class( 'TestRun',
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retrieve the next element in the set
|
||||||
|
*
|
||||||
|
* @return {string} next element in set
|
||||||
|
*/
|
||||||
'public getNextElement': function()
|
'public getNextElement': function()
|
||||||
{
|
{
|
||||||
// reset once we're at the end
|
// reset once we're at the end
|
|
@ -0,0 +1,15 @@
|
||||||
|
/**
|
||||||
|
* Represents a set from which samples should be gathered
|
||||||
|
*/
|
||||||
|
rectest.set.Set = Interface( 'Set',
|
||||||
|
{
|
||||||
|
__construct: [ 'test_case', 'options' ],
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retrieve the next element in the set
|
||||||
|
*
|
||||||
|
* @return {string} next element in set
|
||||||
|
*/
|
||||||
|
'public getNextElement': []
|
||||||
|
} );
|
|
@ -0,0 +1,22 @@
|
||||||
|
/**
|
||||||
|
* Returns the requesetd type of set
|
||||||
|
*/
|
||||||
|
rectest.set.SetFactory = Class( 'SetFactory',
|
||||||
|
{
|
||||||
|
'public fromId': function( id, test_case, options )
|
||||||
|
{
|
||||||
|
var sets = rectest.set;
|
||||||
|
|
||||||
|
if ( !( Class.isA( rectest.TestCase, test_case ) ) )
|
||||||
|
{
|
||||||
|
throw TypeError( "Invalid test case: " + test_case );
|
||||||
|
}
|
||||||
|
|
||||||
|
return [
|
||||||
|
null,
|
||||||
|
sets.RandomGroupedSet,
|
||||||
|
null,
|
||||||
|
null
|
||||||
|
][ id ]( test_case, options );
|
||||||
|
}
|
||||||
|
} );
|
16
test.html
16
test.html
|
@ -56,7 +56,15 @@
|
||||||
<dd><input type="number" id="blank" value="5.0" /> seconds</dd>
|
<dd><input type="number" id="blank" value="5.0" /> seconds</dd>
|
||||||
|
|
||||||
<dt>Sample Size</dt>
|
<dt>Sample Size</dt>
|
||||||
<dd><input type="number" id="samples" value="10" /> (0 for infinite)</dd>
|
<dd>
|
||||||
|
<input type="number" id="samples" value="10" />
|
||||||
|
<select id="ralgo">
|
||||||
|
<option value="0">Random, All Inclusive</option>
|
||||||
|
<option value="1">Random, Grouped</option>
|
||||||
|
<option value="2">Random</option>
|
||||||
|
<option value="3">Ordered</option>
|
||||||
|
</select>
|
||||||
|
</dd>
|
||||||
|
|
||||||
<dt>Begin Delay</dt>
|
<dt>Begin Delay</dt>
|
||||||
<dd><input type="number" id="delay" value="5.0" /> seconds</dd>
|
<dd><input type="number" id="delay" value="5.0" /> seconds</dd>
|
||||||
|
@ -92,6 +100,12 @@
|
||||||
<script type="text/javascript" src="scripts/jquery-1.7.1.min.js"></script>
|
<script type="text/javascript" src="scripts/jquery-1.7.1.min.js"></script>
|
||||||
<script type="text/javascript" src="scripts/ease.min.js"></script>
|
<script type="text/javascript" src="scripts/ease.min.js"></script>
|
||||||
<script type="text/javascript" src="scripts/main.js"></script>
|
<script type="text/javascript" src="scripts/main.js"></script>
|
||||||
|
|
||||||
|
<!-- we will have the option to minify these in the future; this is for
|
||||||
|
development purposes -->
|
||||||
|
<script type="text/javascript" src="scripts/set/Set.js"></script>
|
||||||
|
<script type="text/javascript" src="scripts/set/RandomGroupedSet.js"></script>
|
||||||
|
<script type="text/javascript" src="scripts/set/SetFactory.js"></script>
|
||||||
<script type="text/javascript" src="scripts/TestCase.js"></script>
|
<script type="text/javascript" src="scripts/TestCase.js"></script>
|
||||||
<script type="text/javascript" src="scripts/TestRun.js"></script>
|
<script type="text/javascript" src="scripts/TestRun.js"></script>
|
||||||
<script type="text/javascript" src="scripts/TestRunner.js"></script>
|
<script type="text/javascript" src="scripts/TestRunner.js"></script>
|
||||||
|
|
Loading…
Reference in New Issue