Skip to content

Instantly share code, notes, and snippets.

@patfcarv
Created September 22, 2010 16:51
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save patfcarv/592058 to your computer and use it in GitHub Desktop.
Save patfcarv/592058 to your computer and use it in GitHub Desktop.
/#
kata feito no coding dojo na Canção Nova
@data 22-09-10
# @author Carlos Eduardo Pereira - @carlos_tumulto
# @author Patricia Carvalho - @patfcarv
# @author Marco Moura - @marcomoura
# @author Natalia Martins - @nati57
# @author Rafael Salomao - @razzi
# @author Luciana Mendes - @lucihana
#/
class Paridade
def self.getParidade numero
paridade = 0
num = numero.chars.to_a
num.each do |digito|
paridade = paridade + digito.to_i
end
paridade
end
def self.converteBinario numero
while numero >= 1
resto = numero%2
numero = numero/2
binario = resto.to_s + binario.to_s
end
binario.to_s
end
def self.FinalFantasy numero
binario = converteBinario(numero)
paridade = getParidade(binario)
binario.to_s+' is '+paridade.to_s
end
end
/#
kata feito no coding dojo na Canção Nova
@data 22-09-10
# @author Carlos Eduardo Pereira - @carlos_tumulto
# @author Patricia Carvalho - @patfcarv
# @author Marco Moura - @marcomoura
# @author Natalia Martins - @nati57
# @author Rafael Salomao - @razzi
# @author Luciana Mendes - @lucihana
#/
$:.unshift File.join(File.dirname(__FILE__),'..','lib')
require 'test/unit'
require 'paridade'
class ParidadeTeste < Test::Unit::TestCase
def test_paridade_binario_um_resulta_um
assert_equal(1,Paridade.getParidade('1'))
end
def test_paridade_binario_zeroum_resulta_um
assert_equal(1,Paridade.getParidade('01'))
end
def test_paridade_binario_umzeroum_resulta_dois
assert_equal(2,Paridade.getParidade('101'))
end
def test_paridade_binario_umzeroumzeroum_resulta_tres
assert_equal(3,Paridade.getParidade('10101'))
end
def test_conversao_decimal_dois_binario_10
assert_equal('10',Paridade.converteBinario(2))
end
def test_conversao_decimal_um_binario_1
assert_equal('1',Paridade.converteBinario(1))
end
def test_conversao_decimal_tres_binario_11
assert_equal('11',Paridade.converteBinario(3))
end
def test_conversao_decimal_quatro_binario_100
assert_equal('100',Paridade.converteBinario(4))
end
def test_conversao_decimal_dez_binario_1010
assert_equal('1010',Paridade.converteBinario(10))
end
def test_conversao_decimal_vinteum_binario_10101
assert_equal('10101',Paridade.converteBinario(21))
end
def test_decimal_1_paridade_1
assert_equal('1 is 1',Paridade.FinalFantasy(1))
end
def test_decimal_2_paridade_1
assert_equal('10 is 1',Paridade.FinalFantasy(2))
end
def test_decimal_10_paridade_2
assert_equal('1010 is 2',Paridade.FinalFantasy(10))
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment