Module: SetAssertions

Included in:
Test::Unit::TestCase
Defined in:
lib/set_assertions.rb,
lib/set_assertions/version.rb

Constant Summary collapse

VERSION =
"0.0.3"

Instance Method Summary collapse

Instance Method Details

#assert_equal_set(expected_set, actual_set, message = nil) ⇒ Object

Passes if expected_set and actual_set are equal sets. An equal set has the following properties.

* Identical cardinality.
* The same elements, without concern for order.

Example:

assert_equal_set [:a,:b], [:b,:a]


15
16
17
18
19
20
21
# File 'lib/set_assertions.rb', line 15

def assert_equal_set(expected_set, actual_set, message=nil)
  full_message = build_message(message, "set <?> in any order was expected, got: \n<?>.\n", expected_set, actual_set)
  assert_block(full_message) {
    (expected_set.length == actual_set.length) &&
      ((expected_set & actual_set).length == actual_set.length)
  }
end

#assert_not_equal_set(expected_set, actual_set, message = nil) ⇒ Object

Passes if expected_set and actual_set are inequal sets. An inequal set has the following properties.

* Different cardinality.
* The same cardinality, but different elements. (order does not matter)

Example:

assert_not_equal_set [:a,:b], [:a,:c]


32
33
34
35
36
37
38
# File 'lib/set_assertions.rb', line 32

def assert_not_equal_set(expected_set, actual_set, message=nil)
  full_message = build_message(message, "any set other than <?> was expected, got the same: \n<?>.\n", expected_set, actual_set)
  assert_block(full_message) {
    (expected_set.length != actual_set.length) ||
      ((expected_set & actual_set).length != actual_set.length)
  }
end