From 0dd6e92a2ca2d96e478a990b719b673efdc49818 Mon Sep 17 00:00:00 2001 From: brian ridley Date: Sat, 23 Jan 2016 16:39:10 +0000 Subject: [PATCH] Add javascript-astar definitions --- javascript-astar/javascript-astar-test.ts | 26 ++++++++++++++++ javascript-astar/javascript-astar.d.ts | 37 +++++++++++++++++++++++ 2 files changed, 63 insertions(+) create mode 100644 javascript-astar/javascript-astar-test.ts create mode 100644 javascript-astar/javascript-astar.d.ts diff --git a/javascript-astar/javascript-astar-test.ts b/javascript-astar/javascript-astar-test.ts new file mode 100644 index 0000000000..11e26fe030 --- /dev/null +++ b/javascript-astar/javascript-astar-test.ts @@ -0,0 +1,26 @@ +/// + +function test_create() { + let graph: Graph = new Graph([]); +} + +function test_create_with_diagonals() { + let graph: Graph = new Graph([], {diagonal: true}); +} + +function test_get_node() { + let graph: Graph = new Graph([[5, 1, 0, 9], [0, 8, 7, 1]]); + let node: GridNode = graph.grid[0][1]; +} + +function test_search_returns_nodes() { + let nodes: Array = astar.search(new Graph([]), {x: 1, y: 1}, {x: 2, y: 2}); +} + +function test_search_alternative_heuristic() { + let nodes: Array = astar.search(new Graph([]), {x: 1, y: 1}, {x: 2, y: 2}, {heuristic: astar.heuristics.manhatten}); +} + +function test_search_or_closest() { + let nodes: Array = astar.search(new Graph([], {diagonal: true}), {x: 1, y: 1}, {x: 2, y: 2}, {closest: true}); +} diff --git a/javascript-astar/javascript-astar.d.ts b/javascript-astar/javascript-astar.d.ts new file mode 100644 index 0000000000..c0748493c5 --- /dev/null +++ b/javascript-astar/javascript-astar.d.ts @@ -0,0 +1,37 @@ +// Type definitions for javascript-astar +// Project: https://github.com/bgrins/javascript-astar +// Definitions by: brian ridley +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +declare class Graph { + grid: Array>; + constructor(grid: Array>, options?: {diagonal?: boolean}); +} + +declare class GridNode { + x: number; + y: number; +} + +interface Heuristic { + (pos0: {x: number, y: number}, pos1: {x: number, y: number}): number; +} + +interface Heuristics { + manhatten: Heuristic; + diagonal: Heuristic; +} + +declare module astar { + function search( + graph: Graph, + start: {x: number, y: number}, + end: {x: number, y: number}, + options?: { + closest?: boolean, + heuristic?: Heuristic + } + ): Array; + var heuristics: Heuristics; +} +