axiom-optimizer 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (279) hide show
  1. data/.rspec +1 -0
  2. data/.ruby-gemset +1 -0
  3. data/.travis.yml +4 -6
  4. data/Gemfile +6 -3
  5. data/Gemfile.devtools +26 -24
  6. data/Guardfile +18 -9
  7. data/README.md +2 -25
  8. data/axiom-optimizer.gemspec +1 -3
  9. data/config/devtools.yml +2 -0
  10. data/config/flay.yml +1 -1
  11. data/config/flog.yml +1 -1
  12. data/config/rubocop.yml +53 -0
  13. data/lib/axiom/optimizer.rb +1 -1
  14. data/lib/axiom/optimizer/algebra/difference.rb +1 -1
  15. data/lib/axiom/optimizer/algebra/join.rb +3 -1
  16. data/lib/axiom/optimizer/algebra/projection.rb +1 -1
  17. data/lib/axiom/optimizer/algebra/rename.rb +1 -1
  18. data/lib/axiom/optimizer/algebra/restriction.rb +1 -1
  19. data/lib/axiom/optimizer/algebra/summarization.rb +1 -1
  20. data/lib/axiom/optimizer/function/connective/binary.rb +1 -1
  21. data/lib/axiom/optimizer/optimizable.rb +5 -3
  22. data/lib/axiom/optimizer/relation/materialized.rb +1 -1
  23. data/lib/axiom/optimizer/relation/operation/combination.rb +1 -1
  24. data/lib/axiom/optimizer/relation/operation/limit.rb +2 -2
  25. data/lib/axiom/optimizer/support/predicate_partition.rb +1 -4
  26. data/lib/axiom/optimizer/version.rb +1 -1
  27. data/spec/integration/axiom/algebra/difference/optimize_spec.rb +15 -15
  28. data/spec/integration/axiom/algebra/intersection/optimize_spec.rb +15 -15
  29. data/spec/integration/axiom/algebra/join/optimize_spec.rb +11 -11
  30. data/spec/integration/axiom/algebra/product/optimize_spec.rb +13 -13
  31. data/spec/integration/axiom/algebra/projection/optimize_spec.rb +44 -44
  32. data/spec/integration/axiom/algebra/rename/optimize_spec.rb +70 -70
  33. data/spec/integration/axiom/algebra/restriction/optimize_spec.rb +23 -24
  34. data/spec/integration/axiom/algebra/summarization/optimize_spec.rb +8 -8
  35. data/spec/integration/axiom/algebra/union/optimize_spec.rb +21 -21
  36. data/spec/integration/axiom/function/connective/conjunction/optimize_spec.rb +26 -26
  37. data/spec/integration/axiom/function/connective/disjunction/optimize_spec.rb +27 -28
  38. data/spec/integration/axiom/function/connective/negation/optimize_spec.rb +2 -2
  39. data/spec/integration/axiom/function/optimize_spec.rb +1 -1
  40. data/spec/integration/axiom/function/predicate/equality/optimize_spec.rb +8 -8
  41. data/spec/integration/axiom/function/predicate/exclusion/optimize_spec.rb +19 -19
  42. data/spec/integration/axiom/function/predicate/greater_than/optimize_spec.rb +17 -17
  43. data/spec/integration/axiom/function/predicate/greater_than_or_equal_to/optimize_spec.rb +17 -17
  44. data/spec/integration/axiom/function/predicate/inclusion/optimize_spec.rb +19 -19
  45. data/spec/integration/axiom/function/predicate/inequality/optimize_spec.rb +8 -8
  46. data/spec/integration/axiom/function/predicate/less_than/optimize_spec.rb +17 -17
  47. data/spec/integration/axiom/function/predicate/less_than_or_equal_to/optimize_spec.rb +17 -17
  48. data/spec/integration/axiom/relation/empty/optimize_spec.rb +2 -2
  49. data/spec/integration/axiom/relation/materialized/optimize_spec.rb +3 -3
  50. data/spec/integration/axiom/relation/operation/limit/optimize_spec.rb +16 -16
  51. data/spec/integration/axiom/relation/operation/offset/optimize_spec.rb +14 -14
  52. data/spec/integration/axiom/relation/operation/order/optimize_spec.rb +11 -11
  53. data/spec/integration/axiom/relation/operation/reverse/optimize_spec.rb +9 -9
  54. data/spec/integration/axiom/relation/optimize_spec.rb +4 -4
  55. data/spec/shared/function_connective_binary_optimize_behavior.rb +18 -18
  56. data/spec/shared/optimize_method_behavior.rb +2 -2
  57. data/spec/spec_helper.rb +7 -8
  58. data/spec/support/add_method_missing.rb +3 -4
  59. data/spec/unit/axiom/optimizer/algebra/difference/empty_left/optimize_spec.rb +7 -7
  60. data/spec/unit/axiom/optimizer/algebra/difference/empty_right/optimize_spec.rb +7 -7
  61. data/spec/unit/axiom/optimizer/algebra/difference/equal_operands/optimize_spec.rb +7 -9
  62. data/spec/unit/axiom/optimizer/algebra/extension/extensions_spec.rb +3 -3
  63. data/spec/unit/axiom/optimizer/algebra/extension/order_operand/optimizable_predicate_spec.rb +3 -3
  64. data/spec/unit/axiom/optimizer/algebra/extension/order_operand/optimize_spec.rb +6 -6
  65. data/spec/unit/axiom/optimizer/algebra/extension/unoptimized_operand/optimizable_predicate_spec.rb +10 -10
  66. data/spec/unit/axiom/optimizer/algebra/extension/unoptimized_operand/optimize_spec.rb +10 -10
  67. data/spec/unit/axiom/optimizer/algebra/intersection/empty_left/optimize_spec.rb +7 -7
  68. data/spec/unit/axiom/optimizer/algebra/intersection/empty_right/optimize_spec.rb +7 -7
  69. data/spec/unit/axiom/optimizer/algebra/intersection/equal_operands/optimize_spec.rb +7 -7
  70. data/spec/unit/axiom/optimizer/algebra/join/disjoint_headers/optimizable_predicate_spec.rb +6 -6
  71. data/spec/unit/axiom/optimizer/algebra/join/disjoint_headers/optimize_spec.rb +7 -7
  72. data/spec/unit/axiom/optimizer/algebra/join/equal_headers/optimizable_predicate_spec.rb +6 -6
  73. data/spec/unit/axiom/optimizer/algebra/join/equal_headers/optimize_spec.rb +8 -8
  74. data/spec/unit/axiom/optimizer/algebra/join/materialized_left/optimizable_predicate_spec.rb +9 -9
  75. data/spec/unit/axiom/optimizer/algebra/join/materialized_left/optimize_spec.rb +12 -12
  76. data/spec/unit/axiom/optimizer/algebra/join/materialized_right/optimizable_predicate_spec.rb +9 -9
  77. data/spec/unit/axiom/optimizer/algebra/join/materialized_right/optimize_spec.rb +12 -12
  78. data/spec/unit/axiom/optimizer/algebra/product/table_dee_left/optimizable_predicate_spec.rb +4 -4
  79. data/spec/unit/axiom/optimizer/algebra/product/table_dee_left/optimize_spec.rb +6 -6
  80. data/spec/unit/axiom/optimizer/algebra/product/table_dee_right/optimizable_predicate_spec.rb +4 -4
  81. data/spec/unit/axiom/optimizer/algebra/product/table_dee_right/optimize_spec.rb +6 -6
  82. data/spec/unit/axiom/optimizer/algebra/projection/empty_operand/optimizable_predicate_spec.rb +5 -5
  83. data/spec/unit/axiom/optimizer/algebra/projection/empty_operand/optimize_spec.rb +6 -8
  84. data/spec/unit/axiom/optimizer/algebra/projection/extension_operand/optimizable_predicate_spec.rb +6 -6
  85. data/spec/unit/axiom/optimizer/algebra/projection/extension_operand/optimize_spec.rb +12 -6
  86. data/spec/unit/axiom/optimizer/algebra/projection/projection_operand/optimizable_predicate_spec.rb +6 -6
  87. data/spec/unit/axiom/optimizer/algebra/projection/projection_operand/optimize_spec.rb +7 -7
  88. data/spec/unit/axiom/optimizer/algebra/projection/union_operand/optimizable_predicate_spec.rb +6 -6
  89. data/spec/unit/axiom/optimizer/algebra/projection/union_operand/optimize_spec.rb +10 -10
  90. data/spec/unit/axiom/optimizer/algebra/projection/unoptimized_operand/optimizable_predicate_spec.rb +5 -5
  91. data/spec/unit/axiom/optimizer/algebra/projection/unoptimized_operand/optimize_spec.rb +7 -7
  92. data/spec/unit/axiom/optimizer/algebra/rename/aliases_spec.rb +7 -7
  93. data/spec/unit/axiom/optimizer/algebra/rename/empty_operand/optimizable_predicate_spec.rb +5 -5
  94. data/spec/unit/axiom/optimizer/algebra/rename/empty_operand/optimize_spec.rb +5 -7
  95. data/spec/unit/axiom/optimizer/algebra/rename/limit_operand/optimizable_predicate_spec.rb +5 -5
  96. data/spec/unit/axiom/optimizer/algebra/rename/limit_operand/optimize_spec.rb +7 -7
  97. data/spec/unit/axiom/optimizer/algebra/rename/offset_operand/optimizable_predicate_spec.rb +5 -5
  98. data/spec/unit/axiom/optimizer/algebra/rename/offset_operand/optimize_spec.rb +7 -7
  99. data/spec/unit/axiom/optimizer/algebra/rename/order_operand/optimizable_predicate_spec.rb +5 -5
  100. data/spec/unit/axiom/optimizer/algebra/rename/order_operand/optimize_spec.rb +7 -7
  101. data/spec/unit/axiom/optimizer/algebra/rename/projection_operand/optimizable_predicate_spec.rb +12 -12
  102. data/spec/unit/axiom/optimizer/algebra/rename/projection_operand/optimize_spec.rb +7 -7
  103. data/spec/unit/axiom/optimizer/algebra/rename/rename_operand/optimizable_predicate_spec.rb +9 -9
  104. data/spec/unit/axiom/optimizer/algebra/rename/rename_operand/optimize_spec.rb +7 -7
  105. data/spec/unit/axiom/optimizer/algebra/rename/rename_operand_and_empty_aliases/optimizable_predicate_spec.rb +11 -11
  106. data/spec/unit/axiom/optimizer/algebra/rename/rename_operand_and_empty_aliases/optimize_spec.rb +6 -6
  107. data/spec/unit/axiom/optimizer/algebra/rename/restriction_operand/optimizable_predicate_spec.rb +6 -6
  108. data/spec/unit/axiom/optimizer/algebra/rename/restriction_operand/optimize_spec.rb +7 -7
  109. data/spec/unit/axiom/optimizer/algebra/rename/reverse_operand/optimizable_predicate_spec.rb +4 -4
  110. data/spec/unit/axiom/optimizer/algebra/rename/reverse_operand/optimize_spec.rb +8 -8
  111. data/spec/unit/axiom/optimizer/algebra/rename/set_operand/optimizable_predicate_spec.rb +6 -6
  112. data/spec/unit/axiom/optimizer/algebra/rename/set_operand/optimize_spec.rb +8 -8
  113. data/spec/unit/axiom/optimizer/algebra/rename/unoptimized_operand/optimizable_predicate_spec.rb +6 -6
  114. data/spec/unit/axiom/optimizer/algebra/rename/unoptimized_operand/optimize_spec.rb +7 -7
  115. data/spec/unit/axiom/optimizer/algebra/restriction/combination_operand/optimizable_predicate_spec.rb +6 -6
  116. data/spec/unit/axiom/optimizer/algebra/restriction/combination_operand/optimize_spec.rb +6 -6
  117. data/spec/unit/axiom/optimizer/algebra/restriction/contradiction/optimizable_predicate_spec.rb +5 -5
  118. data/spec/unit/axiom/optimizer/algebra/restriction/contradiction/optimize_spec.rb +7 -9
  119. data/spec/unit/axiom/optimizer/algebra/restriction/join_operand/optimizable_predicate_spec.rb +5 -5
  120. data/spec/unit/axiom/optimizer/algebra/restriction/join_operand/optimize_spec.rb +17 -17
  121. data/spec/unit/axiom/optimizer/algebra/restriction/order_operand/optimizable_predicate_spec.rb +5 -5
  122. data/spec/unit/axiom/optimizer/algebra/restriction/order_operand/optimize_spec.rb +7 -7
  123. data/spec/unit/axiom/optimizer/algebra/restriction/predicate_spec.rb +6 -6
  124. data/spec/unit/axiom/optimizer/algebra/restriction/product_operand/optimizable_predicate_spec.rb +5 -5
  125. data/spec/unit/axiom/optimizer/algebra/restriction/product_operand/optimize_spec.rb +17 -17
  126. data/spec/unit/axiom/optimizer/algebra/restriction/restriction_operand/optimizable_predicate_spec.rb +7 -7
  127. data/spec/unit/axiom/optimizer/algebra/restriction/restriction_operand/optimize_spec.rb +6 -6
  128. data/spec/unit/axiom/optimizer/algebra/restriction/set_operand/optimizable_predicate_spec.rb +7 -7
  129. data/spec/unit/axiom/optimizer/algebra/restriction/set_operand/optimize_spec.rb +7 -7
  130. data/spec/unit/axiom/optimizer/algebra/restriction/tautology/optimizable_predicate_spec.rb +4 -4
  131. data/spec/unit/axiom/optimizer/algebra/restriction/tautology/optimize_spec.rb +7 -7
  132. data/spec/unit/axiom/optimizer/algebra/restriction/unoptimized_operand/optimizable_predicate_spec.rb +5 -5
  133. data/spec/unit/axiom/optimizer/algebra/restriction/unoptimized_operand/optimize_spec.rb +7 -7
  134. data/spec/unit/axiom/optimizer/algebra/summarization/empty_operand/class_methods/extension_default_spec.rb +1 -1
  135. data/spec/unit/axiom/optimizer/algebra/summarization/empty_operand/optimizable_predicate_spec.rb +6 -6
  136. data/spec/unit/axiom/optimizer/algebra/summarization/empty_operand/optimize_spec.rb +13 -13
  137. data/spec/unit/axiom/optimizer/algebra/summarization/empty_summarize_per/optimizable_predicate_spec.rb +8 -8
  138. data/spec/unit/axiom/optimizer/algebra/summarization/empty_summarize_per/optimize_spec.rb +5 -7
  139. data/spec/unit/axiom/optimizer/algebra/summarization/order_operand/optimizable_predicate_spec.rb +3 -3
  140. data/spec/unit/axiom/optimizer/algebra/summarization/order_operand/optimize_spec.rb +6 -6
  141. data/spec/unit/axiom/optimizer/algebra/summarization/summarize_per_spec.rb +7 -7
  142. data/spec/unit/axiom/optimizer/algebra/summarization/summarizers_spec.rb +3 -3
  143. data/spec/unit/axiom/optimizer/algebra/summarization/unoptimized_operand/optimizable_predicate_spec.rb +3 -3
  144. data/spec/unit/axiom/optimizer/algebra/summarization/unoptimized_operand/optimize_spec.rb +6 -6
  145. data/spec/unit/axiom/optimizer/algebra/union/empty_left/optimize_spec.rb +7 -7
  146. data/spec/unit/axiom/optimizer/algebra/union/empty_right/optimize_spec.rb +7 -7
  147. data/spec/unit/axiom/optimizer/algebra/union/equal_operands/optimize_spec.rb +7 -7
  148. data/spec/unit/axiom/optimizer/class_methods/chain_spec.rb +8 -8
  149. data/spec/unit/axiom/optimizer/function/binary/constant_operands/optimize_spec.rb +1 -1
  150. data/spec/unit/axiom/optimizer/function/binary/left_spec.rb +2 -2
  151. data/spec/unit/axiom/optimizer/function/binary/right_spec.rb +2 -2
  152. data/spec/unit/axiom/optimizer/function/binary/unoptimized_operands/optimizable_predicate_spec.rb +4 -4
  153. data/spec/unit/axiom/optimizer/function/binary/unoptimized_operands/optimize_spec.rb +3 -3
  154. data/spec/unit/axiom/optimizer/function/class_methods/optimize_functions_spec.rb +4 -4
  155. data/spec/unit/axiom/optimizer/function/class_methods/optimize_operand_spec.rb +5 -5
  156. data/spec/unit/axiom/optimizer/function/connective/binary/constant_operands/optimize_spec.rb +2 -2
  157. data/spec/unit/axiom/optimizer/function/connective/binary/equal_operands/optimizable_predicate_spec.rb +1 -1
  158. data/spec/unit/axiom/optimizer/function/connective/binary/equal_operands/optimize_spec.rb +2 -2
  159. data/spec/unit/axiom/optimizer/function/connective/binary/left_spec.rb +7 -7
  160. data/spec/unit/axiom/optimizer/function/connective/binary/redundant_left/optimizable_predicate_spec.rb +3 -3
  161. data/spec/unit/axiom/optimizer/function/connective/binary/redundant_left/optimize_spec.rb +3 -3
  162. data/spec/unit/axiom/optimizer/function/connective/binary/redundant_right/optimizable_predicate_spec.rb +3 -3
  163. data/spec/unit/axiom/optimizer/function/connective/binary/redundant_right/optimize_spec.rb +3 -3
  164. data/spec/unit/axiom/optimizer/function/connective/binary/right_spec.rb +7 -7
  165. data/spec/unit/axiom/optimizer/function/connective/conjunction/contradiction/optimizable_predicate_spec.rb +1 -1
  166. data/spec/unit/axiom/optimizer/function/connective/conjunction/contradiction/optimize_spec.rb +2 -2
  167. data/spec/unit/axiom/optimizer/function/connective/conjunction/optimizable_to_exclusion/optimizable_predicate_spec.rb +9 -9
  168. data/spec/unit/axiom/optimizer/function/connective/conjunction/optimizable_to_exclusion/optimize_spec.rb +17 -17
  169. data/spec/unit/axiom/optimizer/function/connective/conjunction/tautology_left/optimizable_predicate_spec.rb +1 -1
  170. data/spec/unit/axiom/optimizer/function/connective/conjunction/tautology_left/optimize_spec.rb +2 -2
  171. data/spec/unit/axiom/optimizer/function/connective/conjunction/tautology_right/optimizable_predicate_spec.rb +1 -1
  172. data/spec/unit/axiom/optimizer/function/connective/conjunction/tautology_right/optimize_spec.rb +2 -2
  173. data/spec/unit/axiom/optimizer/function/connective/disjunction/contradiction_left/optimizable_predicate_spec.rb +1 -1
  174. data/spec/unit/axiom/optimizer/function/connective/disjunction/contradiction_left/optimize_spec.rb +2 -2
  175. data/spec/unit/axiom/optimizer/function/connective/disjunction/contradiction_right/optimizable_predicate_spec.rb +1 -1
  176. data/spec/unit/axiom/optimizer/function/connective/disjunction/contradiction_right/optimize_spec.rb +2 -2
  177. data/spec/unit/axiom/optimizer/function/connective/disjunction/optimizable_to_inclusion/optimizable_predicate_spec.rb +9 -9
  178. data/spec/unit/axiom/optimizer/function/connective/disjunction/optimizable_to_inclusion/optimize_spec.rb +17 -17
  179. data/spec/unit/axiom/optimizer/function/connective/disjunction/tautology/optimizable_predicate_spec.rb +1 -1
  180. data/spec/unit/axiom/optimizer/function/connective/disjunction/tautology/optimize_spec.rb +2 -2
  181. data/spec/unit/axiom/optimizer/function/connective/negation/constant_operand/optimize_spec.rb +2 -2
  182. data/spec/unit/axiom/optimizer/function/connective/negation/invertible_operand/optimizable_predicate_spec.rb +1 -1
  183. data/spec/unit/axiom/optimizer/function/connective/negation/invertible_operand/optimize_spec.rb +2 -2
  184. data/spec/unit/axiom/optimizer/function/connective/negation/operand_spec.rb +5 -5
  185. data/spec/unit/axiom/optimizer/function/predicate/comparable/never_comparable/optimizable_predicate_spec.rb +1 -1
  186. data/spec/unit/axiom/optimizer/function/predicate/comparable/never_equivalent/optimizable_predicate_spec.rb +4 -4
  187. data/spec/unit/axiom/optimizer/function/predicate/comparable/normalizable_operands/optimizable_predicate_spec.rb +1 -1
  188. data/spec/unit/axiom/optimizer/function/predicate/comparable/normalizable_operands/optimize_spec.rb +2 -2
  189. data/spec/unit/axiom/optimizer/function/predicate/constant_operands/optimize_spec.rb +2 -2
  190. data/spec/unit/axiom/optimizer/function/predicate/contradiction/optimize_spec.rb +1 -1
  191. data/spec/unit/axiom/optimizer/function/predicate/enumerable/class_methods/sort_by_value_spec.rb +1 -1
  192. data/spec/unit/axiom/optimizer/function/predicate/enumerable/empty_right/optimizable_predicate_spec.rb +8 -8
  193. data/spec/unit/axiom/optimizer/function/predicate/enumerable/one_right/optimizable_predicate_spec.rb +7 -7
  194. data/spec/unit/axiom/optimizer/function/predicate/enumerable/unoptimized_operands/optimizable_predicate_spec.rb +5 -5
  195. data/spec/unit/axiom/optimizer/function/predicate/enumerable/unoptimized_operands/optimize_spec.rb +14 -14
  196. data/spec/unit/axiom/optimizer/function/predicate/equality/tautology/optimizable_predicate_spec.rb +1 -1
  197. data/spec/unit/axiom/optimizer/function/predicate/exclusion/empty_right/optimize_spec.rb +7 -7
  198. data/spec/unit/axiom/optimizer/function/predicate/exclusion/one_right/optimize_spec.rb +9 -9
  199. data/spec/unit/axiom/optimizer/function/predicate/greater_than/contradiction/optimizable_predicate_spec.rb +3 -3
  200. data/spec/unit/axiom/optimizer/function/predicate/greater_than/tautology/optimizable_predicate_spec.rb +3 -3
  201. data/spec/unit/axiom/optimizer/function/predicate/greater_than_or_equal_to/contradiction/optimizable_predicate_spec.rb +3 -3
  202. data/spec/unit/axiom/optimizer/function/predicate/greater_than_or_equal_to/tautology/optimizable_predicate_spec.rb +3 -3
  203. data/spec/unit/axiom/optimizer/function/predicate/inclusion/empty_right/optimize_spec.rb +7 -7
  204. data/spec/unit/axiom/optimizer/function/predicate/inclusion/one_right/optimize_spec.rb +9 -9
  205. data/spec/unit/axiom/optimizer/function/predicate/inequality/contradiction/optimizable_predicate_spec.rb +1 -1
  206. data/spec/unit/axiom/optimizer/function/predicate/less_than/contradiction/optimizable_predicate_spec.rb +3 -3
  207. data/spec/unit/axiom/optimizer/function/predicate/less_than/tautology/optimizable_predicate_spec.rb +3 -3
  208. data/spec/unit/axiom/optimizer/function/predicate/less_than_or_equal_to/contradiction/optimizable_predicate_spec.rb +3 -3
  209. data/spec/unit/axiom/optimizer/function/predicate/less_than_or_equal_to/tautology/optimizable_predicate_spec.rb +3 -3
  210. data/spec/unit/axiom/optimizer/function/predicate/tautology/optimize_spec.rb +1 -1
  211. data/spec/unit/axiom/optimizer/function/unary/constant_operand/optimize_spec.rb +1 -1
  212. data/spec/unit/axiom/optimizer/function/unary/operand_spec.rb +2 -2
  213. data/spec/unit/axiom/optimizer/function/unary/unoptimized_operand/optimize_spec.rb +1 -1
  214. data/spec/unit/axiom/optimizer/function/util/class_methods/max_spec.rb +2 -2
  215. data/spec/unit/axiom/optimizer/function/util/class_methods/min_spec.rb +2 -2
  216. data/spec/unit/axiom/optimizer/operation_spec.rb +2 -2
  217. data/spec/unit/axiom/optimizer/optimizable/class_methods/optimizer_spec.rb +3 -3
  218. data/spec/unit/axiom/optimizer/optimizable/optimize_spec.rb +7 -7
  219. data/spec/unit/axiom/optimizer/optimizable_predicate_spec.rb +2 -2
  220. data/spec/unit/axiom/optimizer/optimize_spec.rb +2 -2
  221. data/spec/unit/axiom/optimizer/predicate_partition/left_spec.rb +18 -18
  222. data/spec/unit/axiom/optimizer/predicate_partition/remainder_spec.rb +19 -19
  223. data/spec/unit/axiom/optimizer/predicate_partition/right_spec.rb +18 -18
  224. data/spec/unit/axiom/optimizer/relation/materialized/empty_operand/optimizable_predicate_spec.rb +3 -3
  225. data/spec/unit/axiom/optimizer/relation/materialized/empty_operand/optimize_spec.rb +5 -7
  226. data/spec/unit/axiom/optimizer/relation/operation/binary/empty_left/optimizable_predicate_spec.rb +4 -4
  227. data/spec/unit/axiom/optimizer/relation/operation/binary/empty_right/optimizable_predicate_spec.rb +4 -4
  228. data/spec/unit/axiom/optimizer/relation/operation/binary/equal_operands/optimizable_predicate_spec.rb +3 -3
  229. data/spec/unit/axiom/optimizer/relation/operation/binary/left_spec.rb +6 -6
  230. data/spec/unit/axiom/optimizer/relation/operation/binary/materialized_operands/optimizable_predicate_spec.rb +6 -6
  231. data/spec/unit/axiom/optimizer/relation/operation/binary/materialized_operands/optimize_spec.rb +7 -7
  232. data/spec/unit/axiom/optimizer/relation/operation/binary/order_left/optimizable_predicate_spec.rb +5 -5
  233. data/spec/unit/axiom/optimizer/relation/operation/binary/order_left/optimize_spec.rb +8 -8
  234. data/spec/unit/axiom/optimizer/relation/operation/binary/order_right/optimizable_predicate_spec.rb +5 -5
  235. data/spec/unit/axiom/optimizer/relation/operation/binary/order_right/optimize_spec.rb +8 -8
  236. data/spec/unit/axiom/optimizer/relation/operation/binary/right_spec.rb +6 -6
  237. data/spec/unit/axiom/optimizer/relation/operation/binary/unoptimized_operands/optimizable_predicate_spec.rb +4 -4
  238. data/spec/unit/axiom/optimizer/relation/operation/binary/unoptimized_operands/optimize_spec.rb +8 -8
  239. data/spec/unit/axiom/optimizer/relation/operation/combination/optimize_spec.rb +5 -7
  240. data/spec/unit/axiom/optimizer/relation/operation/limit/equal_limit_operand/optimizable_predicate_spec.rb +4 -4
  241. data/spec/unit/axiom/optimizer/relation/operation/limit/equal_limit_operand/optimize_spec.rb +6 -6
  242. data/spec/unit/axiom/optimizer/relation/operation/limit/limit_operand/optimizable_predicate_spec.rb +4 -4
  243. data/spec/unit/axiom/optimizer/relation/operation/limit/limit_operand/optimize_spec.rb +6 -6
  244. data/spec/unit/axiom/optimizer/relation/operation/limit/unoptimized_operand/optimizable_predicate_spec.rb +5 -5
  245. data/spec/unit/axiom/optimizer/relation/operation/limit/unoptimized_operand/optimize_spec.rb +6 -6
  246. data/spec/unit/axiom/optimizer/relation/operation/limit/zero_limit/optimizable_predicate_spec.rb +4 -4
  247. data/spec/unit/axiom/optimizer/relation/operation/limit/zero_limit/optimize_spec.rb +6 -8
  248. data/spec/unit/axiom/optimizer/relation/operation/offset/offset_operand/optimizable_predicate_spec.rb +4 -4
  249. data/spec/unit/axiom/optimizer/relation/operation/offset/offset_operand/optimize_spec.rb +5 -5
  250. data/spec/unit/axiom/optimizer/relation/operation/offset/unoptimized_operand/optimizable_predicate_spec.rb +5 -5
  251. data/spec/unit/axiom/optimizer/relation/operation/offset/unoptimized_operand/optimize_spec.rb +6 -6
  252. data/spec/unit/axiom/optimizer/relation/operation/offset/zero_offset/optimizable_predicate_spec.rb +4 -4
  253. data/spec/unit/axiom/optimizer/relation/operation/offset/zero_offset/optimize_spec.rb +5 -5
  254. data/spec/unit/axiom/optimizer/relation/operation/order/one_limit_operand/optimizable_predicate_spec.rb +4 -4
  255. data/spec/unit/axiom/optimizer/relation/operation/order/one_limit_operand/optimize_spec.rb +6 -6
  256. data/spec/unit/axiom/optimizer/relation/operation/order/order_operand/optimizable_predicate_spec.rb +4 -4
  257. data/spec/unit/axiom/optimizer/relation/operation/order/order_operand/optimize_spec.rb +6 -6
  258. data/spec/unit/axiom/optimizer/relation/operation/order/unoptimized_operand/optimizable_predicate_spec.rb +5 -5
  259. data/spec/unit/axiom/optimizer/relation/operation/order/unoptimized_operand/optimize_spec.rb +7 -7
  260. data/spec/unit/axiom/optimizer/relation/operation/reverse/order_operand/optimizable_predicate_spec.rb +4 -4
  261. data/spec/unit/axiom/optimizer/relation/operation/reverse/order_operand/optimize_spec.rb +7 -7
  262. data/spec/unit/axiom/optimizer/relation/operation/reverse/reverse_operand/optimizable_predicate_spec.rb +4 -4
  263. data/spec/unit/axiom/optimizer/relation/operation/reverse/reverse_operand/optimize_spec.rb +7 -7
  264. data/spec/unit/axiom/optimizer/relation/operation/reverse/unoptimized_operand/optimizable_predicate_spec.rb +4 -4
  265. data/spec/unit/axiom/optimizer/relation/operation/reverse/unoptimized_operand/optimize_spec.rb +7 -7
  266. data/spec/unit/axiom/optimizer/relation/operation/unary/empty_operand/optimizable_predicate_spec.rb +5 -5
  267. data/spec/unit/axiom/optimizer/relation/operation/unary/empty_operand/optimize_spec.rb +5 -5
  268. data/spec/unit/axiom/optimizer/relation/operation/unary/header_spec.rb +6 -6
  269. data/spec/unit/axiom/optimizer/relation/operation/unary/materialized_operand/optimizable_predicate_spec.rb +5 -5
  270. data/spec/unit/axiom/optimizer/relation/operation/unary/materialized_operand/optimize_spec.rb +5 -5
  271. data/spec/unit/axiom/optimizer/relation/operation/unary/operand_spec.rb +7 -7
  272. data/spec/unit/axiom/optimizer/relation/operation/unary/order_operand/optimizable_predicate_spec.rb +4 -4
  273. data/spec/unit/axiom/optimizer/relation/operation/unary/order_operand/optimize_spec.rb +6 -6
  274. data/spec/unit/axiom/optimizer/relation/operation/unary/unchanged_header/optimizable_predicate_spec.rb +5 -5
  275. data/spec/unit/axiom/optimizer/relation/operation/unary/unchanged_header/optimize_spec.rb +5 -5
  276. metadata +24 -289
  277. checksums.yaml +0 -7
  278. data/.gemtest +0 -0
  279. data/.rvmrc +0 -1
