From 88792a2ecd2c82f2a62580659a3a1e9fddc89c3d Mon Sep 17 00:00:00 2001 From: Rahul Bajaj Date: Wed, 16 May 2018 16:19:24 +0530 Subject: [PATCH] Understanding octal converter --- .idea/vcs.xml | 6 ++++++ .../base_conversion/octal_converter.rb | 19 +++++++++++++++++++ .../base_conversion/test_octal_converter.rb | 10 ++++++++++ 3 files changed, 35 insertions(+) create mode 100644 .idea/vcs.xml create mode 100644 Understanding assertions/base_conversion/octal_converter.rb create mode 100644 Understanding assertions/base_conversion/test_octal_converter.rb diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Understanding assertions/base_conversion/octal_converter.rb b/Understanding assertions/base_conversion/octal_converter.rb new file mode 100644 index 0000000..e7ca4fa --- /dev/null +++ b/Understanding assertions/base_conversion/octal_converter.rb @@ -0,0 +1,19 @@ +class OctalConverter + def initialize(number) + @number = number + end + + def convert + octal = [] + if @number < 8 + octal << @number + else + until @number.zero? + remainder = @number % 8 + @number = @number / 8 + octal.unshift(remainder) + end + end + octal + end +end \ No newline at end of file diff --git a/Understanding assertions/base_conversion/test_octal_converter.rb b/Understanding assertions/base_conversion/test_octal_converter.rb new file mode 100644 index 0000000..d1dc6b8 --- /dev/null +++ b/Understanding assertions/base_conversion/test_octal_converter.rb @@ -0,0 +1,10 @@ +require 'minitest/autorun' +require_relative 'octal_converter' + +describe OctalConverter do + it 'should return 137 for 95' do + converter = OctalConverter.new(137) + result = converter.convert + assert_equal [2, 1, 1], result + end +end \ No newline at end of file