85 lines
3.4 KiB
CoffeeScript
85 lines
3.4 KiB
CoffeeScript
require 'es6-shim'
|
|
vows = require 'vows'
|
|
assert = require 'assert'
|
|
chroma = require '../chroma'
|
|
|
|
|
|
vows
|
|
.describe('Some tests for chroma.color()')
|
|
|
|
.addBatch
|
|
|
|
'hsv interpolation white <-> red':
|
|
topic: chroma('white').interpolate('red', 0.5, 'hsv')
|
|
'works': (topic) -> assert.deepEqual topic.hex(), '#ff8080'
|
|
|
|
'use mix as alias':
|
|
topic: chroma('white').mix('red', 0.5, 'hsv')
|
|
'works': (topic) -> assert.deepEqual topic.hex(), '#ff8080'
|
|
|
|
'alternative mix syntax':
|
|
topic: chroma.mix('red', 'blue', 0.25)
|
|
'works': (topic) -> assert.deepEqual topic.hex(), '#bf0040'
|
|
|
|
'hsl interpolation white <-> red':
|
|
topic: chroma('white').interpolate('red', 0.5, 'hsl')
|
|
'works': (topic) -> assert.deepEqual topic.hex(), '#ff8080'
|
|
|
|
'rgb interpolation white <-> red':
|
|
topic: chroma('white').interpolate('red', 0.5, 'rgb')
|
|
'works': (topic) -> assert.deepEqual topic.hex(), '#ff8080'
|
|
|
|
'hsv interpolation red <-> white':
|
|
topic: chroma('red').interpolate('white', 0.5, 'hsv')
|
|
'works': (topic) -> assert.deepEqual topic.hex(), '#ff8080'
|
|
|
|
'hsl interpolation red <-> white':
|
|
topic: chroma('red').interpolate('white', 0.5, 'hsl')
|
|
'works': (topic) -> assert.deepEqual topic.hex(), '#ff8080'
|
|
|
|
'rgb interpolation red <-> white':
|
|
topic: chroma('red').interpolate('white', 0.5, 'rgb')
|
|
'works': (topic) -> assert.deepEqual topic.hex(), '#ff8080'
|
|
|
|
'interpolation short function':
|
|
topic:
|
|
f: (t) -> chroma.interpolate('#ff0000', '#ffffff', t, 'hsv').hex()
|
|
'starts at red': (topic) -> assert.equal topic.f(0), '#ff0000'
|
|
'goes over light red': (topic) -> assert.equal topic.f(0.5), '#ff8080'
|
|
'ends at white': (topic) -> assert.equal topic.f(1), '#ffffff'
|
|
|
|
'num interpolation white <-> red':
|
|
topic: chroma(0xffffff).interpolate(0xff0000, 0.5, 'num')
|
|
'works': (topic) -> assert.deepEqual topic.hex(), '#ff7fff'
|
|
|
|
'num interpolation red <-> white':
|
|
topic: chroma(0xff0000).interpolate(0xffffff, 0.5, 'num')
|
|
'works': (topic) -> assert.deepEqual topic.hex(), '#ff7fff'
|
|
|
|
'interpolation short function with num provided':
|
|
topic:
|
|
f: (t) -> chroma.interpolate(0xff0000, 0xffffff, t, 'num').hex()
|
|
'starts at red': (topic) -> assert.equal topic.f(0), '#ff0000'
|
|
'goes over light red': (topic) -> assert.equal topic.f(0.5), '#ff7fff'
|
|
'ends at white': (topic) -> assert.equal topic.f(1), '#ffffff'
|
|
|
|
'interpolate in num':
|
|
topic: chroma.interpolate chroma.num(0xffffe0), chroma.num(0x102180), 0.5, 'num'
|
|
'hex': (topic) -> assert.equal topic.hex(), '#8810b0'
|
|
'num': (topic) -> assert.equal topic.num(), 8917168
|
|
|
|
'interpolate in hsv':
|
|
topic: chroma.interpolate 'white', 'black', 0.5, 'hsv'
|
|
'hex': (topic) -> assert.equal topic.hex(), '#808080'
|
|
|
|
'interpolate in hsl':
|
|
topic: chroma.interpolate 'lightyellow', 'navy', 0.5, 'hsl'
|
|
'hex': (topic) -> assert.equal topic.hex(), '#31ff98'
|
|
|
|
'interpolate in lrgb':
|
|
topic: chroma.interpolate 'red', 'blue', 0.5, 'lrgb'
|
|
'hex': (topic) -> assert.equal topic.hex(), '#b400b4'
|
|
|
|
|
|
.export(module)
|