Method: Quantify::Unit::Base#is_equivalent_to?
- Defined in:
- lib/quantify/unit/base_unit.rb
#is_equivalent_to?(other) ⇒ Boolean
Determine if self is equivalent to another. Equivalency is based on representing the same physical quantity (i.e. dimensions) and the same factor and scaling values.
Unit.metre.is_equivalent_to? Unit.foot #=> false
Unit.metre.is_equivalent_to? Unit.gram #=> false
Unit.metre.is_equivalent_to? Unit.metre #=> true
The base_units attr of Compound units are not compared. Neither are the names or symbols. This is because we want to recognise cases where units derived from operations and defined as compound units (therefore having compounded names and symbols) are the same as known, named units. For example, if we build a unit for energy using only SI units, we want to recognise this as a joule, rather than a kg m^2 s^-2, e.g.
(Unit.kg*Unit.m*Unit.m/Unit.s/Unit.s).is_equivalent_to? Unit.joule
#=> true
372 373 374 375 376 |
# File 'lib/quantify/unit/base_unit.rb', line 372 def is_equivalent_to?(other) [:dimensions,:factor,:scaling].all? do |attr| self.send(attr) == other.send(attr) end end |