Code Duplication    Length = 12-12 lines in 6 locations

src/scheme.php 6 locations

@@ 60-71 (lines=12) @@
57
	 * @param  bool|null $is_dark Whether or not to treat the base color as a dark color. Leave as null to dynamically generate this.
58
	 * @return array              An array of 5 complementary colors where the first offset is the original input.
59
	 */
60
	public static function complementary_set (float $h = 0.0, float $s = 0.0, float $l = 0.0, $is_dark = NULL) :array {
61
		static::is_dark($is_dark, $h, $s, $l);
62
		$al = static::alt_light($l);
63
		$as = static::alt_saturation($s);
64
		return static::_assign_keys([
65
			[$h, $s, $l],
66
			[$h, $as, static::mod($al, 20, $is_dark)],
67
			[$h, $as, static::mod($al, 10, $is_dark)],
68
			[static::mod($h, 185, TRUE, 360), $as, $al],
69
			[static::mod($h, 185, TRUE, 360), $as, static::mod($al, 10, $is_dark)]
70
		]);
71
	}
72
	
73
	/**
74
	 * These colors use mathematical offsets that usually complement each other
@@ 166-177 (lines=12) @@
163
	 * @param  bool|null $is_dark Whether or not to treat the base color as a dark color. Leave as null to dynamically generate this.
164
	 * @return array              An array of 5 triangular colors where the first offset is the original input.
165
	 */
166
	public static function tetrad_set (float $h = 0.0, float $s = 0.0, float $l = 0.0, $is_dark = NULL) :array {
167
		static::is_dark($is_dark, $h, $s, $l);
168
		$al = static::alt_light($l);
169
		$as = static::alt_saturation($s);
170
		return static::_assign_keys([
171
			[$h, $s, $l],
172
			[static::mod($h, 180, TRUE, 360), $as, $al],
173
			[static::mod($h, 120, TRUE, 360), $as, $al],
174
			[$h, $as, static::mod($al, 18, $is_dark)],
175
			[static::mod($h, -120, TRUE, 360), $as, $al]
176
		]);
177
	}
178
	
179
	/**
180
	 * 3 of these colors are all similarly distanced from each other on a color
@@ 191-202 (lines=12) @@
188
	 * @param  bool|null $is_dark Whether or not to treat the base color as a dark color. Leave as null to dynamically generate this.
189
	 * @return array              An array of 5 triangular colors where the first offset is the original input.
190
	 */
191
	public static function weighted_tetrad_set (float $h = 0.0, float $s = 0.0, float $l = 0.0, $is_dark = NULL) :array {
192
		static::is_dark($is_dark, $h, $s, $l);
193
		$al = static::alt_light($l);
194
		$as = static::alt_saturation($s);
195
		return static::_assign_keys([
196
			[$h, $s, $l],
197
			[static::mod($h, 160, TRUE, 360), $as, $al],
198
			[static::mod($h, 80, TRUE, 360), $as, $al],
199
			[$h, $as, static::mod($al, 18, $is_dark)],
200
			[static::mod($h, -80, TRUE, 360), $as, $al]
201
		]);
202
	}
203
	
204
	/**
205
	 * These colors are all equally distanced from each other on a color wheel,
@@ 214-225 (lines=12) @@
211
	 * @param  bool|null $is_dark Whether or not to treat the base color as a dark color. Leave as null to dynamically generate this.
212
	 * @return array              An array of 5 triangular colors where the first offset is the original input.
213
	 */
214
	public static function triad_set (float $h = 0.0, float $s = 0.0, float $l = 0.0, $is_dark = NULL) :array {
215
		static::is_dark($is_dark, $h, $s, $l);
216
		$al = static::alt_light($l);
217
		$as = static::alt_saturation($s);
218
		return static::_assign_keys([
219
			[$h, $s, $l],
220
			[static::mod($h, 120, TRUE, 360), $as, $al],
221
			[$h, $as, static::mod($al, 18, $is_dark)],
222
			[static::mod($h, -120, TRUE, 360), $as, $al],
223
			[static::mod($h, -120, TRUE, 360), $as, static::mod($al, 18, $is_dark)]
224
		]);
225
	}
226
	
227
	/**
228
	 * These colors are all similarly distanced from each other on a color wheel,
@@ 238-249 (lines=12) @@
235
	 * @param  bool|null $is_dark Whether or not to treat the base color as a dark color. Leave as null to dynamically generate this.
236
	 * @return array              An array of 5 weighted triangular colors where the first offset is the original input.
237
	 */
238
	public static function weighted_triad_set (float $h = 0.0, float $s = 0.0, float $l = 0.0, $is_dark = NULL) :array {
239
		static::is_dark($is_dark, $h, $s, $l);
240
		$al = static::alt_light($l);
241
		$as = static::alt_saturation($s);
242
		return static::_assign_keys([
243
			[$h, $s, $l],
244
			[static::mod($h, 80, TRUE, 360), $as, $al],
245
			[$h, $as, static::mod($al, 18, $is_dark)],
246
			[static::mod($h, -80, TRUE, 360), $as, $al],
247
			[static::mod($h, -80, TRUE, 360), $as, static::mod($al, 18, $is_dark)]
248
		]);
249
	}
250
	
251
	/**
252
	 * 4 of these colors form a rectangle on a color wheel, and 1 color is an
@@ 261-272 (lines=12) @@
258
	 * @param  bool|null $is_dark Whether or not to treat the base color as a dark color. Leave as null to dynamically generate this.
259
	 * @return array              An array of 5 rectangular colors where the first offset is the original input.
260
	 */
261
	public static function rectangular_set (float $h = 0.0, float $s = 0.0, float $l = 0.0, $is_dark = NULL) :array {
262
		static::is_dark($is_dark, $h, $s, $l);
263
		$al = static::alt_light($l);
264
		$as = static::alt_saturation($s);
265
		return static::_assign_keys([
266
			[$h, $s, $l],
267
			[static::mod($h, 216, TRUE, 360), $as, $al],
268
			[static::mod($h, 180, TRUE, 360), $as, $al],
269
			[$h, $as, static::mod($al, 18, $is_dark)],
270
			[static::mod($h, 36, TRUE, 360), $as, $al]
271
		]);
272
	}
273
	
274
	/**
275
	 * Assigns keys to a hsl scheme array