All files implementationSelector.js

100% Statements 6/6
100% Branches 2/2
100% Functions 2/2
100% Lines 5/5

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19                2457x 2457x 2413x   44x         1x  
'use strict';
 
class RandomImplementationSelector {
 
	select( implementations ) {
		// TODO (T296677): Implement heuristics to decide which implementation to
		// use. Implicitly, current heuristic is to use a builtin if available;
		// otherwise, choose a random implementation and return that.
		const builtin = implementations.find( ( impl ) => Boolean( impl.Z14K4 ) );
		if ( builtin !== undefined ) {
			return builtin;
		}
		return implementations[ Math.floor( Math.random() * implementations.length ) ];
	}
 
}
 
module.exports = { RandomImplementationSelector };