diff --git a/chapter6/Split_Temporary_Variable.rb b/chapter6/Split_Temporary_Variable.rb new file mode 100644 index 0000000..b35d4db --- /dev/null +++ b/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 + diff --git a/chapter6/TC_Split_Temporary_Variable.rb b/chapter6/TC_Split_Temporary_Variable.rb new file mode 100644 index 0000000..3c3735b --- /dev/null +++ b/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