@@ -5,24 +5,24 @@ require 'spec_helper'
5
5
  describe Algebra::Union, '#optimize' do
6
6
  subject { object.optimize }
7
7
 
8
- let(:header) { [ [ :id, Integer ] ] }
9
- let(:left_body) { LazyEnumerable.new([ [ 1 ] ]) }
10
- let(:right_body) { LazyEnumerable.new([ [ 2 ] ]) }
8
+ let(:header) { [[:id, Integer]] }
9
+ let(:left_body) { LazyEnumerable.new([[1]]) }
10
+ let(:right_body) { LazyEnumerable.new([[2]]) }
11
11
  let(:original_left) { Relation.new(header, left_body) }
12
12
  let(:original_right) { Relation.new(header, right_body) }
13
13
  let(:object) { described_class.new(left, right) }
14
14
 
15
15
  before do
16
16
  # skip dup of the left and right body to avoid clearing the method stubs
17
- left_body.stub!(:frozen?).and_return(true)
18
- right_body.stub!(:frozen?).and_return(true)
17
+ left_body.stub(:frozen?).and_return(true)
18
+ right_body.stub(:frozen?).and_return(true)
19
19
  end
20
20
 
21
21
  context 'left is an empty relation' do
22
22
  let(:left) { Relation::Empty.new(header) }
