Sha256: 2cfcfa1c3744e7d5b2343fe426905bd42f1e85f0207e2743d0d1b405c4f46a67

Contents?: true

Size: 1.55 KB

Versions: 3

Compression:

Stored size: 1.55 KB

Contents

# frozen_string_literal: true

require_relative "helper"

class TestColor < MiniTest::Test
  def test_parsing
    color = Stylegen::Color.from_hex("#FF8000")
    assert_equal 1.0, color.red
    assert_equal 0.5, color.green
    assert_equal 0.0, color.blue
    assert_equal 1.0, color.alpha

    # Optional pound sign
    color = Stylegen::Color.from_hex("FF8000")
    assert_equal 1.0, color.red
    assert_equal 0.5, color.green
    assert_equal 0.0, color.blue
    assert_equal 1.0, color.alpha

    # Specify alpha
    color = Stylegen::Color.from_hex("#FF8000", 0.5)
    assert_equal 0.5, color.alpha
  end

  def test_parsing_shorthand_syntax
    color = Stylegen::Color.from_hex("#FC0")
    assert_equal 1.0, color.red
    assert_equal 0.8, color.green
    assert_equal 0.0, color.blue
    assert_equal 1.0, color.alpha

    # Optional pound sign
    color = Stylegen::Color.from_hex("FC0")
    assert_equal 1.0, color.red
    assert_equal 0.8, color.green
    assert_equal 0.0, color.blue
    assert_equal 1.0, color.alpha
  end

  def test_grayscale
    color = Stylegen::Color.new(1, 1, 1, 1)
    assert color.grayscale?

    color = Stylegen::Color.new(1, 1, 0.9, 1)
    refute color.grayscale?
  end

  def test_to_string
    color = Stylegen::Color.from_hex("#00FF00")
    expected = "ThemeColor(red: 0.0, green: 1.0, blue: 0.0, alpha: 1.0)"
    assert_equal expected, color.to_s("ThemeColor")

    # Grayscale
    color = Stylegen::Color.from_hex("#FFFFFF")
    expected = "ThemeColor(white: 1.0, alpha: 1.0)"
    assert_equal expected, color.to_s("ThemeColor")
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
stylegen-0.3.0 test/test_color.rb
stylegen-0.2.0 test/test_color.rb
stylegen-0.1.0 test/test_color.rb