+2
-2
| { | ||
| "name": "map2d", | ||
| "version": "0.0.10", | ||
| "version": "0.0.11", | ||
| "description": "map2d", | ||
@@ -8,3 +8,3 @@ "main": "index.js", | ||
| "test": "npm run compile && jasmine", | ||
| "compile": "npm i && tsc" | ||
| "compile": "npm i && rm -rf dist && tsc" | ||
| }, | ||
@@ -11,0 +11,0 @@ "repository": { |
+1
-1
@@ -1,2 +0,2 @@ | ||
| /// <reference path="./node_modules/@types/underscore/index.d.ts" /> | ||
| import * as _ from 'underscore'; | ||
@@ -3,0 +3,0 @@ |
@@ -1,9 +0,8 @@ | ||
| /// <reference path="../node_modules/@types/underscore/index.d.ts" /> | ||
| /// <reference path="../node_modules/@types/jasmine/index.d.ts" /> | ||
| import * as _ from 'underscore'; | ||
| import * as rangeApi from '../rangeApi'; | ||
| import {} from 'jasmine'; | ||
| type IPosition = rangeApi.IPosition; | ||
| describe('range api', () => { | ||
@@ -42,2 +41,3 @@ let sort = (posi: IPosition) => [posi.x, posi.y].join('-'); | ||
| }); | ||
@@ -44,0 +44,0 @@ |
+7
-0
@@ -12,2 +12,9 @@ { | ||
| "files": [ | ||
| "index.ts" | ||
| ], | ||
| "include": [ | ||
| "test/*.ts" | ||
| ], | ||
| "exclude": [ | ||
@@ -14,0 +21,0 @@ "./node_modules" |
| import * as api from './rangeApi'; | ||
| export default api; |
| "use strict"; | ||
| var api = require('./rangeApi'); | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.default = api; | ||
| //# sourceMappingURL=index.js.map |
| {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";AAAA,IAAY,GAAG,WAAM,YAAY,CAAC,CAAA;AAElC;kBAAe,GAAG,CAAC"} |
| /// <reference path="../node_modules/@types/underscore/index.d.ts" /> | ||
| export interface IPosition { | ||
| x: number; | ||
| y: number; | ||
| } | ||
| export declare enum Direction { | ||
| up = 0, | ||
| right = 1, | ||
| down = 2, | ||
| left = 3, | ||
| } | ||
| export declare function lineRange(posiSource: IPosition, dist: number, dire: number): IPosition[]; | ||
| export declare function slashRange(posiSource: IPosition, dist: number, dire: number): IPosition[]; | ||
| export declare function nearRange(posiSource: IPosition, dist: Direction): IPosition[]; | ||
| export declare function nearSlashRange(posiSource: IPosition, dist: Direction): IPosition[]; | ||
| export declare function circleRange(posiSource: IPosition, radius: number): IPosition[]; | ||
| export declare function manhattanRange(posiSource: IPosition, radius: number): IPosition[]; | ||
| export declare function getBetween(pa: IPosition, pb: IPosition): IPosition[]; | ||
| export declare function unique(posiList: IPosition[]): IPosition[]; | ||
| export declare function sub(posiListSource: IPosition[], posiListTarget: IPosition[]): IPosition[]; |
-170
| "use strict"; | ||
| /// <reference path="./node_modules/@types/underscore/index.d.ts" /> | ||
| var _ = require('underscore'); | ||
| (function (Direction) { | ||
| Direction[Direction["up"] = 0] = "up"; | ||
| Direction[Direction["right"] = 1] = "right"; | ||
| Direction[Direction["down"] = 2] = "down"; | ||
| Direction[Direction["left"] = 3] = "left"; | ||
| })(exports.Direction || (exports.Direction = {})); | ||
| var Direction = exports.Direction; | ||
| ; | ||
| var allDirection = [ | ||
| Direction.up, | ||
| Direction.right, | ||
| Direction.down, | ||
| Direction.left | ||
| ]; | ||
| // ************************************************************************* | ||
| // 基础range函数 START | ||
| // ************************************************************************* | ||
| // 直线 | ||
| // 0123 -> 上右下左 | ||
| function lineRange(posiSource, dist, dire) { | ||
| var posiList = []; | ||
| var xStep; | ||
| var yStep; | ||
| if (dire == Direction.up) { | ||
| xStep = 0; | ||
| yStep = 1; | ||
| } | ||
| else if (dire == Direction.right) { | ||
| xStep = 1; | ||
| yStep = 0; | ||
| } | ||
| else if (dire == Direction.down) { | ||
| xStep = 0; | ||
| yStep = -1; | ||
| } | ||
| else if (dire == Direction.left) { | ||
| xStep = -1; | ||
| yStep = 0; | ||
| } | ||
| for (var i = 0; i < dist; i++) { | ||
| posiList.push({ x: posiSource.x + xStep * (i + 1), y: posiSource.y + yStep * (i + 1) }); | ||
| } | ||
| return posiList; | ||
| } | ||
| exports.lineRange = lineRange; | ||
| ; | ||
| // 斜线 | ||
| // 0123 -> 右上,右下,左下,左上 | ||
| function slashRange(posiSource, dist, dire) { | ||
| var posiList = []; | ||
| var xStep; | ||
| var yStep; | ||
| if (dire == Direction.up) { | ||
| xStep = 1; | ||
| yStep = 1; | ||
| } | ||
| else if (dire == Direction.right) { | ||
| xStep = 1; | ||
| yStep = -1; | ||
| } | ||
| else if (dire == Direction.down) { | ||
| xStep = -1; | ||
| yStep = -1; | ||
| } | ||
| else if (dire == Direction.left) { | ||
| xStep = -1; | ||
| yStep = 1; | ||
| } | ||
| for (var i = 0; i < dist; i++) { | ||
| posiList.push({ x: posiSource.x + xStep * (i + 1), y: posiSource.y + yStep * (i + 1) }); | ||
| } | ||
| return posiList; | ||
| } | ||
| exports.slashRange = slashRange; | ||
| ; | ||
| // 周围 | ||
| // near = line * 4个方向 | ||
| function nearRange(posiSource, dist) { | ||
| var posiList = []; | ||
| for (var i = 0; i < allDirection.length; i++) { | ||
| var dire = allDirection[i]; | ||
| posiList = posiList.concat(lineRange(posiSource, dist, dire)); | ||
| } | ||
| return posiList; | ||
| } | ||
| exports.nearRange = nearRange; | ||
| ; | ||
| // 四角度斜线 | ||
| // nearSlash = slash * 4; | ||
| function nearSlashRange(posiSource, dist) { | ||
| var range = []; | ||
| for (var i = 0; i < allDirection.length; i++) { | ||
| var dire = allDirection[i]; | ||
| range = range.concat(slashRange(posiSource, dist, dire)); | ||
| } | ||
| return range; | ||
| } | ||
| exports.nearSlashRange = nearSlashRange; | ||
| // 圆圈 | ||
| function circleRange(posiSource, radius) { | ||
| var posiList = []; | ||
| for (var x = -radius; x <= radius; x++) { | ||
| for (var y = -radius; y <= radius; y++) { | ||
| if (!(x == 0 && y == 0)) { | ||
| posiList.push({ x: x + posiSource.x, y: y + posiSource.y }); | ||
| } | ||
| } | ||
| } | ||
| return posiList; | ||
| } | ||
| exports.circleRange = circleRange; | ||
| ; | ||
| // 曼哈顿 | ||
| function manhattanRange(posiSource, radius) { | ||
| var posiList = []; | ||
| for (var x = -radius; x <= radius; x++) { | ||
| for (var y = -radius; y <= radius; y++) { | ||
| var manhDist = Math.abs(x) + Math.abs(y); | ||
| if (manhDist <= radius && manhDist != 0) { | ||
| posiList.push({ x: x + posiSource.x, y: y + posiSource.y }); | ||
| } | ||
| } | ||
| } | ||
| return posiList; | ||
| } | ||
| exports.manhattanRange = manhattanRange; | ||
| ; | ||
| // 获取两点之间的坐标 | ||
| function getBetween(pa, pb) { | ||
| var range = []; | ||
| var _a = [pa.x, pb.x].sort(function (a, b) { return a - b; }), minX = _a[0], maxX = _a[1]; | ||
| var _b = [pa.y, pb.y].sort(function (a, b) { return a - b; }), minY = _b[0], maxY = _b[1]; | ||
| for (var x = minX; x <= maxX; x++) { | ||
| for (var y = minY; y <= maxY; y++) { | ||
| range.push({ x: x, y: y }); | ||
| } | ||
| } | ||
| range = sub(range, [pa, pb]); | ||
| return range; | ||
| } | ||
| exports.getBetween = getBetween; | ||
| // 获取position的唯一主键 | ||
| function getPosiKey(posi) { | ||
| return [posi.x, posi.y].join('-'); | ||
| } | ||
| // 去重 | ||
| function unique(posiList) { | ||
| return _.uniq(posiList, getPosiKey); | ||
| } | ||
| exports.unique = unique; | ||
| // 差集 | ||
| function sub(posiListSource, posiListTarget) { | ||
| var posiList = []; | ||
| var dict = _.indexBy(posiListSource, getPosiKey); | ||
| var dictForSub = _.indexBy(posiListTarget, getPosiKey); | ||
| _.each(dict, function (value, key) { | ||
| if (!dictForSub[key]) { | ||
| posiList.push(_.clone(value)); | ||
| } | ||
| }); | ||
| return posiList; | ||
| } | ||
| exports.sub = sub; | ||
| // ************************************************************************* | ||
| // 基础range函数 END | ||
| // ************************************************************************* | ||
| //# sourceMappingURL=rangeApi.js.map |
| {"version":3,"file":"rangeApi.js","sourceRoot":"","sources":["../rangeApi.ts"],"names":[],"mappings":"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"} |
| /// <reference path="../../node_modules/@types/underscore/index.d.ts" /> | ||
| /// <reference path="../../node_modules/@types/jasmine/index.d.ts" /> |
| /// <reference path="../node_modules/@types/underscore/index.d.ts" /> | ||
| /// <reference path="../node_modules/@types/jasmine/index.d.ts" /> | ||
| "use strict"; | ||
| var _ = require('underscore'); | ||
| var rangeApi = require('../rangeApi'); | ||
| describe('range api', function () { | ||
| var sort = function (posi) { return [posi.x, posi.y].join('-'); }; | ||
| it('lineRange', function () { | ||
| var exp = [ | ||
| { x: 1, y: 0 }, | ||
| { x: 1, y: -1 } | ||
| ]; | ||
| expect(rangeApi.lineRange({ x: 1, y: 1 }, 2, 2)).toEqual(exp); | ||
| }); | ||
| it('slashRange', function () { | ||
| var exp = [ | ||
| { x: 0, y: 0 }, | ||
| { x: -1, y: -1 } | ||
| ]; | ||
| expect(rangeApi.slashRange({ x: 1, y: 1 }, 2, 2)).toEqual(exp); | ||
| }); | ||
| it('nearRange', function () { | ||
| var exp = [ | ||
| { x: 1, y: 0 }, | ||
| { x: 1, y: -1 }, | ||
| { x: 1, y: 2 }, | ||
| { x: 1, y: 3 }, | ||
| { x: 0, y: 1 }, | ||
| { x: -1, y: 1 }, | ||
| { x: 2, y: 1 }, | ||
| { x: 3, y: 1 }, | ||
| ]; | ||
| var rst = rangeApi.nearRange({ x: 1, y: 1 }, 2); | ||
| expect(_.sortBy(rst, sort)).toEqual(_.sortBy(exp, sort)); | ||
| }); | ||
| it('circleRange', function () { | ||
| var exp = [ | ||
| { x: -1, y: 3 }, | ||
| { x: -1, y: 2 }, | ||
| { x: -1, y: 1 }, | ||
| { x: -1, y: 0 }, | ||
| { x: -1, y: -1 }, | ||
| { x: 0, y: 3 }, | ||
| { x: 0, y: 2 }, | ||
| { x: 0, y: 1 }, | ||
| { x: 0, y: 0 }, | ||
| { x: 0, y: -1 }, | ||
| { x: 1, y: 3 }, | ||
| { x: 1, y: 2 }, | ||
| { x: 1, y: 0 }, | ||
| { x: 1, y: -1 }, | ||
| { x: 2, y: 3 }, | ||
| { x: 2, y: 2 }, | ||
| { x: 2, y: 1 }, | ||
| { x: 2, y: 0 }, | ||
| { x: 2, y: -1 }, | ||
| { x: 3, y: 3 }, | ||
| { x: 3, y: 2 }, | ||
| { x: 3, y: 1 }, | ||
| { x: 3, y: 0 }, | ||
| { x: 3, y: -1 } | ||
| ]; | ||
| expect(_.sortBy(rangeApi.circleRange({ x: 1, y: 1 }, 2), sort)).toEqual(_.sortBy(exp, sort)); | ||
| // console.log(_.sortBy(rangeApi.circleRange({ x: 1, y: 1 }, 2))); | ||
| // console.log('----'); | ||
| // console.log(_.sortBy(exp, sort)); | ||
| }); | ||
| it('manhattan', function () { | ||
| var exp = [ | ||
| { x: -1, y: 1 }, | ||
| { x: 0, y: 2 }, | ||
| { x: 0, y: 1 }, | ||
| { x: 0, y: 0 }, | ||
| { x: 1, y: 3 }, | ||
| { x: 1, y: 2 }, | ||
| { x: 1, y: 0 }, | ||
| { x: 1, y: -1 }, | ||
| { x: 2, y: 2 }, | ||
| { x: 2, y: 1 }, | ||
| { x: 2, y: 0 }, | ||
| { x: 3, y: 1 } | ||
| ]; | ||
| expect(_.sortBy(rangeApi.manhattanRange({ x: 1, y: 1 }, 2), sort)).toEqual(_.sortBy(exp, sort)); | ||
| }); | ||
| it('unique', function () { | ||
| var source = [ | ||
| { x: 1, y: 1 }, | ||
| { x: 1, y: 1 }, | ||
| { x: 1, y: 2 }, | ||
| { x: 1, y: 2 } | ||
| ]; | ||
| var target = [ | ||
| { x: 1, y: 1 }, | ||
| { x: 1, y: 2 } | ||
| ]; | ||
| var exp = rangeApi.unique(source); | ||
| expect(exp).toEqual(target); | ||
| }); | ||
| it('sub', function () { | ||
| var source = [ | ||
| { x: 1, y: 1 }, | ||
| { x: 1, y: 3 }, | ||
| { x: 1, y: 2 } | ||
| ]; | ||
| var target = [ | ||
| { x: 1, y: 1 }, | ||
| { x: 1, y: 2 } | ||
| ]; | ||
| var exp = rangeApi.sub(source, target); | ||
| expect(exp).toEqual([{ x: 1, y: 3 }]); | ||
| }); | ||
| it('getBetween', function () { | ||
| var pa = { x: 1, y: 4 }; | ||
| var pb = { x: 1, y: 2 }; | ||
| var target = [ | ||
| { x: 1, y: 3 } | ||
| ]; | ||
| expect(rangeApi.getBetween(pa, pb)).toEqual(target); | ||
| }); | ||
| }); | ||
| //# sourceMappingURL=rangeApiSpec.js.map |
| {"version":3,"file":"rangeApiSpec.js","sourceRoot":"","sources":["../../test/rangeApiSpec.ts"],"names":[],"mappings":"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"} |
Sorry, the diff of this file is not supported yet
8102
-72.57%7
-56.25%295
-51.48%