diff --git a/__tests__/shape.test.js b/__tests__/shape.test.js new file mode 100644 index 0000000000000000000000000000000000000000..93e99911105ecd6f324f5ca940a9612cdffb2779 --- /dev/null +++ b/__tests__/shape.test.js @@ -0,0 +1,27 @@ +import recognizeFromPoints, { Shapes } from "../src/shapes" + +describe("shape recognition", () => { + test("should return a shape description object", () => { + const points = [[0, 0]] + const result = recognizeFromPoints(points) + expect(result).not.toBeNull() + }) + test("should recognize simple rectangle", () => { + const points = [[0, 0], [10, 0], [10, 10], [0, 10]] + const result = recognizeFromPoints(points) + expect(result.shape).toBe(Shapes.rectangle) + }) + test("should recognize rectangle with many points", () => { + const points = [ + [0, 0], + [5, 1], + [10, 0], + [10, 6], + [10, 10], + [6, 10], + [0, 10], + ] + const result = recognizeFromPoints(points) + expect(result.shape).toBe(Shapes.rectangle) + }) +}) diff --git a/src/shapes.js b/src/shapes.js new file mode 100644 index 0000000000000000000000000000000000000000..c978a193396cb382214f72b3a98f775674d621e2 --- /dev/null +++ b/src/shapes.js @@ -0,0 +1,12 @@ +function recognizeFromPoints(points) { + return { + shape: Shapes.rectangle, + points, + } +} + +export const Shapes = { + rectangle: "rect", +} + +export default recognizeFromPoints