-
Notifications
You must be signed in to change notification settings - Fork 10
/
testi_spec.rb
108 lines (86 loc) · 2.7 KB
/
testi_spec.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
RSpec.describe 'luokka Varipiste' do
delta = 0.0001
it "on määritelty oikeassa tiedostossa" do
expect(File.exists? './varipiste.rb' ).to be true
require './varipiste.rb'
Varipiste
end
it "perii luokan Piste" do
require './varipiste.rb'
require './piste.rb'
expect(Varipiste < Piste).to eq true
end
it "konstruktori ja to_s toimivat" do
require './varipiste.rb'
p1 = Varipiste.new 1, 2, :punainen
expect(p1.to_s).to eq('(1, 2) punainen')
p2 = Varipiste.new 7, 3, :vihrea
expect(p2.to_s).to eq('(7, 3) vihrea')
end
it "metodi etaisyys_origosta on peritty pisteeltä" do
require './varipiste.rb'
expect(Varipiste.new(1,1, :red).method(:etaisyys_origosta).owner).to eq Piste
end
it "metodi etaisyys_origosta toimii" do
require './varipiste.rb'
p1 = Varipiste.new 3, 4, :punainen
expect(p1.etaisyys_origosta).to be_within(delta).of 5
p1 = Varipiste.new 1, 1, :vihrea
expect(p1.etaisyys_origosta).to be_within(delta).of Math.sqrt 2
end
it "metodi siirra on peritty pisteeltä" do
require './varipiste.rb'
expect(Varipiste.new(1,1, :red).method(:siirra).owner).to eq Piste
end
it "metodi siirra toimii" do
require './varipiste.rb'
p1 = Varipiste.new 3, 4, :punainen
p1.siirra(1,1)
expect(p1.to_s).to eq('(4, 5) punainen')
p1.siirra(-6,2)
expect(p1.to_s).to eq('(-2, 7) punainen')
end
end
RSpec.describe 'luokka Piste3d' do
delta = 0.0001
it "on määritelty oikeassa tiedostossa" do
expect(File.exists? './piste3d.rb' ).to be true
require './piste3d.rb'
Piste3d
end
it "perii luokan Piste" do
require './piste3d.rb'
require './piste.rb'
expect(Piste3d < Piste).to eq true
end
it "konstruktori ja to_s toimivat" do
require './piste3d.rb'
p1 = Piste3d.new 1, 2, 5
expect(p1.to_s).to eq('(1, 2, 5)')
p2 = Piste3d.new 7, 3, 9
expect(p2.to_s).to eq('(7, 3, 9)')
end
it "metodi etaisyys_origosta on ylikirjoitettu" do
require './piste3d.rb'
expect(Piste3d.new(1, 1, 1).method(:etaisyys_origosta).owner).to eq Piste3d
end
it "metodi etaisyys_origosta toimii" do
require './piste3d.rb'
p1 = Piste3d.new 4, 4, 2
expect(p1.etaisyys_origosta).to be_within(delta).of 6
p1 = Piste3d.new 1, 1, 1
expect(p1.etaisyys_origosta).to be_within(delta).of Math.sqrt 3
end
it "metodi siirra on ylikirjoitettu" do
require './piste3d.rb'
expect(Piste3d.new(1, 1, 1).method(:siirra).owner).to eq Piste3d
end
it "metodi siirra toimii" do
require './piste3d.rb'
p1 = Piste3d.new 3, 4, 3
p1.siirra(1, 1, 2)
expect(p1.to_s).to eq('(4, 5, 5)')
p1.siirra(-6, 2, 0)
expect(p1.to_s).to eq('(-2, 7, 5)')
end
end