23
23
  let(:right) { original_right }
24
24
 
25
- it { should equal(right) }
25
+ it { should be(right) }
26
26
 
27
27
  it 'returns an equivalent relation to the unoptimized operation' do
28
28
  should == object
@@ -45,7 +45,7 @@ describe Algebra::Union, '#optimize' do
45
45
  let(:left) { original_left }
46
46
  let(:right) { Relation::Empty.new(header) }
47
47
 
48
- it { should equal(left) }
48
+ it { should be(left) }
49
49
 
50
50
  it 'returns an equivalent relation to the unoptimized operation' do
51
51
  should == object
@@ -68,7 +68,7 @@ describe Algebra::Union, '#optimize' do
68
68
  let(:left) { Algebra::Restriction.new(original_left, Function::Proposition::Contradiction.instance) }
69
69
  let(:right) { original_right }
70
70
 
71
- it { should equal(right) }
71
+ it { should be(right) }
72
72
 
73
73
  it 'returns an equivalent relation to the unoptimized operation' do
74
74
  should == object
@@ -91,7 +91,7 @@ describe Algebra::Union, '#optimize' do
91
91
  let(:left) { original_left }
92
92
  let(:right) { Algebra::Restriction.new(original_right, Function::Proposition::Contradiction.instance) }
93
93
 
