summaryrefslogtreecommitdiff
path: root/spec/ruby/core/numeric/modulo_spec.rb
blob: e3dc7e56f3d70244dba34717ca19526505a6c426 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
require_relative '../../spec_helper'
require_relative 'fixtures/classes'

describe :numeric_modulo_19, shared: true do
  it "returns self - other * self.div(other)" do
    s = mock_numeric('self')
    o = mock_numeric('other')
    n3 = mock_numeric('n3')
    n4 = mock_numeric('n4')
    n5 = mock_numeric('n5')
    s.should_receive(:div).with(o).and_return(n3)
    o.should_receive(:*).with(n3).and_return(n4)
    s.should_receive(:-).with(n4).and_return(n5)
    s.send(@method, o).should == n5
  end
end

describe "Numeric#modulo" do
  it_behaves_like :numeric_modulo_19, :modulo
end

describe "Numeric#%" do
  it_behaves_like :numeric_modulo_19, :%
end