Sha256: 3bf3d01afb7a8cd47e08d9ba8f11db4cf3e088689f63451810d118d1a81967e6
Contents?: true
Size: 1011 Bytes
Versions: 2
Compression:
Stored size: 1011 Bytes
Contents
# convolver/spec/helpers.rb require 'convolver' # Matcher compares NArrays numerically RSpec::Matchers.define :be_narray_like do |expected_narray| match do |given| @error = nil if ! given.is_a?(NArray) @error = "Wrong class." elsif given.shape != expected_narray.shape @error = "Shapes are different." else d = given - expected_narray difference = ( d * d ).sum / d.size if difference > 1e-10 @error = "Numerical difference with mean square error #{difference}" end end @given = given.clone if @error @expected = expected_narray.clone end ! @error end failure_message_for_should do "NArray does not match supplied example. #{@error} Expected: #{@expected.inspect} Got: #{@given.inspect}" end failure_message_for_should_not do "NArray is too close to unwanted example. Unwanted: #{@given.inspect}" end description do |given, expected| "numerically very close to example" end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
convolver-0.0.2 | spec/helpers.rb |
convolver-0.0.1 | spec/helpers.rb |