94
- it { should equal(left) }
94
+ it { should be(left) }
95
95
 
96
96
  it 'returns an equivalent relation to the unoptimized operation' do
97
97
  should == object
@@ -111,12 +111,12 @@ describe Algebra::Union, '#optimize' do
111
111
  end
112
112
 
113
113
  context 'left and right are equivalent relations' do
114
- let(:left_body) { LazyEnumerable.new([ [ 1 ] ]) }
115
- let(:right_body) { LazyEnumerable.new([ [ 1 ] ]) }
116
- let(:left) { original_left }
117
- let(:right) { original_right }
114
+ let(:left_body) { LazyEnumerable.new([[1]]) }
115
+ let(:right_body) { LazyEnumerable.new([[1]]) }
116
+ let(:left) { original_left }
117
+ let(:right) { original_right }
118
118
 
119
- it { should equal(left) }
119
+ it { should be(left) }
120
120
 
121
121
  it 'returns an equivalent relation to the unoptimized operation' do
122
122
  should == object
@@ -140,12 +140,12 @@ describe Algebra::Union, '#optimize' do
140
140
  end
141
141
 
142
142
  context 'left and right are equivalent materialized relations' do
143
- let(:left_body) { [ [ 1 ] ] }
144
- let(:right_body) { [ [ 1 ] ] }
143
+ let(:left_body) { [[1]] }
144
+ let(:right_body) { [[1]] }
145
145
  let(:left) { original_left }
