You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
58 lines
1.5 KiB
58 lines
1.5 KiB
require 'spec_helper' |
|
require 'squib/args/unit_conversion' |
|
|
|
describe Squib::Args::UnitConversion do |
|
|
|
it 'does nothing on just numbers' do |
|
expect(subject.parse(20)).to eq(20) |
|
end |
|
|
|
it 'strips trailing whitespace' do |
|
expect(subject.parse('1in ')).to eq(300) |
|
end |
|
|
|
it 'is ok w/internal whitesapce' do |
|
expect(subject.parse('1 in')).to eq(300) |
|
end |
|
|
|
it 'does pt' do |
|
expect(subject.parse('1pt')).to eq(4.166666666666667) |
|
expect(subject.parse('1pt ')).to eq(4.166666666666667) |
|
end |
|
|
|
it 'does cm' do |
|
expect(subject.parse('1cm')).to eq(118.1102361) |
|
expect(subject.parse('1cm ')).to eq(118.1102361) |
|
end |
|
|
|
it 'does mm' do |
|
expect(subject.parse('1mm')).to eq(11.81102361) |
|
expect(subject.parse('1mm ')).to eq(11.81102361) |
|
end |
|
|
|
it 'does deg' do |
|
expect(subject.parse('30deg')).to be_within(0.0001).of(0.523599) |
|
end |
|
|
|
it 'does cells' do |
|
expect(subject.parse('1c')).to eq(37.5) |
|
expect(subject.parse('1cell')).to eq(37.5) |
|
expect(subject.parse('1cells')).to eq(37.5) |
|
expect(subject.parse('1 cells')).to eq(37.5) |
|
expect(subject.parse('1 cells ')).to eq(37.5) |
|
expect(subject.parse('2c')).to eq(75) |
|
expect(subject.parse(' 0.5c')).to eq(18.75) |
|
expect(subject.parse(' -0.5 c ')).to eq(-18.75) |
|
end |
|
|
|
context 'when configured' do |
|
it 'does mm @ dpi=100' do |
|
expect(subject.parse('3.175mm', 100)).to be_within(0.001).of(12.5) |
|
end |
|
|
|
it 'does cell @ cell_px=75' do |
|
expect(subject.parse('1c', 100, 75)).to be_within(0.001).of(75) |
|
end |
|
end |
|
|
|
end
|
|
|