UNPKG

react-gear-chart

Version:
68 lines (56 loc) 1.82 kB
import { Rad2Deg, Deg2Rad, Polar2Cartesian, AnnulusViewport, SQRT2, SQRT1_2, PI } from '../src/utils/math' import { expect, approxEq } from './testHelper' import { AnnulusSector, RadialText } from '../src/utils/draw' describe('Svg drawing Utils', () => { describe('annulus sector', () => { let defaultOpts beforeEach(() => { defaultOpts = { startAngle: 0, endAngle: 90, outerRadius: 100, innerRadius: 90, cx: 0, cy: 0 } }) it('the output path should be a string', () => { let result = AnnulusSector(defaultOpts) expect(result).to.be.a('string') }) it('the output path should contains no NaN', () => { let result = AnnulusSector(defaultOpts) expect(result).to.not.contains('NaN') }) it('the output path should be correct', () => { let result = AnnulusSector(defaultOpts) expect(result).to.be.equal('M100,0 A100,100,1,0,0,6.123233995736766e-15,-100 L5.5109105961630896e-15,-90 A90,90,0,0,1,90,0 z') }) }) describe('radial text', () => { it('calculate text attribute for Radial(clock arm) Text', () => { let r = 100, angle = 45, cx = 0, cy = 0 let result = RadialText(r, angle, cx, cy) expect(result).to.not.be.null expect(result.x).to.be.equal(r) expect(result.y).to.be.equal(cy) expect(result.textAnchor).to.be.equal('start') expect(result.rotate).to.almost.eql([317.57918105, cx, cy]) angle = 150 result = RadialText(r, angle, cx, cy) expect(result).to.not.be.null expect(result.x).to.be.equal(-r) expect(result.y).to.be.equal(cy) expect(result.textAnchor).to.be.equal('end') expect(result.rotate).to.almost.eql([27.42081894, cx, cy]) }) }) })