daff 1.1.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 (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