sapphire-lang 0.8.0

Gradually typed scripting language where every value is an object and types are optional, checked at runtime
Documentation
class NumTest < Test {
  def test_zero_true {
    assert(0.zero?())
  }

  def test_zero_false {
    assert(!1.zero?())
  }

  def test_positive_true {
    assert(1.positive?())
  }

  def test_positive_false {
    assert(!(-1).positive?())
  }

  def test_negative_true {
    assert((-1).negative?())
  }

  def test_negative_false {
    assert(!1.negative?())
  }

  def test_abs_positive {
    assert_equal(5, (-5).abs)
  }

  def test_abs_already_positive {
    assert_equal(5, 5.abs)
  }

  def test_clamp_above_max {
    assert_equal(5, 10.clamp(1, 5))
  }

  def test_clamp_below_min {
    assert_equal(1, 0.clamp(1, 5))
  }

  def test_clamp_within_range {
    assert_equal(3, 3.clamp(1, 5))
  }
}