spec/lib/helper_spec.rb in dydx-0.0.7 vs spec/lib/helper_spec.rb in dydx-0.0.8
- old
+ new
@@ -1,8 +1,9 @@
require 'spec_helper'
describe Helper do
+ include Helper
context '#is_n?' do
it{ expect(0.is_0?).to be_true }
it{ expect(_(0).is_0?).to be_true }
it{ expect(inverse(0, :+).is_0?).to be_true }
it{ expect(1.is_1?).to be_true }
@@ -24,27 +25,43 @@
it{ expect((:x * :y).is_multiple_of(:z)).to be_false }
end
context '#combinable?' do
it{ expect(:x.combinable?(:x, :+)).to be_true }
+ it{ expect(:x.combinable?(2 * :x, :+)).to be_true }
+ it{ expect((2 * :x).combinable?(:x, :+)).to be_true }
+ it{ expect((2 * :x).combinable?(2 * :x, :+)).to be_true }
it{ expect(:x.combinable?(:y, :+)).to be_false }
+ it{ expect(1.combinable?(2, :+)).to be_true }
it{ expect(:x.combinable?(:x, :*)).to be_true }
it{ expect(:x.combinable?(:y, :*)).to be_false }
- it{ expect(1.combinable?(2, :+)).to be_true }
it{ expect(1.combinable?(2, :*)).to be_true }
+ it{ expect(0.combinable?(:x, :^)).to be_true }
+ it{ expect(1.combinable?(:y, :^)).to be_true }
end
+ context '#distributive?' do
+ it{ expect(distributive?(:+, :*)).to be_true }
+ it{ expect(distributive?(:+, :/)).to be_true }
+ it{ expect(distributive?(:-, :*)).to be_true }
+ it{ expect(distributive?(:-, :/)).to be_true }
+ it{ expect(distributive?(:*, :^)).to be_true }
+ it{ expect(distributive?(:/, :^)).to be_true }
+ it{ expect(distributive?(:*, :+)).to be_false }
+ it{ expect(distributive?(:^, :*)).to be_false }
+ end
+
let(:addition) { (:x + :y) }
let(:subtraction) { (:x - :y) }
let(:multiplication){ (:x * :y) }
let(:division) { (:x / :y) }
let(:exponentiation){ (:x ^ :y) }
it{ expect(addition.addition?).to be_true }
it{ expect(multiplication.multiplication?).to be_true }
it{ expect(exponentiation.exponentiation?).to be_true }
- it{ expect(inverse(:x, :+).inverse?(:x, :+)).to be_true }
- it{ expect(:x.inverse?(inverse(:x, :+), :+)).to be_true }
- it{ expect(inverse(:x, :*).inverse?(:x, :*)).to be_true }
- it{ expect(:x.inverse?(inverse(:x, :*), :*)).to be_true }
-end
\ No newline at end of file
+ it{ expect(inverse(:x, :+).inverse?(:+, :x)).to be_true }
+ it{ expect(:x.inverse?(:+, inverse(:x, :+))).to be_true }
+ it{ expect(inverse(:x, :*).inverse?(:*, :x)).to be_true }
+ it{ expect(:x.inverse?(:*, inverse(:x, :*))).to be_true }
+end