Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
p.146 "Split Temporary Variable" before refactoring.
  • Loading branch information
kono committed May 22, 2010
1 parent a2c35b2 commit 160aeab
Show file tree
Hide file tree
Showing 2 changed files with 54 additions and 0 deletions.
22 changes: 22 additions & 0 deletions chapter6/Split_Temporary_Variable.rb
@@ -0,0 +1,22 @@
class Haggis
def initialize(primary_force, secondary_force, mass, delay)
@primary_force = primary_force
@secondary_force = secondary_force
@mass = mass
@delay = delay
end

def distance_traveled(time)
acc = @primary_force / @mass
primary_time = [time, @delay].min
result = 0.5 * acc * primary_time * primary_time
secondary_time = time - @delay
if (secondary_time > 0)
primary_vel = acc * @delay
acc = (@primary_force + @secondary_force) / @mass
result += primary_vel * secondary_time + 5 * acc * secondary_time * secondary_time
end
result
end
end

32 changes: 32 additions & 0 deletions chapter6/TC_Split_Temporary_Variable.rb
@@ -0,0 +1,32 @@
require 'rubygems'
require 'test/unit'
require 'must'
require 'kconv'
require 'Split_Temporary_Variable'

$KCODE="UTF8"
class TC_Split_Temporary_Variable < Test::Unit::TestCase

def assert(status,msg)
if(RUBY_PLATFORM.downcase =~ /mswin(?!ce)|mingw|cygwin|bccwin/)
msg=Kconv.tosjis(msg)
end
super(status,msg)
end

def setup
@obj1 = Haggis.new(500,300,100,10)
@obj2 = Haggis.new(400,200,50,5)
end

must "check the method 'distance_traveled' part.1" do
expectation = 4750
assert_equal(expectation, @obj1.distance_traveled(20))
end

must "check the method 'distance_traveled' part.2" do
expectation = 14200
assert_equal(expectation, @obj2.distance_traveled(20))
end

end

0 comments on commit 160aeab

Please sign in to comment.