# STATUS: Untested

module.exports =
	
	testElements: (opts) ->
		validateTypes opts, _specs.testElements
		return true if opts.test element for element in opts.array
		return false

	compareElements: (opts) ->
		validateTypes opts, _specs.compareElements
		for element in opts.arrays[0]
			return false unless @testElements
				test: (x) -> opts.compare element, x
				array: opts.arrays[1]
		return true

#
# Internal
#

{ validateTypes, checkType } = require "./TypeUtils"

_specs =

	testElements:
		test: Function
		array: Array

	compareElements:
		compare: Function
		arrays: (opts, key, val) ->
			assert checkType(val, Array)
			assert val.length == 2
