Skip to content

Instantly share code, notes, and snippets.

@valterbarros
Created July 4, 2019 23:14
Show Gist options
  • Save valterbarros/3dc73f616ffc542baba457b27679039c to your computer and use it in GitHub Desktop.
Save valterbarros/3dc73f616ffc542baba457b27679039c to your computer and use it in GitHub Desktop.
ExUnit.start()
defmodule ChopTest do
use ExUnit.Case, async: true
test "Should return guessed number" do
teste = Chop.guess(273, 1..1000)
assert teste == 273
end
test "Should match with guess_number > first median" do
teste = Chop.guess(550, 1..1000)
assert teste == 550
end
test "Should match in first interaction" do
teste = Chop.guess(500, 1..1000)
assert teste == 500
end
end
defmodule Chop do
def guess(guess_number, base..top) do
median = div(base + top, 2)
guess(guess_number, base..top, median)
end
def guess(guess_number, base..top, median) when guess_number == median do
guess_number
end
def guess(guess_number, base..top, median) when guess_number < median do
IO.puts("it is #{median}")
guess(guess_number, base..median)
end
def guess(guess_number, base..top, median) when guess_number > median do
IO.puts("it is #{median}")
guess(guess_number, median..top)
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment