File: test_color.rb

package info (click to toggle)
ruby-ffaker 2.23.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 3,776 kB
  • sloc: ruby: 12,788; makefile: 8; sh: 1
file content (134 lines) | stat: -rw-r--r-- 3,411 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
# frozen_string_literal: true

require_relative 'helper'

class TestColor < Test::Unit::TestCase
  include DeterministicHelper

  VALID_RGB_REGEX = /\A([0-9]{1,3})\z/
  VALID_OPACITY_REGEX = /^([0-9].[0-9]{1,2})$/
  VALID_PERCENTAGE_REGEX = /^([0-9]{1,3}%)$/

  assert_methods_are_deterministic(
    FFaker::Color,
    :name, :hex_code, :rgb_array, :rgb_list,
    :rgba_array, :rgba_list, :hsl_array, :hsl_list,
    :hsla_array, :hsla_list
  )

  def test_name
    assert_match(/\A[a-z]+\z/, FFaker::Color.name)
  end

  def test_hex_code
    assert_match(/\A\h{6}\z/, FFaker::Color.hex_code)
  end

  def test_rgb_array
    fake_array = FFaker::Color.rgb_array

    assert fake_array.size == 3

    red_value = fake_array[0]
    assert_match VALID_RGB_REGEX, red_value.to_s
    assert red_value.between? 0, 255

    green_value = fake_array[1]
    assert_match VALID_RGB_REGEX, green_value.to_s
    assert green_value.between? 0, 255

    blue_value = fake_array[2]
    assert_match VALID_RGB_REGEX, blue_value.to_s
    assert blue_value.between? 0, 255
  end

  def test_rgb_list
    assert_match(
      /\A([0-9]{1,3},[0-9]{1,3},[0-9]{1,3})\z/,
      FFaker::Color.rgb_list
    )
  end

  def test_rgba_array
    fake_array = FFaker::Color.rgba_array

    assert fake_array.size == 4

    red_value = fake_array[0]
    assert_match VALID_RGB_REGEX, red_value.to_s
    assert red_value.between? 0, 255

    green_value = fake_array[1]
    assert_match VALID_RGB_REGEX, green_value.to_s
    assert green_value.between? 0, 255

    blue_value = fake_array[2]
    assert_match VALID_RGB_REGEX, blue_value.to_s
    assert blue_value.between? 0, 255

    opacity_value = fake_array[3]
    assert_match VALID_OPACITY_REGEX, opacity_value.to_s
    assert opacity_value.between? 0.0, 1.0
  end

  def test_rgba_list
    assert_match(
      /^([0-9]{1,3},[0-9]{1,3},[0-9]{1,3}),([0-9].[0-9]{1,2})$/,
      FFaker::Color.rgba_list
    )
  end

  def test_hsl_array
    fake_array = FFaker::Color.hsl_array

    assert fake_array.size == 3

    hue_value = fake_array[0]
    assert_match VALID_RGB_REGEX, hue_value.to_s
    assert hue_value.between? 0, 360

    saturation_value = fake_array[1]
    assert_match VALID_PERCENTAGE_REGEX, saturation_value
    assert saturation_value.delete('%').to_i.between? 0, 100

    lightness_value = fake_array[2]
    assert_match VALID_PERCENTAGE_REGEX, lightness_value
    assert lightness_value.delete('%').to_i.between? 0, 100
  end

  def test_hsl_list
    assert_match(
      /^([0-9]{1,3},[0-9]{1,3}%,[0-9]{1,3}%)$/,
      FFaker::Color.hsl_list
    )
  end

  def test_hsla_array
    fake_array = FFaker::Color.hsla_array

    assert fake_array.size == 4

    hue_value = fake_array[0]
    assert_match VALID_RGB_REGEX, hue_value.to_s
    assert hue_value.between? 0, 360

    saturation_value = fake_array[1]
    assert_match VALID_PERCENTAGE_REGEX, saturation_value
    assert saturation_value.delete('%').to_i.between? 0, 100

    lightness_value = fake_array[2]
    assert_match VALID_PERCENTAGE_REGEX, lightness_value
    assert lightness_value.delete('%').to_i.between? 0, 100

    opacity_value = fake_array[3]
    assert_match VALID_OPACITY_REGEX, opacity_value.to_s
    assert opacity_value.between? 0.0, 1.0
  end

  def test_hsla_list
    assert_match(
      /^([0-9]{1,3},[0-9]{1,3}%,[0-9]{1,3}%,[0-9].[0-9]{1,2})$/,
      FFaker::Color.hsla_list
    )
  end
end