67 lines
2.4 KiB
CoffeeScript
67 lines
2.4 KiB
CoffeeScript
require 'es6-shim'
|
|
vows = require 'vows'
|
|
assert = require 'assert'
|
|
chroma = require '../chroma'
|
|
|
|
|
|
rnd = (f,d) ->
|
|
d = Math.pow(10,d)
|
|
Math.round(f*d) / d
|
|
|
|
vows
|
|
.describe('Testing relative luminance')
|
|
|
|
.addBatch
|
|
|
|
'black':
|
|
topic: chroma 'black'
|
|
'lum = 0': (topic) -> assert.equal topic.luminance(), 0
|
|
|
|
'white':
|
|
topic: chroma 'white'
|
|
'lum = 1': (topic) -> assert.equal topic.luminance(), 1
|
|
|
|
'red':
|
|
topic: chroma 'red'
|
|
'lum = 0.21': (topic) -> assert.equal topic.luminance(), 0.2126
|
|
|
|
'yellow brighter than blue':
|
|
topic: [chroma('yellow').luminance(), chroma('blue').luminance()]
|
|
'yellow > blue': (topic) -> assert topic[0] > topic[1]
|
|
|
|
'green darker than red':
|
|
topic: [chroma('green').luminance(), chroma('red').luminance()]
|
|
'green < red': (topic) -> assert topic[0] < topic[1]
|
|
|
|
# setting luminance
|
|
'set red luminance to 0.4':
|
|
topic: chroma('red').luminance 0.4
|
|
'lum = 0.4': (topic) -> assert.equal rnd(topic.luminance(),3), 0.4
|
|
|
|
# setting luminance
|
|
'set red luminance to 0':
|
|
topic: chroma('red').luminance 0
|
|
'lum = 0': (topic) -> assert.equal rnd(topic.luminance(),2), 0
|
|
'hex = #000': (topic) -> assert.equal topic.hex(), '#000000'
|
|
|
|
# setting luminance
|
|
'set black luminance to 0.5':
|
|
topic: chroma('black').luminance 0.5
|
|
'lum = 0.5': (topic) -> assert.equal rnd(topic.luminance(), 2), 0.5
|
|
'hex': (topic) -> assert.equal '#bcbcbc', topic.hex()
|
|
|
|
# setting luminance
|
|
'set black luminance to 0.5 (lab)':
|
|
topic: chroma('black').luminance 0.5, 'lab'
|
|
'lum = 0.5': (topic) -> assert.equal rnd(topic.luminance(),2), 0.5
|
|
'hex': (topic) -> assert.equal '#bcbcbc', topic.hex()
|
|
|
|
'setting luminance returns new color':
|
|
topic: chroma('red')
|
|
'red luminance is 0.21': (topic) -> assert.equal rnd(topic.luminance(),2), 0.21
|
|
'set luminance to 0.4': (topic) -> assert.equal topic.luminance(0.4).hex(), '#ff8686'
|
|
'old luminance is still 0.21': (topic) -> assert.equal rnd(topic.luminance(),2), 0.21
|
|
'old color is still red': (topic) -> assert.equal topic.hex(), '#ff0000'
|
|
|
|
.export(module)
|