daff 1.1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (62) hide show
  1. data/bin/daff.rb +3 -0
  2. data/lib/daff.rb +95 -0
  3. data/lib/lib/coopy/alignment.rb +409 -0
  4. data/lib/lib/coopy/bag.rb +10 -0
  5. data/lib/lib/coopy/cell_info.rb +29 -0
  6. data/lib/lib/coopy/change.rb +48 -0
  7. data/lib/lib/coopy/change_type.rb +21 -0
  8. data/lib/lib/coopy/compare.rb +98 -0
  9. data/lib/lib/coopy/compare_flags.rb +46 -0
  10. data/lib/lib/coopy/compare_table.rb +402 -0
  11. data/lib/lib/coopy/coopy.rb +414 -0
  12. data/lib/lib/coopy/cross_match.rb +16 -0
  13. data/lib/lib/coopy/csv.rb +181 -0
  14. data/lib/lib/coopy/diff_render.rb +254 -0
  15. data/lib/lib/coopy/highlight_patch.rb +651 -0
  16. data/lib/lib/coopy/highlight_patch_unit.rb +37 -0
  17. data/lib/lib/coopy/index.rb +101 -0
  18. data/lib/lib/coopy/index_item.rb +20 -0
  19. data/lib/lib/coopy/index_pair.rb +87 -0
  20. data/lib/lib/coopy/mover.rb +195 -0
  21. data/lib/lib/coopy/ordering.rb +49 -0
  22. data/lib/lib/coopy/report.rb +23 -0
  23. data/lib/lib/coopy/row.rb +9 -0
  24. data/lib/lib/coopy/simple_cell.rb +23 -0
  25. data/lib/lib/coopy/simple_table.rb +242 -0
  26. data/lib/lib/coopy/simple_view.rb +41 -0
  27. data/lib/lib/coopy/sparse_sheet.rb +50 -0
  28. data/lib/lib/coopy/table.rb +17 -0
  29. data/lib/lib/coopy/table_comparison_state.rb +32 -0
  30. data/lib/lib/coopy/table_diff.rb +738 -0
  31. data/lib/lib/coopy/table_io.rb +33 -0
  32. data/lib/lib/coopy/table_modifier.rb +39 -0
  33. data/lib/lib/coopy/table_text.rb +25 -0
  34. data/lib/lib/coopy/unit.rb +70 -0
  35. data/lib/lib/coopy/view.rb +14 -0
  36. data/lib/lib/coopy/viewed_datum.rb +37 -0
  37. data/lib/lib/coopy/viterbi.rb +172 -0
  38. data/lib/lib/coopy/workspace.rb +22 -0
  39. data/lib/lib/haxe/ds/int_map.rb +14 -0
  40. data/lib/lib/haxe/ds/string_map.rb +14 -0
  41. data/lib/lib/haxe/format/json_parser.rb +264 -0
  42. data/lib/lib/haxe/format/json_printer.rb +239 -0
  43. data/lib/lib/haxe/io/bytes.rb +33 -0
  44. data/lib/lib/haxe/io/eof.rb +17 -0
  45. data/lib/lib/haxe/io/error.rb +21 -0
  46. data/lib/lib/haxe/io/output.rb +40 -0
  47. data/lib/lib/haxe/log.rb +16 -0
  48. data/lib/lib/hx_overrides.rb +18 -0
  49. data/lib/lib/imap.rb +6 -0
  50. data/lib/lib/lambda.rb +36 -0
  51. data/lib/lib/list.rb +42 -0
  52. data/lib/lib/rb/boot.rb +19 -0
  53. data/lib/lib/rb/ruby_iterator.rb +49 -0
  54. data/lib/lib/reflect.rb +29 -0
  55. data/lib/lib/string_buf.rb +14 -0
  56. data/lib/lib/sys.rb +19 -0
  57. data/lib/lib/sys/io/file.rb +19 -0
  58. data/lib/lib/sys/io/file_handle.rb +17 -0
  59. data/lib/lib/sys/io/file_output.rb +35 -0
  60. data/lib/lib/type.rb +32 -0
  61. data/lib/lib/value_type.rb +22 -0
  62. metadata +181 -0
