it('should return line with variable width', function () { var path = getBrushLine([ {x: 20, y: 20, size: 40}, {x: 40, y: 20, size: 40}, {x: 50, y: 20, size: 20}, {x: 80, y: 20, size: 40}, {x: 110, y: 20, size: 20} ]); expect(testUtils.roundNumbersInString(path)).to.be.equal([ 'M20,0', 'L40,0', 'A20,20 0 0 1 40,40', 'L20,40', 'A20,20 0 0 1 20,0', 'Z', 'M40,0', 'A20,20 0 0 1 40,40', 'A20,20 0 0 1 40,0', 'Z', 'M47,11', 'L73,1', 'A20,20 0 1 1 73,39', 'L47,29', 'A10,10 0 0 1 47,11', 'Z', 'M87,1', 'L113,11', 'A10,10 0 0 1 113,29', 'L87,39', 'A20,20 0 1 1 87,1', 'Z' ].join(' ')); var singlePoint1 = getBrushLine([{x: 100, y: 100, size: 40}]); expect(singlePoint1).to.be.equal([ 'M100,80', 'A20,20 0 0 1 100,120', 'A20,20 0 0 1 100,80', 'Z' ].join(' ')); var singlePoint2 = getBrushLine([ {x: 90, y: 100, size: 20}, {x: 100, y: 100, size: 40} ]); expect(singlePoint2).to.be.equal([ 'M100,80', 'A20,20 0 0 1 100,120', 'A20,20 0 0 1 100,80', 'Z' ].join(' ')); var empty = getBrushLine([]); expect(empty).to.be.equal(''); });
it('should return curve with variable width', function () { var path = getBrushCurve(toCurve([ {x: 0, y: 60, size: 30}, {x: 30, y: 0, size: 15}, {x: 60, y: 30, size: 30} ])); expect(testUtils.roundNumbersInString(path)).to.be.equal([ 'M-14,55', 'C-0,17 15,-8 30,-7', 'A8,8 0 1 1 32,7', 'C26,7 20,24 15,62', 'A15,15 0 0 1 -14,55', 'Z', 'M29,-7', 'C42,-9 59,3 72,21', 'A15,15 0 0 1 46,35', 'C40,15 36,8 28,7', 'A8,8 0 0 1 29,-7', 'Z' ].join(' ')); var singlePoint1 = getBrushCurve(toCurve([{x: 100, y: 100, size: 40}])); expect(singlePoint1).to.be.equal([ 'M100,80', 'A20,20 0 0 1 100,120', 'A20,20 0 0 1 100,80', 'Z' ].join(' ')); var singlePoint2 = getBrushCurve(toCurve([ {x: 90, y: 100, size: 20}, {x: 100, y: 100, size: 40} ])); expect(singlePoint2).to.be.equal([ 'M100,80', 'A20,20 0 0 1 100,120', 'A20,20 0 0 1 100,80', 'Z' ].join(' ')); var empty = getBrushCurve(toCurve([])); expect(empty).to.be.equal(''); });