Sha256: eac6e255895aca0db989f26c7401d171d3b1528b47da965b60054940ddc83e51

Contents?: true

Size: 1.17 KB

Versions: 5

Compression:

Stored size: 1.17 KB

Contents

module TestFacility
  def >>(x)
    self == x
  end

  #def is!(x)
  #  assert( self == x )
  #end
end


class Object
  include TestFacility
end

class Fixnum
  remove_method :>>
end

class Bignum
  remove_method :>>
end

class Date
  alias_method :>>, :months_ahead
end


# Alternative

class AssertionError < StandardError
end

class Object
  
  def >>(res)
    # The expection is assertion[1]
    if res == self
      if $DEBUG
        @assertion_count ||= 0
        @assertion_success ||= 0
        @assertion_count += 1 
        @assertion_success += 1
        # should track a list
      end
    else
      if $DEBUG
        @assertion_count ||= 0
        @assertion_failure ||= 0
        @assertion_count += 1
        @assertion_failure += 1
        # should track a list
      else
        raise AssertionError, "#{res.inspect} != #{self.inspect}"
      end
    end
    res
  end

end 

# --- developing test ---

if $0 == __FILE__
  s = String.new
  p (s >> 1)
end

# [1] A principle of design: An object evaluates all its own equalities.
#     
#         class Me
#           def compare(b)
#             # not b == self, but
#             self == b
#           end
#         end
#

 

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
facets-1.4.1 forge/more/testfacility.rb
facets-1.4.2 forge/more/testfacility.rb
facets-1.4.3 forge/more/testfacility.rb
facets-1.4.5 snip/more/testfacility.rb
facets-1.4.4 forge/more/testfacility.rb