@@ -0,0 +1,33 @@
1
+ #!/usr/bin/env ruby
2
+ # encoding: utf-8
3
+
4
+ module Coopy
5
+ class TableIO
6
+
7
+ def initialize
8
+ end
9
+
10
+ def get_content(name)
11
+ return ::Sys::Io::HxFile.get_content(name)
12
+ end
13
+
14
+ def save_content(name,txt)
15
+ ::Sys::Io::HxFile.save_content(name,txt)
16
+ return true
17
+ end
18
+
19
+ def args
20
+ return HxSys.args
21
+ end
22
+
23
+ def write_stdout(txt)
24
+ HxSys.stdout.write_string(txt)
25
+ end
26
+
27
+ def write_stderr(txt)
28
+ HxSys.stderr.write_string(txt)
29
+ end
30
+
31
+ end
32
+
33
+ end
@@ -0,0 +1,39 @@
1
+ #!/usr/bin/env ruby
2
+ # encoding: utf-8
3
+
4
+ module Coopy
5
+ class TableModifier
6
+
7
+ def initialize(t)
8
+ @t = t
9
+ end
10
+
11
+ protected
12
+
13
+ attr_accessor :t
14
+
15
+ public
16
+
17
+ def remove_column(at)
18
+ fate = []
19
+ begin
20
+ _g1 = 0
21
+ _g = @t.get_width
22
+ while(_g1 < _g)
23
+ i = _g1
24
+ _g1+=1
25
+ if i < at
26
+ fate.push(i)
27
+ elsif i > at
28
+ fate.push(i - 1)
29
+ else
30
+ fate.push(-1)
31
+ end
32
+ end
33
+ end
34
+ return @t.insert_or_delete_columns(fate,@t.get_width - 1)
35
+ end
36
+
37
+ end
38
+
39
+ end
@@ -0,0 +1,25 @@
1
+ #!/usr/bin/env ruby
2
+ # encoding: utf-8
3
+
4
+ module Coopy
5
+ class TableText
6
+
7
+ def initialize(rows)
8
+ @rows = rows
9
+ @view = rows.get_cell_view
10
+ end
11
+
12
+ protected
13
+
14
+ attr_accessor :rows
15
+ attr_accessor :view
16
+
17
+ public
18
+
19
+ def get_cell_text(x,y)
20
+ return @view.to_s(@rows.get_cell(x,y))
21
+ end
22
+
23
+ end
24
+
25
+ end
@@ -0,0 +1,70 @@
1
+ #!/usr/bin/env ruby
2
+ # encoding: utf-8
3
+
4
+ module Coopy
5
+ class Unit
6
+
7
+ def initialize(l = -2,r = -2,p = -2)
8
+ @l = l
9
+ @r = r
10
+ @p = p
11
+ end
12
+
13
+ attr_accessor :l
14
+ attr_accessor :r
15
+ attr_accessor :p
16
+
17
+ def lp
18
+ if @p == -2
19
+ return @l
20
+ else
21
+ return @p
22
+ end
23
+ end
24
+
25
+ def to_s
26
+ return _hx_str(::Coopy::Unit.describe(@p)) + "|" + _hx_str(::Coopy::Unit.describe(@l)) + ":" + _hx_str(::Coopy::Unit.describe(@r)) if @p >= -1
27
+ return _hx_str(::Coopy::Unit.describe(@l)) + ":" + _hx_str(::Coopy::Unit.describe(@r))
28
+ end
29
+
30
+ def from_string(txt)
31
+ txt += "]"
32
+ at = 0
33
+ begin
34
+ _g1 = 0
35
+ _g = txt.length
36
+ while(_g1 < _g)
37
+ i = _g1
38
+ _g1+=1
39
+ ch = (txt[i].ord rescue nil)
40
+ if ch >= 48 && ch <= 57
41
+ at *= 10
42
+ at += ch - 48
43
+ elsif ch == 45
44
+ at = -1
45
+ elsif ch == 124
46
+ @p = at
47
+ at = 0
48
+ elsif ch == 58
49
+ @l = at
50
+ at = 0
51
+ elsif ch == 93
52
+ @r = at
53
+ return true
54
+ end
55
+ end
56
+ end
57
+ return false
58
+ end
59
+
60
+ def Unit.describe(i)
61
+ if i >= 0
62
+ return "" + _hx_str(i)
63
+ else
64
+ return "-"
65
+ end
66
+ end
67
+
68
+ end
69
+
70
+ end
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+ # encoding: utf-8
3
+
4
+ module Coopy
5
+ class View
6
+ def toString(d) puts "Abstract View.toString called" end
7
+ def getBag(d) puts "Abstract View.getBag called" end
8
+ def getTable(d) puts "Abstract View.getTable called" end
9
+ def hasStructure(d) puts "Abstract View.hasStructure called" end
10
+ def equals(d1,d2) puts "Abstract View.equals called" end
11
+ def toDatum(str) puts "Abstract View.toDatum called" end
12
+ end
13
+
14
+ end
@@ -0,0 +1,37 @@
1
+ #!/usr/bin/env ruby
2
+ # encoding: utf-8
3
+
4
+ module Coopy
5
+ class ViewedDatum
6
+
7
+ def initialize(datum,view)
8
+ @datum = datum
9
+ @view = view
10
+ end
11
+
12
+ attr_accessor :datum
13
+ attr_accessor :view
14
+
15
+ def to_s
16
+ return @view.to_s(@datum)
17
+ end
18
+
19
+ def get_bag
20
+ return @view.get_bag(@datum)
21
+ end
22
+
23
+ def get_table
24
+ return @view.get_table(@datum)
25
+ end
26
+
27
+ def has_structure
28
+ return @view.has_structure(@datum)
29
+ end
30
+
31
+ def ViewedDatum.get_simple_view(datum)
32
+ return ::Coopy::ViewedDatum.new(datum,::Coopy::SimpleView.new)
33
+ end
34
+
35
+ end
36
+
37
+ end
@@ -0,0 +1,172 @@
1
+ #!/usr/bin/env ruby
2
+ # encoding: utf-8
3
+
4
+ module Coopy
5
+ class Viterbi
6
+
7
+ def initialize
8
+ @k = @t = 0
9
+ self.reset
10
+ @cost = ::Coopy::SparseSheet.new
11
+ @src = ::Coopy::SparseSheet.new
12
+ @path = ::Coopy::SparseSheet.new
13
+ end
14
+
15
+ protected
16
+
17
+ attr_accessor :k
18
+ attr_accessor :t
19
+ attr_accessor :index
20
+ attr_accessor :mode
21
+ attr_accessor :path_valid
22
+ attr_accessor :best_cost
23
+ attr_accessor :cost
24
+ attr_accessor :src
25
+ attr_accessor :path
26
+
27
+ public
28
+
29
+ def reset
30
+ @index = 0
31
+ @mode = 0
32
+ @path_valid = false
33
+ @best_cost = 0
34
+ end
35
+
36
+ def set_size(states,sequence_length)
37
+ @k = states
38
+ @t = sequence_length
39
+ @cost.resize(@k,@t,0)
40
+ @src.resize(@k,@t,-1)
41
+ @path.resize(1,@t,-1)
42
+ end
43
+
44
+ def assert_mode(_next)
45
+ @index+=1 if _next == 0 && @mode == 1
46
+ @mode = _next
47
+ end
48
+
49
+ def add_transition(s0,s1,c)
50
+ resize = false
51
+ if s0 >= @k
52
+ @k = s0 + 1
53
+ resize = true
54
+ end
55
+ if s1 >= @k
56
+ @k = s1 + 1
57
+ resize = true
58
+ end
59
+ if resize
60
+ @cost.non_destructive_resize(@k,@t,0)
61
+ @src.non_destructive_resize(@k,@t,-1)
62
+ @path.non_destructive_resize(1,@t,-1)
63
+ end
64
+ @path_valid = false
65
+ self.assert_mode(1)
66
+ if @index >= @t
67
+ @t = @index + 1
68
+ @cost.non_destructive_resize(@k,@t,0)
69
+ @src.non_destructive_resize(@k,@t,-1)
70
+ @path.non_destructive_resize(1,@t,-1)
71
+ end
72
+ sourced = false
73
+ if @index > 0
74
+ c += @cost.get(s0,@index - 1)
75
+ sourced = @src.get(s0,@index - 1) != -1
76
+ else
77
+ sourced = true
78
+ end
79
+ if sourced
80
+ if c < @cost.get(s1,@index) || @src.get(s1,@index) == -1
81
+ @cost.set(s1,@index,c)
82
+ @src.set(s1,@index,s0)
83
+ end
84
+ end
85
+ end
86
+
87
+ def end_transitions
88
+ @path_valid = false
89
+ self.assert_mode(0)
90
+ end
91
+
92
+ def begin_transitions
93
+ @path_valid = false
94
+ self.assert_mode(1)
95
+ end
96
+
97
+ def calculate_path
98
+ return if @path_valid
99
+ self.end_transitions
100
+ best = 0
101
+ bestj = -1
102
+ if @index <= 0
103
+ @path_valid = true
104
+ return
105
+ end
106
+ begin
107
+ _g1 = 0
108
+ _g = @k
109
+ while(_g1 < _g)
110
+ j = _g1
111
+ _g1+=1
112
+ if (@cost.get(j,@index - 1) < best || bestj == -1) && @src.get(j,@index - 1) != -1
113
+ best = @cost.get(j,@index - 1)
114
+ bestj = j
115
+ end
116
+ end
117
+ end
118
+ @best_cost = best
119
+ begin
120
+ _g11 = 0
121
+ _g2 = @index
122
+ while(_g11 < _g2)
123
+ j1 = _g11
124
+ _g11+=1
125
+ i = @index - 1 - j1
126
+ @path.set(0,i,bestj)
127
+ ::Haxe::Log._trace.call("Problem in Viterbi",{ file_name: "Viterbi.hx", line_number: 119, class_name: "coopy.Viterbi", method_name: "calculatePath"}) if !(bestj != -1 && (bestj >= 0 && bestj < @k))
128
+ bestj = @src.get(bestj,i)
129
+ end
130
+ end
131
+ @path_valid = true
132
+ end
133
+
134
+ def to_s
135
+ self.calculate_path
136
+ txt = ""
137
+ begin
138
+ _g1 = 0
139
+ _g = @index
140
+ while(_g1 < _g)
141
+ i = _g1
142
+ _g1+=1
143
+ if @path.get(0,i) == -1
144
+ txt += "*"
145
+ else
146
+ txt += @path.get(0,i)
147
+ end
148
+ txt += " " if @k >= 10
149
+ end
150
+ end
151
+ txt += " costs " + _hx_str(self.get_cost)
152
+ return txt
153
+ end
154
+
155
+ def length
156
+ self.calculate_path if @index > 0
157
+ return @index
158
+ end
159
+
160
+ def get(i)
161
+ self.calculate_path
162
+ return @path.get(0,i)
163
+ end
164
+
165
+ def get_cost
166
+ self.calculate_path
167
+ return @best_cost
168
+ end
169
+
170
+ end
171
+
172
+ end
@@ -0,0 +1,22 @@
1
+ #!/usr/bin/env ruby
2
+ # encoding: utf-8
3
+
4
+ module Coopy
5
+ class Workspace
6
+
7
+ def initialize
8
+ end
9
+
10
+ attr_accessor :parent
11
+ attr_accessor :local
12
+ attr_accessor :remote
13
+ attr_accessor :report
14
+ attr_accessor :tparent
15
+ attr_accessor :tlocal
16
+ attr_accessor :tremote
17
+ attr_accessor :p2l
18
+ attr_accessor :p2r
19
+ attr_accessor :l2r
20
+ end
21
+
22
+ end
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+ # encoding: utf-8
3
+
4
+ module Haxe
5
+ module Ds
6
+ class IntMap
7
+
8
+ def initialize
9
+ end
10
+
11
+ end
12
+
13
+ end
14
+ end
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+ # encoding: utf-8
3
+
4
+ module Haxe
5
+ module Ds
6
+ class StringMap
7
+
8
+ def initialize
9
+ end
10
+
11
+ end
12
+
13
+ end
14
+ end