UNPKG

@tanishiking/aho-corasick

Version:

TypeScript implementation of the Aho-Corasick algorithm for efficient string matching

46 lines (45 loc) 2.35 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var interval_1 = require("./interval"); var interval_node_1 = require("./interval-node"); describe('IntervalNode', function () { describe('findOverlaps', function () { var intervals = [ new interval_1.Interval(0, 2), new interval_1.Interval(1, 3), new interval_1.Interval(2, 4), new interval_1.Interval(3, 5), new interval_1.Interval(4, 6), new interval_1.Interval(5, 7), ]; var node = new interval_node_1.IntervalNode(intervals); // median = 3 test('left', function () { var overlaps = node.findOverlaps(new interval_1.Interval(1, 2)).sort(function (a, b) { return a.start - b.start; }); expect(overlaps).toHaveLength(3); expect(overlaps[0]).toEqual(new interval_1.Interval(0, 2)); expect(overlaps[1]).toEqual(new interval_1.Interval(1, 3)); expect(overlaps[2]).toEqual(new interval_1.Interval(2, 4)); }); test('right', function () { var overlaps = node.findOverlaps(new interval_1.Interval(5, 6)).sort(function (a, b) { return a.start - b.start; }); expect(overlaps).toHaveLength(3); expect(overlaps[0]).toEqual(new interval_1.Interval(3, 5)); expect(overlaps[1]).toEqual(new interval_1.Interval(4, 6)); expect(overlaps[2]).toEqual(new interval_1.Interval(5, 7)); }); test('interval', function () { var overlaps = node.findOverlaps(new interval_1.Interval(1, 3)).sort(function (a, b) { return a.start - b.start; }); expect(overlaps).toHaveLength(3); expect(overlaps[0]).toEqual(new interval_1.Interval(0, 2)); expect(overlaps[1]).toEqual(new interval_1.Interval(2, 4)); expect(overlaps[2]).toEqual(new interval_1.Interval(3, 5)); }); test('do not contains itself', function () { var overlaps = node.findOverlaps(new interval_1.Interval(5, 7)).sort(function (a, b) { return a.start - b.start; }); expect(overlaps).toHaveLength(2); expect(overlaps[0]).toEqual(new interval_1.Interval(3, 5)); expect(overlaps[1]).toEqual(new interval_1.Interval(4, 6)); }); }); });