trace_visualization 0.0.1 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile +2 -1
- data/Rakefile +11 -1
- data/lib/trace_visualization/assert.rb +5 -0
- data/lib/trace_visualization/data/lexeme.rb +59 -0
- data/lib/trace_visualization/lexeme_overlap_filter.rb +64 -0
- data/lib/trace_visualization/mapping.rb +219 -56
- data/lib/trace_visualization/preprocessor/Makefile +43 -0
- data/lib/trace_visualization/preprocessor/hashmap.c +93 -0
- data/lib/trace_visualization/preprocessor/hashmap.h +27 -0
- data/lib/trace_visualization/preprocessor/hashmap_test.cpp +90 -0
- data/lib/trace_visualization/preprocessor/lexeme.h +11 -0
- data/lib/trace_visualization/preprocessor/lexeme_table.c +50 -0
- data/lib/trace_visualization/preprocessor/lexeme_table.h +13 -0
- data/lib/trace_visualization/preprocessor/lexeme_table_cpp.h +61 -0
- data/lib/trace_visualization/preprocessor/parser_functions.c +42 -0
- data/lib/trace_visualization/preprocessor/parser_test.cpp +71 -0
- data/lib/trace_visualization/preprocessor/preprocessor.l +18 -0
- data/lib/trace_visualization/preprocessor/test_main.cpp +39 -0
- data/lib/trace_visualization/profile.rb +38 -0
- data/lib/trace_visualization/reorder.rb +22 -11
- data/lib/trace_visualization/repetitions_psy.rb +1 -1
- data/lib/trace_visualization/suffix_array.rb +4 -0
- data/lib/trace_visualization/utils.rb +38 -0
- data/lib/trace_visualization/version.rb +1 -1
- data/lib/trace_visualization/visualization/console_color_print.rb +4 -2
- data/lib/trace_visualization.rb +68 -4
- data/spec/bwt_spec.rb +29 -7
- data/spec/lexeme_overlap_filter_spec.rb +59 -0
- data/spec/longest_common_prefix_spec.rb +3 -3
- data/spec/mapping_spec.rb +80 -34
- data/spec/reorder_spec.rb +25 -7
- data/spec/repetitions_psy_spec.rb +5 -5
- data/spec/suffix_array_spec.rb +30 -8
- data/spec/utils_spec.rb +30 -0
- metadata +22 -3
- data/LICENSE.txt +0 -22
data/spec/bwt_spec.rb
CHANGED
@@ -34,14 +34,36 @@ describe TraceVisualization::BurrowsWheelerTransform do
|
|
34
34
|
end
|
35
35
|
|
36
36
|
it "test with mapping" do
|
37
|
-
str = "127.0.0.1 a 127.0.0.1 b"
|
38
|
-
arr = TraceVisualization::Mapping.parse(str)
|
39
|
-
ip, ws, a, b = arr[0], arr[1], arr[2], arr[6]
|
37
|
+
str = "127.0.0.1 a 127.0.0.1 b" + TraceVisualization::TERMINATION_CHAR
|
40
38
|
|
41
|
-
|
42
|
-
|
39
|
+
mapped_str = TraceVisualization::Mapping.init do
|
40
|
+
default_tokens
|
41
|
+
end
|
42
|
+
|
43
|
+
mapped_str.process { from_string str }
|
44
|
+
|
45
|
+
ip, ws, a, b = mapped_str[0], mapped_str[1], mapped_str[2], mapped_str[6]
|
46
|
+
|
47
|
+
ip.to_str.should eq "127.0.0.1"
|
48
|
+
ws.to_str.should eq " "
|
49
|
+
a.to_str.should eq "a"
|
50
|
+
b.to_str.should eq "b"
|
51
|
+
|
52
|
+
puts "ip.ord = #{ip.ord}, ws.ord = #{ws.ord}, a = #{a.ord}, b = #{b.ord}"
|
53
|
+
|
54
|
+
sa = TraceVisualization::SuffixArray.effective(mapped_str)
|
55
|
+
|
56
|
+
(sa.length == mapped_str.length).should be_true
|
57
|
+
|
58
|
+
bwt = TraceVisualization::BurrowsWheelerTransform.bwt(mapped_str, sa, mapped_str.length)
|
59
|
+
bwt_str = bwt.inject("") { |res, c| res += c.to_str }
|
43
60
|
|
44
|
-
|
45
|
-
|
61
|
+
if ip < ws
|
62
|
+
bwt.should eq [ip, ip, a, ws, ws, b, ws]
|
63
|
+
bwt_str.should eq "127.0.0.1127.0.0.1a b "
|
64
|
+
else
|
65
|
+
sadasfa
|
66
|
+
end
|
46
67
|
end
|
68
|
+
|
47
69
|
end
|
@@ -0,0 +1,59 @@
|
|
1
|
+
require 'trace_visualization/lexeme_overlap_filter'
|
2
|
+
require 'trace_visualization/data/lexeme'
|
3
|
+
|
4
|
+
include TraceVisualization::Data
|
5
|
+
|
6
|
+
describe TraceVisualization::LexemeOverlapFilter do
|
7
|
+
|
8
|
+
it 'test 1' do
|
9
|
+
lexeme2 = Lexeme.new(:name, "aa")
|
10
|
+
lexeme3 = Lexeme.new(:name, "aaa")
|
11
|
+
lexeme6 = Lexeme.new(:name, "aaaaaa")
|
12
|
+
|
13
|
+
i1 = LexemePos.new(lexeme2, 2)
|
14
|
+
i2 = LexemePos.new(lexeme2, 6)
|
15
|
+
i3 = LexemePos.new(lexeme2, 10)
|
16
|
+
i4 = LexemePos.new(lexeme6, 8)
|
17
|
+
i5 = LexemePos.new(lexeme3, 3)
|
18
|
+
|
19
|
+
lexeme_positions = [i1, i2, i3, i4, i5]
|
20
|
+
|
21
|
+
result = TraceVisualization::LexemeOverlapFilter.process(lexeme_positions)
|
22
|
+
|
23
|
+
result.should eq [i5, i2, i4]
|
24
|
+
end
|
25
|
+
|
26
|
+
it 'test 2' do
|
27
|
+
lexeme2 = Lexeme.new(:name, "aa")
|
28
|
+
lexeme4 = Lexeme.new(:name, "aaaa")
|
29
|
+
|
30
|
+
i1 = LexemePos.new(lexeme2, 0)
|
31
|
+
i2 = LexemePos.new(lexeme4, 2)
|
32
|
+
i3 = LexemePos.new(lexeme2, 4)
|
33
|
+
i4 = LexemePos.new(lexeme4, 5)
|
34
|
+
i5 = LexemePos.new(lexeme2, 7)
|
35
|
+
|
36
|
+
lexemes = [i1, i2, i3, i4, i5]
|
37
|
+
|
38
|
+
result = TraceVisualization::LexemeOverlapFilter.process(lexemes)
|
39
|
+
|
40
|
+
result.should eq [i1, i2, i5]
|
41
|
+
end
|
42
|
+
|
43
|
+
it 'test 3' do
|
44
|
+
lexeme1 = Lexeme.new(:name, "a")
|
45
|
+
lexeme3 = Lexeme.new(:name, "aaa")
|
46
|
+
|
47
|
+
i1 = LexemePos.new(lexeme1, 1)
|
48
|
+
i2 = LexemePos.new(lexeme1, 3)
|
49
|
+
i3 = LexemePos.new(lexeme3, 0)
|
50
|
+
i4 = LexemePos.new(lexeme3, 3)
|
51
|
+
|
52
|
+
lexemes = [i1, i2, i3, i4]
|
53
|
+
|
54
|
+
result = TraceVisualization::LexemeOverlapFilter.process(lexemes)
|
55
|
+
|
56
|
+
result.should eq [i3, i4]
|
57
|
+
end
|
58
|
+
|
59
|
+
end
|
@@ -16,10 +16,10 @@ describe TraceVisualization::LongestCommonPrefix do
|
|
16
16
|
|
17
17
|
it 'should return correct result for mapped string', :current => true do
|
18
18
|
str = "127.0.0.1 foo\r\n127.0.0.1 bar"
|
19
|
-
|
19
|
+
mapped_str = TraceVisualization::Mapping.new(str)
|
20
20
|
|
21
|
-
sa = TraceVisualization::SuffixArray.effective(
|
22
|
-
lcp = TraceVisualization::LongestCommonPrefix.effective(
|
21
|
+
sa = TraceVisualization::SuffixArray.effective(mapped_str)
|
22
|
+
lcp = TraceVisualization::LongestCommonPrefix.effective(mapped_str, sa, mapped_str.length)
|
23
23
|
|
24
24
|
sa.should eq([6, 5, 8, 1, 10, 9, 2, 4, 3, 11, 7, 0])
|
25
25
|
lcp.should eq([0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 2])
|
data/spec/mapping_spec.rb
CHANGED
@@ -1,67 +1,113 @@
|
|
1
|
+
require 'trace_visualization'
|
1
2
|
require 'trace_visualization/mapping'
|
2
3
|
|
4
|
+
include TraceVisualization
|
5
|
+
include TraceVisualization::Data
|
6
|
+
|
3
7
|
describe TraceVisualization::Mapping do
|
4
|
-
it
|
5
|
-
str = "foo[1234]bar[1235]far[1234]"
|
8
|
+
it 'simple id values' do
|
9
|
+
str = "foo[1234]bar[1235]far[1234]\n"
|
6
10
|
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
+
mapping = TraceVisualization::Mapping.init do
|
12
|
+
default_tokens
|
13
|
+
end
|
14
|
+
|
15
|
+
mapping.process do
|
16
|
+
from_string(str)
|
17
|
+
end
|
18
|
+
|
19
|
+
mapping.length.should eq 13
|
11
20
|
|
12
|
-
ids =
|
21
|
+
ids = mapping.find_all { |lexeme| lexeme.name == :ID }
|
13
22
|
ids.size.should eq(3)
|
14
|
-
ids[0].
|
15
|
-
ids[1].
|
16
|
-
ids[2].
|
23
|
+
ids[0].value.should eq("[1234]")
|
24
|
+
ids[1].value.should eq("[1235]")
|
25
|
+
ids[2].value.should eq("[1234]")
|
17
26
|
ids[0].should eq(ids[2])
|
18
27
|
|
19
|
-
|
20
|
-
str2.should eq(str)
|
21
|
-
|
28
|
+
mapping.restore.should eq str
|
22
29
|
end
|
23
30
|
|
24
|
-
it
|
25
|
-
str = "user1 ip : 127.0.0.1 \r\nuser2 ip : 127.0.0.2"
|
31
|
+
it 'ip values' do
|
32
|
+
str = "user1 ip : 127.0.0.1 \r\nuser2 ip : 127.0.0.2\r\n"
|
33
|
+
|
34
|
+
mapping = TraceVisualization::Mapping.init do
|
35
|
+
default_tokens
|
36
|
+
end
|
37
|
+
|
38
|
+
mapping.process do
|
39
|
+
from_string(str)
|
40
|
+
end
|
26
41
|
|
27
|
-
|
28
|
-
arr.size.should eq(27)
|
42
|
+
mapping.length.should eq 29
|
29
43
|
|
30
|
-
ips =
|
44
|
+
ips = mapping.find_all { |lexeme| lexeme.name == :IP }
|
31
45
|
ips.size.should eq(2)
|
32
|
-
ips[0].
|
33
|
-
ips[1].
|
46
|
+
ips[0].value.should eq("127.0.0.1")
|
47
|
+
ips[1].value.should eq("127.0.0.2")
|
34
48
|
|
35
|
-
|
36
|
-
str2.should eq(str)
|
49
|
+
mapping.restore.should eq str
|
37
50
|
end
|
38
51
|
|
39
|
-
it
|
52
|
+
it 'compare different types' do
|
53
|
+
mapping = TraceVisualization::Mapping.init do
|
54
|
+
default_tokens
|
55
|
+
end
|
56
|
+
|
57
|
+
mapping.tokens.should_not be_nil
|
58
|
+
mapping.tokens[:ID].should_not be_nil
|
59
|
+
mapping.tokens[:IP].should_not be_nil
|
60
|
+
mapping.tokens[:TIME].should_not be_nil
|
61
|
+
|
40
62
|
# Ids
|
41
|
-
id_1 =
|
42
|
-
id_2 =
|
43
|
-
|
63
|
+
id_1 = Lexeme.new(:ID, "[12345678]", mapping.tokens[:ID][1].call("[12345678]"))
|
64
|
+
id_2 = Lexeme.new(:ID, "[12345679]", mapping.tokens[:ID][1].call("[12345679]"))
|
65
|
+
Reorder.process([id_1, id_2])
|
44
66
|
|
45
67
|
id_1.should be < id_2
|
46
68
|
|
47
69
|
# IPs
|
48
|
-
ip_1 =
|
49
|
-
ip_2 =
|
50
|
-
|
70
|
+
ip_1 = Lexeme.new(:IP, "127.0.0.1", mapping.tokens[:IP][1].call("127.0.0.1"))
|
71
|
+
ip_2 = Lexeme.new(:IP, "127.0.0.2", mapping.tokens[:IP][1].call("127.0.0.2"))
|
72
|
+
Reorder.process([ip_1, ip_2])
|
51
73
|
|
52
74
|
ip_1.should be < ip_2
|
53
75
|
|
54
76
|
# Time
|
55
|
-
time_1 =
|
56
|
-
time_2 =
|
57
|
-
|
77
|
+
time_1 = Lexeme.new(:TIME, '[16 Jan 2013 00:10:00]', mapping.tokens[:TIME][1].call('[16 Jan 2013 00:10:00]'))
|
78
|
+
time_2 = Lexeme.new(:TIME, '[16 Jan 2013 00:10:01]', mapping.tokens[:TIME][1].call('[16 Jan 2013 00:10:01]'))
|
79
|
+
Reorder.process([time_1, time_2])
|
58
80
|
|
59
81
|
# Different
|
60
|
-
|
82
|
+
Reorder.process([time_1, time_2, id_1, ip_1])
|
61
83
|
|
62
84
|
time_1.should be < time_2
|
63
85
|
id_1.should be < ip_1
|
64
86
|
id_1.should be < time_1
|
65
87
|
end
|
66
|
-
|
88
|
+
|
89
|
+
it 'Lexeme to_i conversion' do
|
90
|
+
lexeme = TraceVisualization::Data::Lexeme.new('unknown', 0, 0)
|
91
|
+
lexeme.ord = 0
|
92
|
+
lexeme.to_i.should eq 0
|
93
|
+
end
|
94
|
+
|
95
|
+
it 'item as array index' do
|
96
|
+
lexeme = TraceVisualization::Data::Lexeme.new('unknown', 0, 0)
|
97
|
+
lexeme.ord = 1
|
98
|
+
array = [0, 1, 2]
|
99
|
+
|
100
|
+
array[lexeme].should eq 1
|
101
|
+
end
|
67
102
|
|
103
|
+
it 'preprocessed string' do
|
104
|
+
str = 'Text {LEXEME;ID;[1234];1234} text {LEXEME;IP;127.0.0.127;1} text'
|
105
|
+
|
106
|
+
mapping = TraceVisualization::Mapping.new
|
107
|
+
mapping.process do
|
108
|
+
from_preprocessed_string str
|
109
|
+
end
|
110
|
+
|
111
|
+
mapping.size.should eq 19
|
112
|
+
end
|
113
|
+
end
|
data/spec/reorder_spec.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
require 'trace_visualization'
|
1
2
|
require 'trace_visualization/reorder'
|
2
3
|
|
3
4
|
describe TraceVisualization::Reorder do
|
@@ -6,37 +7,54 @@ describe TraceVisualization::Reorder do
|
|
6
7
|
include Comparable
|
7
8
|
|
8
9
|
attr_accessor :ord
|
9
|
-
attr_accessor :
|
10
|
+
attr_accessor :int_value
|
10
11
|
|
11
12
|
def initialize(theValue)
|
12
|
-
@
|
13
|
+
@int_value = theValue
|
13
14
|
end
|
14
15
|
|
15
16
|
def <=>(anOther)
|
16
|
-
@
|
17
|
+
@ord <=> anOther.ord
|
17
18
|
end
|
19
|
+
|
18
20
|
end
|
19
21
|
|
20
22
|
it "reorder values and set correct order" do
|
21
23
|
data = Array.new(100) { |index| A.new(index * 100) }
|
22
24
|
data.shuffle!
|
23
25
|
|
24
|
-
TraceVisualization::Reorder.process(data)
|
26
|
+
max_value = TraceVisualization::Reorder.process(data)
|
25
27
|
|
26
|
-
data.each { |item| item.ord.should eq(item.
|
28
|
+
data.each { |item| item.ord.should eq(item.int_value / 100 + 1) }
|
29
|
+
max_value.should eq 100
|
27
30
|
end
|
28
31
|
|
29
|
-
it "duplicate values with the same order"
|
32
|
+
it "duplicate values with the same order" do
|
30
33
|
x1, x2 = A.new(1), A.new(2)
|
31
34
|
x3, x4 = A.new(123456789), A.new(123456789)
|
32
35
|
|
33
36
|
data = [x1, x2, x3, x4].shuffle
|
34
37
|
|
35
|
-
TraceVisualization::Reorder.process(data)
|
38
|
+
max_value = TraceVisualization::Reorder.process(data)
|
36
39
|
|
37
40
|
x1.ord.should eq(1)
|
38
41
|
x2.ord.should eq(2)
|
39
42
|
x3.ord.should eq(3)
|
40
43
|
x4.ord.should eq(3)
|
44
|
+
|
45
|
+
max_value.should eq 3
|
46
|
+
end
|
47
|
+
|
48
|
+
it "test TERMINATION_CHAR" do
|
49
|
+
x1 = A.new(2**7)
|
50
|
+
x2 = A.new(2**9)
|
51
|
+
x3 = A.new(TraceVisualization::TERMINATION_CHAR.ord)
|
52
|
+
|
53
|
+
data = [x1, x2, x3].shuffle
|
54
|
+
max_value = TraceVisualization::Reorder.process(data)
|
55
|
+
|
56
|
+
(x1 < x2).should be_true
|
57
|
+
(x2 < x3).should be_true
|
58
|
+
max_value.should eq x3.ord
|
41
59
|
end
|
42
60
|
end
|
@@ -16,16 +16,16 @@ describe TraceVisualization::Repetitions do
|
|
16
16
|
|
17
17
|
it 'simple test PSY1 with mapping' do
|
18
18
|
str = "aaa[123]aaa"
|
19
|
-
|
19
|
+
mapped_str = TraceVisualization::Mapping.new(str)
|
20
20
|
|
21
|
-
TraceVisualization::Repetitions.psy1(
|
21
|
+
TraceVisualization::Repetitions.psy1(mapped_str, 3, false).should eq [{:lcp=>3, :i=>2, :j=>3}]
|
22
22
|
end
|
23
23
|
|
24
24
|
it 'test decode PSY1' do
|
25
25
|
str = "aaa[123]xyz[654]aaa[123]" # <---> "aaaXxyzYaaaX"
|
26
|
-
|
26
|
+
mapped_str = TraceVisualization::Mapping.new(str)
|
27
27
|
|
28
|
-
rs = TraceVisualization::Repetitions.psy1(
|
28
|
+
rs = TraceVisualization::Repetitions.psy1(mapped_str, 3)
|
29
29
|
|
30
30
|
rs.size.should eq 1
|
31
31
|
rs[0].length.should eq 4
|
@@ -34,6 +34,6 @@ describe TraceVisualization::Repetitions do
|
|
34
34
|
length = rs[0].length
|
35
35
|
position = rs[0].left_positions[0]
|
36
36
|
|
37
|
-
|
37
|
+
mapped_str.restore(position, length).should eq "aaa[123]"
|
38
38
|
end
|
39
39
|
end
|
data/spec/suffix_array_spec.rb
CHANGED
@@ -11,9 +11,9 @@ describe TraceVisualization::SuffixArray do
|
|
11
11
|
|
12
12
|
it "should correct process mapped string" do
|
13
13
|
str = "abc[123]def[456]ghi"
|
14
|
-
|
14
|
+
mapped_str = TraceVisualization::Mapping.new(str)
|
15
15
|
|
16
|
-
TraceVisualization::SuffixArray.naive(
|
16
|
+
TraceVisualization::SuffixArray.naive(mapped_str).should eq([0, 1, 2, 4, 5, 6, 8, 9, 10, 3, 7])
|
17
17
|
end
|
18
18
|
end
|
19
19
|
|
@@ -51,18 +51,40 @@ describe TraceVisualization::SuffixArray do
|
|
51
51
|
|
52
52
|
it "should correct process mapped string" do
|
53
53
|
str = "abc[123]def[456]ghi"
|
54
|
-
|
54
|
+
mapped_str = TraceVisualization::Mapping.new(str)
|
55
55
|
|
56
|
-
TraceVisualization::SuffixArray.effective(
|
56
|
+
TraceVisualization::SuffixArray.effective(mapped_str).should eq([0, 1, 2, 4, 5, 6, 8, 9, 10, 3, 7])
|
57
57
|
end
|
58
58
|
|
59
|
-
it "
|
60
|
-
str = "127.0.0.1
|
61
|
-
|
59
|
+
it "another string for mapped processing" do
|
60
|
+
str = "127.0.0.1 a 127.0.0.1 b"
|
61
|
+
|
62
|
+
# 'X a X b'
|
63
|
+
mapped_str = TraceVisualization::Mapping.new(str)
|
64
|
+
|
65
|
+
mapped_str[0].to_int.should eq 4
|
66
|
+
mapped_str[1].to_int.should eq 1
|
67
|
+
mapped_str[2].to_int.should eq 2
|
68
|
+
mapped_str[3].to_int.should eq 1
|
69
|
+
mapped_str[4].to_int.should eq 4
|
70
|
+
mapped_str[5].to_int.should eq 1
|
71
|
+
mapped_str[6].to_int.should eq 3
|
72
|
+
|
73
|
+
length_before = mapped_str.length
|
62
74
|
|
63
|
-
sa = TraceVisualization::SuffixArray.effective(
|
75
|
+
sa = TraceVisualization::SuffixArray.effective(mapped_str)
|
76
|
+
mapped_str.length.should be length_before
|
77
|
+
|
78
|
+
sa.should eq [1, 5, 3, 2, 6, 0, 4]
|
79
|
+
sa.length.should be mapped_str.length
|
64
80
|
end
|
65
81
|
|
82
|
+
it "bug with endless loop" do
|
83
|
+
str = "127.0.0.1 user login\r\n127.0.0.1 user logout"
|
84
|
+
mapped_str = TraceVisualization::Mapping.new(str)
|
85
|
+
|
86
|
+
sa = TraceVisualization::SuffixArray.effective(mapped_str)
|
87
|
+
end
|
66
88
|
end
|
67
89
|
|
68
90
|
end
|
data/spec/utils_spec.rb
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
require 'trace_visualization/utils'
|
2
|
+
|
3
|
+
require 'tempfile'
|
4
|
+
|
5
|
+
describe TraceVisualization::Utils do
|
6
|
+
it "lines pos" do
|
7
|
+
str = "qwerty\r\nqwerty\r\nqwerty"
|
8
|
+
lines_pos = TraceVisualization::Utils.lines_pos(str)
|
9
|
+
|
10
|
+
lines_pos.should eq [0, 8, 16]
|
11
|
+
end
|
12
|
+
|
13
|
+
it "read file test" do
|
14
|
+
file = Tempfile.new('trace_visualization_test')
|
15
|
+
begin
|
16
|
+
file.write("first line\r\nsecond line\r\nthird line")
|
17
|
+
file.close
|
18
|
+
|
19
|
+
str = TraceVisualization::Utils.read_file({
|
20
|
+
:file_name => file.path,
|
21
|
+
:n_lines => 2
|
22
|
+
})
|
23
|
+
|
24
|
+
expect(str).to eq "first line\r\nsecond line\r\n"
|
25
|
+
ensure
|
26
|
+
file.close
|
27
|
+
file.unlink
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: trace_visualization
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sergey
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-
|
11
|
+
date: 2013-09-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -132,17 +132,32 @@ files:
|
|
132
132
|
- .gitignore
|
133
133
|
- Gemfile
|
134
134
|
- LICENSE
|
135
|
-
- LICENSE.txt
|
136
135
|
- README.md
|
137
136
|
- Rakefile
|
138
137
|
- lib/trace_visualization.rb
|
138
|
+
- lib/trace_visualization/assert.rb
|
139
139
|
- lib/trace_visualization/bwt.rb
|
140
140
|
- lib/trace_visualization/bwt.rbold
|
141
141
|
- lib/trace_visualization/data/irepetition.rb
|
142
|
+
- lib/trace_visualization/data/lexeme.rb
|
142
143
|
- lib/trace_visualization/data/repetition.rb
|
143
144
|
- lib/trace_visualization/generators.rb
|
145
|
+
- lib/trace_visualization/lexeme_overlap_filter.rb
|
144
146
|
- lib/trace_visualization/longest_common_prefix.rb
|
145
147
|
- lib/trace_visualization/mapping.rb
|
148
|
+
- lib/trace_visualization/preprocessor/Makefile
|
149
|
+
- lib/trace_visualization/preprocessor/hashmap.c
|
150
|
+
- lib/trace_visualization/preprocessor/hashmap.h
|
151
|
+
- lib/trace_visualization/preprocessor/hashmap_test.cpp
|
152
|
+
- lib/trace_visualization/preprocessor/lexeme.h
|
153
|
+
- lib/trace_visualization/preprocessor/lexeme_table.c
|
154
|
+
- lib/trace_visualization/preprocessor/lexeme_table.h
|
155
|
+
- lib/trace_visualization/preprocessor/lexeme_table_cpp.h
|
156
|
+
- lib/trace_visualization/preprocessor/parser_functions.c
|
157
|
+
- lib/trace_visualization/preprocessor/parser_test.cpp
|
158
|
+
- lib/trace_visualization/preprocessor/preprocessor.l
|
159
|
+
- lib/trace_visualization/preprocessor/test_main.cpp
|
160
|
+
- lib/trace_visualization/profile.rb
|
146
161
|
- lib/trace_visualization/reorder.rb
|
147
162
|
- lib/trace_visualization/repetitions.rb
|
148
163
|
- lib/trace_visualization/repetitions_concatenation.rb
|
@@ -155,6 +170,7 @@ files:
|
|
155
170
|
- lib/trace_visualization/visualization/console_color_print.rb
|
156
171
|
- spec/bwt_spec.rb
|
157
172
|
- spec/generators_spec.rb
|
173
|
+
- spec/lexeme_overlap_filter_spec.rb
|
158
174
|
- spec/longest_common_prefix_spec.rb
|
159
175
|
- spec/mapping_spec.rb
|
160
176
|
- spec/reorder_spec.rb
|
@@ -164,6 +180,7 @@ files:
|
|
164
180
|
- spec/repetitions_spec.rb
|
165
181
|
- spec/spec_helper.rb
|
166
182
|
- spec/suffix_array_spec.rb
|
183
|
+
- spec/utils_spec.rb
|
167
184
|
- trace_visualization.gemspec
|
168
185
|
homepage: ''
|
169
186
|
licenses:
|
@@ -192,6 +209,7 @@ summary: Software for smart trace visualization
|
|
192
209
|
test_files:
|
193
210
|
- spec/bwt_spec.rb
|
194
211
|
- spec/generators_spec.rb
|
212
|
+
- spec/lexeme_overlap_filter_spec.rb
|
195
213
|
- spec/longest_common_prefix_spec.rb
|
196
214
|
- spec/mapping_spec.rb
|
197
215
|
- spec/reorder_spec.rb
|
@@ -201,4 +219,5 @@ test_files:
|
|
201
219
|
- spec/repetitions_spec.rb
|
202
220
|
- spec/spec_helper.rb
|
203
221
|
- spec/suffix_array_spec.rb
|
222
|
+
- spec/utils_spec.rb
|
204
223
|
has_rdoc:
|
data/LICENSE.txt
DELETED
@@ -1,22 +0,0 @@
|
|
1
|
-
Copyright (c) 2013 TODO: Write your name
|
2
|
-
|
3
|
-
MIT License
|
4
|
-
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
-
a copy of this software and associated documentation files (the
|
7
|
-
"Software"), to deal in the Software without restriction, including
|
8
|
-
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
-
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
-
permit persons to whom the Software is furnished to do so, subject to
|
11
|
-
the following conditions:
|
12
|
-
|
13
|
-
The above copyright notice and this permission notice shall be
|
14
|
-
included in all copies or substantial portions of the Software.
|
15
|
-
|
16
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
-
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
-
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
-
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
-
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
-
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
-
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|