146
146
  let(:right) { original_right }
147
147
 
148
- it { should equal(left) }
148
+ it { should be(left) }
149
149
 
150
150
  it 'returns an equivalent relation to the unoptimized operation' do
151
151
  should == object
@@ -170,7 +170,7 @@ describe Algebra::Union, '#optimize' do
170
170
  let(:left) { original_left }
171
171
  let(:right) { original_right }
172
172
 
173
- it { should equal(object) }
173
+ it { should be(object) }
174
174
 
175
175
  it 'executes left_body#each' do
176
176
  left_body.should_receive(:each)
@@ -186,10 +186,10 @@ describe Algebra::Union, '#optimize' do
186
186
  end
187
187
 
188
188
  context 'left and right are materialized relations' do
189
- let(:left) { Relation.new(header, [ [ 1 ], [ 2 ] ]) }
190
- let(:right) { Relation.new(header, [ [ 1 ] ]) }
189
+ let(:left) { Relation.new(header, [[1], [2]]) }
190
+ let(:right) { Relation.new(header, [[1]]) }
191
191
 
192
- it { should eql(Relation::Materialized.new(header, [ [ 1 ], [ 2 ] ])) }
192
+ it { should eql(Relation::Materialized.new(header, [[1], [2]])) }
193
193
 
