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.
Files changed (37) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +2 -1
  3. data/Rakefile +11 -1
  4. data/lib/trace_visualization/assert.rb +5 -0
  5. data/lib/trace_visualization/data/lexeme.rb +59 -0
  6. data/lib/trace_visualization/lexeme_overlap_filter.rb +64 -0
  7. data/lib/trace_visualization/mapping.rb +219 -56
  8. data/lib/trace_visualization/preprocessor/Makefile +43 -0
  9. data/lib/trace_visualization/preprocessor/hashmap.c +93 -0
  10. data/lib/trace_visualization/preprocessor/hashmap.h +27 -0
  11. data/lib/trace_visualization/preprocessor/hashmap_test.cpp +90 -0
  12. data/lib/trace_visualization/preprocessor/lexeme.h +11 -0
  13. data/lib/trace_visualization/preprocessor/lexeme_table.c +50 -0
  14. data/lib/trace_visualization/preprocessor/lexeme_table.h +13 -0
  15. data/lib/trace_visualization/preprocessor/lexeme_table_cpp.h +61 -0
  16. data/lib/trace_visualization/preprocessor/parser_functions.c +42 -0
  17. data/lib/trace_visualization/preprocessor/parser_test.cpp +71 -0
  18. data/lib/trace_visualization/preprocessor/preprocessor.l +18 -0
  19. data/lib/trace_visualization/preprocessor/test_main.cpp +39 -0
  20. data/lib/trace_visualization/profile.rb +38 -0
  21. data/lib/trace_visualization/reorder.rb +22 -11
  22. data/lib/trace_visualization/repetitions_psy.rb +1 -1
  23. data/lib/trace_visualization/suffix_array.rb +4 -0
  24. data/lib/trace_visualization/utils.rb +38 -0
  25. data/lib/trace_visualization/version.rb +1 -1
  26. data/lib/trace_visualization/visualization/console_color_print.rb +4 -2
  27. data/lib/trace_visualization.rb +68 -4
  28. data/spec/bwt_spec.rb +29 -7
  29. data/spec/lexeme_overlap_filter_spec.rb +59 -0
  30. data/spec/longest_common_prefix_spec.rb +3 -3
  31. data/spec/mapping_spec.rb +80 -34
  32. data/spec/reorder_spec.rb +25 -7
  33. data/spec/repetitions_psy_spec.rb +5 -5
  34. data/spec/suffix_array_spec.rb +30 -8
  35. data/spec/utils_spec.rb +30 -0
  36. metadata +22 -3
  37. 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
- bwt = TraceVisualization::BurrowsWheelerTransform.bwt(arr, TraceVisualization::SuffixArray.effective(arr), arr.length)
42
- bwt_str = TraceVisualization::Mapping.restore(bwt)
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
- bwt.should eq [ip, ip, a, ws, ws, b, ws]
45
- bwt_str.should eq "127.0.0.1127.0.0.1a b "
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
- arr = TraceVisualization::Mapping.parse(str)
19
+ mapped_str = TraceVisualization::Mapping.new(str)
20
20
 
21
- sa = TraceVisualization::SuffixArray.effective(arr)
22
- lcp = TraceVisualization::LongestCommonPrefix.effective(arr, sa, arr.size)
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 "simple id values" do
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
- arr = TraceVisualization::Mapping.parse(str)
8
-
9
- arr.size.should eq(12)
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 = arr.find_all { |item| item.type == "id" }
21
+ ids = mapping.find_all { |lexeme| lexeme.name == :ID }
13
22
  ids.size.should eq(3)
14
- ids[0].src.should eq("[1234]")
15
- ids[1].src.should eq("[1235]")
16
- ids[2].src.should eq("[1234]")
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
- str2 = TraceVisualization::Mapping.restore(arr)
20
- str2.should eq(str)
21
-
28
+ mapping.restore.should eq str
22
29
  end
23
30
 
24
- it "ip values" do
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
- arr = TraceVisualization::Mapping.parse(str)
28
- arr.size.should eq(27)
42
+ mapping.length.should eq 29
29
43
 
30
- ips = arr.find_all { |item| item.type == "ip" }
44
+ ips = mapping.find_all { |lexeme| lexeme.name == :IP }
31
45
  ips.size.should eq(2)
32
- ips[0].src.should eq("127.0.0.1")
33
- ips[1].src.should eq("127.0.0.2")
46
+ ips[0].value.should eq("127.0.0.1")
47
+ ips[1].value.should eq("127.0.0.2")
34
48
 
35
- str2 = TraceVisualization::Mapping.restore(arr)
36
- str2.should eq(str)
49
+ mapping.restore.should eq str
37
50
  end
38
51
 
39
- it "compare different types" do
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 = TraceVisualization::Mapping::Item.new("[12345678]", "id")
42
- id_2 = TraceVisualization::Mapping::Item.new("[12345679]", "id")
43
- TraceVisualization::Reorder.process([id_1, id_2])
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 = TraceVisualization::Mapping::Item.new("127.0.0.1", "ip")
49
- ip_2 = TraceVisualization::Mapping::Item.new("127.0.0.2", "ip")
50
- TraceVisualization::Reorder.process([ip_1, ip_2])
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 = TraceVisualization::Mapping::Item.new("[16 Jan 2013 00:10:00]", "time")
56
- time_2 = TraceVisualization::Mapping::Item.new("[16 Jan 2013 00:10:01]", "time")
57
- TraceVisualization::Reorder.process([time_1, time_2])
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
- TraceVisualization::Reorder.process([time_1, time_2, id_1, ip_1])
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
- end
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 :value
10
+ attr_accessor :int_value
10
11
 
11
12
  def initialize(theValue)
12
- @value = theValue
13
+ @int_value = theValue
13
14
  end
14
15
 
15
16
  def <=>(anOther)
16
- @value <=> anOther.value
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.value / 100 + 1) }
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", :current => true do
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
- arr = TraceVisualization::Mapping.parse(str)
19
+ mapped_str = TraceVisualization::Mapping.new(str)
20
20
 
21
- TraceVisualization::Repetitions.psy1(arr, 3, false).should eq [{:lcp=>3, :i=>2, :j=>3}]
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
- arr = TraceVisualization::Mapping.parse(str)
26
+ mapped_str = TraceVisualization::Mapping.new(str)
27
27
 
28
- rs = TraceVisualization::Repetitions.psy1(arr, 3)
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
- TraceVisualization::Mapping.restore(arr[position ... position + length]).should eq "aaa[123]"
37
+ mapped_str.restore(position, length).should eq "aaa[123]"
38
38
  end
39
39
  end
@@ -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
- arr = TraceVisualization::Mapping.parse(str)
14
+ mapped_str = TraceVisualization::Mapping.new(str)
15
15
 
16
- TraceVisualization::SuffixArray.naive(arr).should eq([0, 1, 2, 4, 5, 6, 8, 9, 10, 3, 7])
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
- arr = TraceVisualization::Mapping.parse(str)
54
+ mapped_str = TraceVisualization::Mapping.new(str)
55
55
 
56
- TraceVisualization::SuffixArray.effective(arr).should eq([0, 1, 2, 4, 5, 6, 8, 9, 10, 3, 7])
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 "bug with endless loop" do
60
- str = "127.0.0.1 user login\r\n127.0.0.1 user logout"
61
- arr = TraceVisualization::Mapping.parse(str)
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(arr)
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
@@ -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.1
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-08-04 00:00:00.000000000 Z
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.