diff options
Diffstat (limited to 'web/server/h2o/libh2o/misc/oktavia/test/test-fm-index.jsx')
-rw-r--r-- | web/server/h2o/libh2o/misc/oktavia/test/test-fm-index.jsx | 250 |
1 files changed, 0 insertions, 250 deletions
diff --git a/web/server/h2o/libh2o/misc/oktavia/test/test-fm-index.jsx b/web/server/h2o/libh2o/misc/oktavia/test/test-fm-index.jsx deleted file mode 100644 index 80035a61f..000000000 --- a/web/server/h2o/libh2o/misc/oktavia/test/test-fm-index.jsx +++ /dev/null @@ -1,250 +0,0 @@ -/** - * This is a JSX version of shellinford library: - * https://code.google.com/p/shellinford/ - * - * License: http://shibu.mit-license.org/ - */ - -import "test-case.jsx"; -import "fm-index.jsx"; - -class Pair -{ - var first : string; - var second : int; - function constructor (_first : string, _second : int) - { - this.first = _first; - this.second = _second; - } -} - -class _Test extends TestCase -{ - var str : string; - var rd : Map.<int>; - var pd : int[]; - var sd : string[]; - var didd : int[]; - var docd : string[]; - var fm : FMIndex; - var end_marker : string; - - override function setUp () : void - { - this.str = ""; - this.sd = [] : string[]; - this.rd = {} : Map.<int>; - this.pd = [] : int[]; - this.didd = [] : int[]; - this.docd = [] : string[]; - this.fm = new FMIndex(); - this.end_marker = String.fromCharCode(1); - - this.docd.push("abracadabra"); - this.docd.push("mississippi"); - this.docd.push("abracadabra mississippi"); - - var did = 0; - for (var i in this.docd) - { - var doc = this.docd[i]; - this.str += doc; - for (var j = 0; j < doc.length; j++){ - this.didd.push(did); - } - this.fm.push(doc); - did++; - } - - this.didd.push(did); - this.str += this.end_marker; - this.fm.build(this.end_marker, 3, false); - - for (var i = 0; i < this.str.length; i++) - { - for (var j = 1; j <= (this.str.length - i); j++) - { - var s = this.str.slice(i, i + j); - if (this.rd[s] == null) - { - this.rd[s] = 1; - } - else - { - this.rd[s]++; - } - } - } - - var v = [] : Pair[]; - for (var i = 0; i < this.str.length; i++) - { - var s = this.str.slice(i) + this.str.slice(0, i); - v.push(new Pair(s, i)); - } - v.sort(function (a: Pair, b: Pair) : number { - if (a.first < b.first) - { - return -1; - } - else if (a.first > b.first) - { - return 1; - } - return a.second - b.second; - }); - for (var i in v) - { - this.pd.push(v[i].second); - } - for (var i = 0; i < this.str.length; i++) - { - this.sd.push(this.str.slice(i)); - } - } - - function test_size () : void - { - this.expect(this.fm.size()).toBe(this.str.length); - } - - function test_getRows () : void - { - for (var i = 0; i < this.fm.size(); i++) - { - for (var j = i + 1; j < this.fm.size(); j++) - { - var s = this.str.slice(i, j); - this.expect(this.fm.getRows(s)).toBe(this.rd[s]); - } - } - } - - function test_getPosition () : void - { - for (var i = 0; i < this.fm.size(); i++) - { - this.expect(this.fm.getPosition(i)).toBe(this.pd[i]); - } - } - - function test_getSubstring () : void - { - for (var i = 0; i < this.fm.size(); i++) - { - this.expect(this.fm.getSubstring(i, this.fm.size())).toBe(this.sd[i]); - } - } - - function test_getSubstring2 () : void - { - this.fm = new FMIndex(); - this.fm.push("abracadabra"); - this.fm.push("mississippi"); - this.fm.push("abracadabra mississippi"); - this.fm.build(this.end_marker, 3, false); - this.expect(this.fm.getSubstring(0, 11)).toBe('abracadabra'); - this.expect(this.fm.getSubstring(11, 11)).toBe('mississippi'); - this.expect(this.fm.getSubstring(22, 23)).toBe('abracadabra mississippi'); - } - - function test_getPosition_boundary () : void - { - try - { - this.fm.getPosition(this.fm.size()); - this.fail("fm.getPosition()"); - } - catch (e : Error) - { - } - } - - function test_getSubstring_boundary () : void - { - try - { - this.fm.getSubstring(this.fm.size(), 0); - this.fail("fm.getSubstring()"); - } - catch (e : Error) - { - } - } - - function test_dump_load_and_size () : void - { - var dump = this.fm.dump(); - this.fm.load(dump); - - this.expect(this.fm.size()).toBe(this.str.length); - } - - function test_dump_load_and_getRows () : void - { - var dump = this.fm.dump(); - this.fm.load(dump); - - for (var i = 0; i < this.fm.size(); i++) - { - for (var j = i + 1; j < this.fm.size(); j++) - { - var s = this.str.slice(i, j); - this.expect(this.fm.getRows(s)).toBe(this.rd[s]); - } - } - } - - function test_dump_load_and_getPosition () : void - { - var dump = this.fm.dump(); - this.fm.load(dump); - - for (var i = 0; i < this.fm.size(); i++) - { - this.expect(this.fm.getPosition(i)).toBe(this.pd[i]); - } - } - - function test_dump_load_and_getSubstring () : void - { - var dump = this.fm.dump(); - this.fm.load(dump); - - for (var i = 0; i < this.fm.size(); i++) - { - this.expect(this.fm.getSubstring(i, this.fm.size())).toBe(this.sd[i]); - } - } - - function test_dump_load_and_getPosition_boundary () : void - { - var dump = this.fm.dump(); - this.fm.load(dump); - - try - { - this.fm.getPosition(this.fm.size()); - this.fail("fm.getPosition()"); - } - catch (e : Error) - { - } - } - - function test_dump_load_and_getSubstring_boundary () : void - { - var dump = this.fm.dump(); - this.fm.load(dump); - - try - { - this.fm.getSubstring(this.fm.size(), 0); - this.fail("fm.getSubstring()"); - } - catch (e : Error) - { - } - } -} |