From ceb93a63724c59c87d52710ce051e7a0ea455cbe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Chris=20Dos=C3=A9?= Date: Tue, 11 Jun 2024 14:11:42 -0700 Subject: [PATCH] Support numbers outside the scale for number scale (#5) * Support numbers outside the scale for number scale * Bump version --- lib/plox/number_scale.ex | 25 ++++++------------------- mix.exs | 2 +- 2 files changed, 7 insertions(+), 20 deletions(-) diff --git a/lib/plox/number_scale.ex b/lib/plox/number_scale.ex index 1a5a9ff..c587242 100644 --- a/lib/plox/number_scale.ex +++ b/lib/plox/number_scale.ex @@ -56,31 +56,18 @@ defmodule Plox.NumberScale do def convert_to_range(scale, input_value, to_range) when is_number(input_value) do value = Decimal.from_float(input_value / 1.0) - if in_range?(scale, value) do - raise ArgumentError, - message: "Invalid value `#{inspect(input_value)}` given for `#{inspect(scale)}`" - else - value - |> Decimal.sub(scale.first) - |> Decimal.mult(to_range.last - to_range.first) - |> Decimal.div(Decimal.sub(scale.last, scale.first)) - |> Decimal.add(to_range.first) - |> Decimal.to_float() - end + value + |> Decimal.sub(scale.first) + |> Decimal.mult(to_range.last - to_range.first) + |> Decimal.div(Decimal.sub(scale.last, scale.first)) + |> Decimal.add(to_range.first) + |> Decimal.to_float() end def convert_to_range(scale, value, _to_range) do raise ArgumentError, message: "Invalid value `#{inspect(value)}` given for `#{inspect(scale)}`" end - - defp in_range?(%{backwards?: true} = scale, value) do - Decimal.compare(value, scale.last) == :lt or Decimal.compare(value, scale.first) == :gt - end - - defp in_range?(scale, value) do - Decimal.compare(value, scale.first) == :lt or Decimal.compare(value, scale.last) == :gt - end end defimpl Inspect do diff --git a/mix.exs b/mix.exs index d3a49d7..6ccf1bc 100644 --- a/mix.exs +++ b/mix.exs @@ -1,7 +1,7 @@ defmodule Plox.MixProject do use Mix.Project - @version "0.1.0" + @version "0.1.1" @source_url "https://github.com/gridpoint-com/plox" def project do