194
194
  it 'returns an equivalent relation to the unoptimized operation' do
195
195
  should == object
@@ -14,7 +14,7 @@ describe Function::Connective::Conjunction, '#optimize' do
14
14
  let(:left) { attribute.gt(1) }
15
15
  let(:right) { attribute.lt(3) }
16
16
 
17
- it { should equal(object) }
17
+ it { should be(object) }
18
18
 
19
19
  it_should_behave_like 'an optimize method'
20
20
  end
@@ -23,7 +23,7 @@ describe Function::Connective::Conjunction, '#optimize' do
23
23
  let(:left) { Function::Connective::Negation.new(attribute.gt(1)) }
24
24
  let(:right) { Function::Connective::Negation.new(attribute.lt(3)) }
25
25
 
26
- it { should_not equal(object) }
26
+ it { should_not be(object) }
27
27
 
28
28
  it 'reverses the operands' do
29
29
  should eql(described_class.new(attribute.lte(1), attribute.gte(3)))
@@ -45,7 +45,7 @@ describe Function::Connective::Conjunction, '#optimize' do
45
45
  let(:left) { Function::Proposition::Tautology.instance }
46
46
  let(:right) { Function::Proposition::Tautology.instance }
47
47
 
48
- it { should equal(Function::Proposition::Tautology.instance) }
48
+ it { should be(Function::Proposition::Tautology.instance) }
49
49
 
50
50
  it_should_behave_like 'an optimize method'
51
51
  end
@@ -54,7 +54,7 @@ describe Function::Connective::Conjunction, '#optimize' do
54
54
  let(:left) { Function::Proposition::Contradiction.instance }
55
55
  let(:right) { Function::Proposition::Contradiction.instance }
56
56
 
57
- it { should equal(Function::Proposition::Contradiction.instance) }
57
+ it { should be(Function::Proposition::Contradiction.instance) }
58
58
 
59
59
  it_should_behave_like 'an optimize method'
60
60
  end
@@ -63,7 +63,7 @@ describe Function::Connective::Conjunction, '#optimize' do
63
63
  let(:left) { attribute.gt(1) }
64
64
  let(:right) { Function::Proposition::Tautology.instance }
65
65
 
66
- it { should equal(left) }
66
+ it { should be(left) }
67
67
 
68
68
  it_should_behave_like 'an optimize method'
69
69
  end
@@ -72,7 +72,7 @@ describe Function::Connective::Conjunction, '#optimize' do
72
72
  let(:left) { Function::Proposition::Tautology.instance }
73
73
  let(:right) { attribute.lt(3) }
74
74
 
75
- it { should equal(right) }
75
+ it { should be(right) }
76
76
 
77
77
  it_should_behave_like 'an optimize method'
78
78
  end
@@ -81,7 +81,7 @@ describe Function::Connective::Conjunction, '#optimize' do
81
81
  let(:left) { attribute.gt(1) }
82
82
  let(:right) { Function::Proposition::Contradiction.instance }
83
83
 
84
- it { should equal(Function::Proposition::Contradiction.instance) }
84
+ it { should be(Function::Proposition::Contradiction.instance) }
85
85
 
86
86
  it_should_behave_like 'an optimize method'
87
87
  end
@@ -90,7 +90,7 @@ describe Function::Connective::Conjunction, '#optimize' do
90
90
  let(:left) { Function::Proposition::Contradiction.instance }
91
91
  let(:right) { attribute.lt(3) }
92
92
 
93
- it { should equal(Function::Proposition::Contradiction.instance) }
93
+ it { should be(Function::Proposition::Contradiction.instance) }
94
94
 
95
95
  it_should_behave_like 'an optimize method'
96
96
  end
@@ -99,7 +99,7 @@ describe Function::Connective::Conjunction, '#optimize' do
99
99
  let(:left) { attribute.eq(1) }
100
100
  let(:right) { attribute.eq(3) }
101
101
 
102
- it { should equal(Function::Proposition::Contradiction.instance) }
102
+ it { should be(Function::Proposition::Contradiction.instance) }
103
103
 
104
104
  it_should_behave_like 'an optimize method'
105
105
  end
@@ -108,7 +108,7 @@ describe Function::Connective::Conjunction, '#optimize' do
108
108
  let(:left) { attribute.ne(1) }
109
109
  let(:right) { attribute.ne(3) }
110
110
 
111
- it { should eql(attribute.exclude([ 1, 3 ])) }
111
+ it { should eql(attribute.exclude([1, 3])) }
112
112
 
113
113
  it_should_behave_like 'an optimize method'
114
114
  end
@@ -117,7 +117,7 @@ describe Function::Connective::Conjunction, '#optimize' do
117
117
  let(:left) { attribute.eq(1) }
118
118
  let(:right) { attribute.ne(1) }
119
119
 
120
- it { should equal(Function::Proposition::Contradiction.instance) }
120
+ it { should be(Function::Proposition::Contradiction.instance) }
121
121
 
122
122
  it_should_behave_like 'an optimize method'
123
123
  end
@@ -126,25 +126,25 @@ describe Function::Connective::Conjunction, '#optimize' do
126
126
  let(:left) { attribute.ne(1) }
127
127
  let(:right) { attribute.eq(1) }
128
128
 
129
- it { should equal(Function::Proposition::Contradiction.instance) }
129
+ it { should be(Function::Proposition::Contradiction.instance) }
130
130
 
131
131
  it_should_behave_like 'an optimize method'
132
132
  end
133
133
 
134
134
  context 'left is an Inclusion and right is an Exclusion predicate for the same attribute and value' do
135
- let(:left) { attribute.include([ 1, 2 ]) }
136
- let(:right) { attribute.exclude([ 1, 2 ]) }
135
+ let(:left) { attribute.include([1, 2]) }
136
+ let(:right) { attribute.exclude([1, 2]) }
137
137
 
138
- it { should equal(Function::Proposition::Contradiction.instance) }
138
+ it { should be(Function::Proposition::Contradiction.instance) }
139
139
 
140
140
  it_should_behave_like 'an optimize method'
141
141
  end
142
142
 
143
143
  context 'left is an Exclusion and right is an Inclusion predicate for the same attribute and value' do
144
- let(:left) { attribute.exclude([ 1, 2 ]) }
145
- let(:right) { attribute.include([ 1, 2 ]) }
144
+ let(:left) { attribute.exclude([1, 2]) }
145
+ let(:right) { attribute.include([1, 2]) }
146
146
 
147
- it { should equal(Function::Proposition::Contradiction.instance) }
147
+ it { should be(Function::Proposition::Contradiction.instance) }
148
148
 
149
149
  it_should_behave_like 'an optimize method'
150
150
  end
@@ -153,7 +153,7 @@ describe Function::Connective::Conjunction, '#optimize' do
153
153
  let(:left) { attribute.gt(1) }
154
154
  let(:right) { attribute.lte(1) }
155
155
 
156
- it { should equal(Function::Proposition::Contradiction.instance) }
156
+ it { should be(Function::Proposition::Contradiction.instance) }
157
157
 
158
158
  it_should_behave_like 'an optimize method'
159
159
  end
@@ -162,7 +162,7 @@ describe Function::Connective::Conjunction, '#optimize' do
162
162
  let(:left) { attribute.lte(1) }
163
163
  let(:right) { attribute.gt(1) }
164
164
 
165
- it { should equal(Function::Proposition::Contradiction.instance) }
165
+ it { should be(Function::Proposition::Contradiction.instance) }
166
166
 
167
167
  it_should_behave_like 'an optimize method'
168
168
  end
@@ -171,7 +171,7 @@ describe Function::Connective::Conjunction, '#optimize' do
171
171
  let(:left) { attribute.gte(1) }
172
172
  let(:right) { attribute.lt(1) }
173
173
 
174
- it { should equal(Function::Proposition::Contradiction.instance) }
174
+ it { should be(Function::Proposition::Contradiction.instance) }
175
175
 
176
176
  it_should_behave_like 'an optimize method'
177
177
  end
@@ -180,7 +180,7 @@ describe Function::Connective::Conjunction, '#optimize' do
180
180
  let(:left) { attribute.lt(1) }
181
181
  let(:right) { attribute.gte(1) }
182
182
 
183
- it { should equal(Function::Proposition::Contradiction.instance) }
183
+ it { should be(Function::Proposition::Contradiction.instance) }
184
184
 
185
185
  it_should_behave_like 'an optimize method'
186
186
  end
@@ -190,7 +190,7 @@ describe Function::Connective::Conjunction, '#optimize' do
190
190
  let(:left) { attribute.match(/Dan Kubb/) }
191
191
  let(:right) { attribute.no_match(/Dan Kubb/) }
192
192
 
193
- it { should equal(Function::Proposition::Contradiction.instance) }
193
+ it { should be(Function::Proposition::Contradiction.instance) }
194
194
 
195
195
  it_should_behave_like 'an optimize method'
196
196
  end
@@ -200,7 +200,7 @@ describe Function::Connective::Conjunction, '#optimize' do
200
200
  let(:left) { attribute.no_match(/Dan Kubb/) }
201
201
  let(:right) { attribute.match(/Dan Kubb/) }
202
202
 
203
- it { should equal(Function::Proposition::Contradiction.instance) }
203
+ it { should be(Function::Proposition::Contradiction.instance) }
204
204
 
205
205
  it_should_behave_like 'an optimize method'
206
206
  end
@@ -219,7 +219,7 @@ describe Function::Connective::Conjunction, '#optimize' do
219
219
  let(:left) { attribute.eq(other) }
220
220
  let(:right) { attribute.eq(1) }
221
221
 
222
- it { should equal(object) }
222
+ it { should be(object) }
223
223
 
224
224
  it_should_behave_like 'an optimize method'
225
225
  end
@@ -229,7 +229,7 @@ describe Function::Connective::Conjunction, '#optimize' do
229
229
  let(:left) { attribute.eq(1) }
230
230
  let(:right) { attribute.eq(other) }
231
231
 
232
- it { should equal(object) }
232
+ it { should be(object) }
233
233
 
234
234
  it_should_behave_like 'an optimize method'
235
235
  end
@@ -14,7 +14,7 @@ describe Function::Connective::Disjunction, '#optimize' do
14
14
  let(:left) { attribute.gt(1) }
15
15
  let(:right) { attribute.lt(3) }
16
16
 
17
- it { should equal(object) }
17
+ it { should be(object) }
18
18
 
19
19
  it_should_behave_like 'an optimize method'
20
20
  end
@@ -23,7 +23,7 @@ describe Function::Connective::Disjunction, '#optimize' do
23
23
  let(:left) { Function::Connective::Negation.new(attribute.gt(1)) }
24
24
  let(:right) { Function::Connective::Negation.new(attribute.lt(3)) }
25
25
 
26
- it { should_not equal(object) }
26
+ it { should_not be(object) }
27
27
 
28
28
  it 'reverses the operands' do
29
29
  should eql(Function::Connective::Disjunction.new(attribute.lte(1), attribute.gte(3)))
@@ -36,7 +36,7 @@ describe Function::Connective::Disjunction, '#optimize' do
36
36
  let(:left) { attribute.gt(1) }
37
37
  let(:right) { attribute.gt(1) }
38
38
 
39
- it { should equal(left) }
39
+ it { should be(left) }
40
40
 
41
41
  it_should_behave_like 'an optimize method'
42
42
  end
@@ -45,7 +45,7 @@ describe Function::Connective::Disjunction, '#optimize' do
45
45
  let(:left) { Function::Proposition::Tautology.instance }
46
46
  let(:right) { Function::Proposition::Tautology.instance }
47
47
 
48
- it { should equal(left) }
48
+ it { should be(left) }
49
49
 
50
50
  it_should_behave_like 'an optimize method'
51
51
  end
@@ -54,8 +54,7 @@ describe Function::Connective::Disjunction, '#optimize' do
54
54
  let(:left) { Function::Proposition::Contradiction.instance }
55
55
  let(:right) { Function::Proposition::Contradiction.instance }
56
56
 
57
-
58
- it { should equal(left) }
57
+ it { should be(left) }
59
58
 
60
59
  it_should_behave_like 'an optimize method'
61
60
  end
@@ -64,7 +63,7 @@ describe Function::Connective::Disjunction, '#optimize' do
64
63
  let(:left) { attribute.gt(1) }
65
64
  let(:right) { Function::Proposition::Tautology.instance }
66
65
 
67
- it { should equal(right) }
66
+ it { should be(right) }
68
67
 
69
68
  it_should_behave_like 'an optimize method'
70
69
  end
@@ -73,7 +72,7 @@ describe Function::Connective::Disjunction, '#optimize' do
73
72
  let(:left) { Function::Proposition::Tautology.instance }
74
73
  let(:right) { attribute.lt(3) }
75
74
 
76
- it { should equal(left) }
75
+ it { should be(left) }
77
76
 
78
77
  it_should_behave_like 'an optimize method'
79
78
  end
