summaryrefslogtreecommitdiff
path: root/scripts/migrate_ref_tests.rb
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/migrate_ref_tests.rb')
-rwxr-xr-xscripts/migrate_ref_tests.rb34
1 files changed, 34 insertions, 0 deletions
diff --git a/scripts/migrate_ref_tests.rb b/scripts/migrate_ref_tests.rb
new file mode 100755
index 00000000..5ed02893
--- /dev/null
+++ b/scripts/migrate_ref_tests.rb
@@ -0,0 +1,34 @@
+#!/usr/bin/env ruby
+
+require 'json'
+
+Dir.glob('./tests/ref/**/grid.json').each do |path|
+ puts "Migrating #{path}"
+
+ # Read contents
+ s = File.open(path) { |f| f.read }
+
+ # Parse
+ grid = JSON.parse(s)
+
+ # Normalize Storage serialization
+ if grid['raw'].is_a? Array
+ grid['raw'] = {
+ 'inner' => grid['raw'][0],
+ 'zero' => grid['raw'][1],
+ 'visible_lines' => grid['raw'][2]
+ }
+ end
+
+ # Migrate Row serialization
+ grid['raw']['inner'].map! do |row|
+ if row.is_a? Hash
+ row
+ else
+ { inner: row, occ: row.length }
+ end
+ end
+
+ # Write updated grid
+ File.open(path, 'w') { |f| f << JSON.generate(grid) }
+end