@@ -82,7 +81,7 @@ describe Function::Connective::Disjunction, '#optimize' do
82
81
  let(:left) { attribute.gt(1) }
83
82
  let(:right) { Function::Proposition::Contradiction.instance }
84
83
 
85
- it { should equal(left) }
84
+ it { should be(left) }
86
85
 
87
86
  it_should_behave_like 'an optimize method'
88
87
  end
@@ -91,7 +90,7 @@ describe Function::Connective::Disjunction, '#optimize' do
91
90
  let(:left) { Function::Proposition::Contradiction.instance }
92
91
  let(:right) { attribute.lt(3) }
93
92
 
94
- it { should equal(right) }
93
+ it { should be(right) }
95
94
 
96
95
  it_should_behave_like 'an optimize method'
97
96
  end
@@ -100,7 +99,7 @@ describe Function::Connective::Disjunction, '#optimize' do
100
99
  let(:left) { attribute.eq(1) }
101
100
  let(:right) { attribute.eq(3) }
102
101
 
103
- it { should eql(attribute.include([ 1, 3 ])) }
102
+ it { should eql(attribute.include([1, 3])) }
104
103
 
105
104
  it_should_behave_like 'an optimize method'
106
105
  end
@@ -109,7 +108,7 @@ describe Function::Connective::Disjunction, '#optimize' do
109
108
  let(:left) { attribute.ne(1) }
110
109
  let(:right) { attribute.ne(3) }
111
110
 
112
- it { should equal(Function::Proposition::Tautology.instance) }
111
+ it { should be(Function::Proposition::Tautology.instance) }
113
112
 
114
113
  it_should_behave_like 'an optimize method'
115
114
  end
@@ -118,7 +117,7 @@ describe Function::Connective::Disjunction, '#optimize' do
118
117
  let(:left) { attribute.eq(1) }
119
118
  let(:right) { attribute.ne(1) }
120
119
 
121
- it { should equal(Function::Proposition::Tautology.instance) }
120
+ it { should be(Function::Proposition::Tautology.instance) }
122
121
 
123
122
  it_should_behave_like 'an optimize method'
124
123
  end
@@ -127,25 +126,25 @@ describe Function::Connective::Disjunction, '#optimize' do
127
126
  let(:left) { attribute.ne(1) }
128
127
  let(:right) { attribute.eq(1) }
129
128
 
130
- it { should equal(Function::Proposition::Tautology.instance) }
129
+ it { should be(Function::Proposition::Tautology.instance) }
131
130
 
132
131
  it_should_behave_like 'an optimize method'
133
132
  end
134
133
 
135
134
  context 'left is an Inclusion and right is an Exclusion predicate for the same attribute and value' do
136
- let(:left) { attribute.include([ 1, 2 ]) }
137
- let(:right) { attribute.exclude([ 1, 2 ]) }
135
+ let(:left) { attribute.include([1, 2]) }
136
+ let(:right) { attribute.exclude([1, 2]) }
138
137
 
139
- it { should equal(Function::Proposition::Tautology.instance) }
138
+ it { should be(Function::Proposition::Tautology.instance) }
140
139
 
141
140
  it_should_behave_like 'an optimize method'
142
141
  end
143
142
 
144
143
  context 'left is an Exclusion and right is an Inclusion predicate for the same attribute and value' do
145
- let(:left) { attribute.exclude([ 1, 2 ]) }
146
- let(:right) { attribute.include([ 1, 2 ]) }
144
+ let(:left) { attribute.exclude([1, 2]) }
145
+ let(:right) { attribute.include([1, 2]) }
147
146
 
148
- it { should equal(Function::Proposition::Tautology.instance) }
147
+ it { should be(Function::Proposition::Tautology.instance) }
149
148
 
150
149
  it_should_behave_like 'an optimize method'
151
150
  end
@@ -154,7 +153,7 @@ describe Function::Connective::Disjunction, '#optimize' do
154
153
  let(:left) { attribute.gt(1) }
155
154
  let(:right) { attribute.lte(1) }
156
155
 
157
- it { should equal(Function::Proposition::Tautology.instance) }
156
+ it { should be(Function::Proposition::Tautology.instance) }
158
157
 
159
158
  it_should_behave_like 'an optimize method'
160
159
  end
@@ -163,7 +162,7 @@ describe Function::Connective::Disjunction, '#optimize' do
163
162
  let(:left) { attribute.lte(1) }
164
163
  let(:right) { attribute.gt(1) }
165
164
 
166
- it { should equal(Function::Proposition::Tautology.instance) }
165
+ it { should be(Function::Proposition::Tautology.instance) }
167
166
 
168
167
  it_should_behave_like 'an optimize method'
169
168
  end
@@ -172,7 +171,7 @@ describe Function::Connective::Disjunction, '#optimize' do
172
171
  let(:left) { attribute.gte(1) }
173
172
  let(:right) { attribute.lt(1) }
174
173
 
175
- it { should equal(Function::Proposition::Tautology.instance) }
174
+ it { should be(Function::Proposition::Tautology.instance) }
176
175
 
177
176
  it_should_behave_like 'an optimize method'
178
177
  end
@@ -181,7 +180,7 @@ describe Function::Connective::Disjunction, '#optimize' do
181
180
  let(:left) { attribute.lt(1) }
182
181
  let(:right) { attribute.gte(1) }
183
182
 
184
- it { should equal(Function::Proposition::Tautology.instance) }
183
+ it { should be(Function::Proposition::Tautology.instance) }
185
184
 
186
185
  it_should_behave_like 'an optimize method'
187
186
  end
@@ -191,7 +190,7 @@ describe Function::Connective::Disjunction, '#optimize' do
191
190
  let(:left) { attribute.match(/Dan Kubb/) }
192
191
  let(:right) { attribute.no_match(/Dan Kubb/) }
193
192
 
194
- it { should equal(Function::Proposition::Tautology.instance) }
193
+ it { should be(Function::Proposition::Tautology.instance) }
195
194
 
196
195
  it_should_behave_like 'an optimize method'
197
196
  end
@@ -201,7 +200,7 @@ describe Function::Connective::Disjunction, '#optimize' do
201
200
  let(:left) { attribute.no_match(/Dan Kubb/) }
202
201
  let(:right) { attribute.match(/Dan Kubb/) }
203
202
 
204
- it { should equal(Function::Proposition::Tautology.instance) }
203
+ it { should be(Function::Proposition::Tautology.instance) }
205
204
 
206
205
  it_should_behave_like 'an optimize method'
207
206
  end
@@ -220,7 +219,7 @@ describe Function::Connective::Disjunction, '#optimize' do
220
219
  let(:left) { attribute.eq(other) }
221
220
  let(:right) { attribute.eq(1) }
222
221
 
223
- it { should equal(object) }
222
+ it { should be(object) }
224
223
 
225
224
  it_should_behave_like 'an optimize method'
226
225
  end
@@ -230,7 +229,7 @@ describe Function::Connective::Disjunction, '#optimize' do
230
229
  let(:left) { attribute.eq(1) }
231
230
  let(:right) { attribute.eq(other) }
232
231
 
233
- it { should equal(object) }
232
+ it { should be(object) }
234
233
 
235
234
  it_should_behave_like 'an optimize method'
236
235
  end