Fussy = require 'fussy'

require 'colors'
util = require 'util'
puts = util.puts
pretty = (x) -> "#{util.inspect(x, false, 20, true)}"

fussy = new Fussy()

dataset_damaged = fussy.toolbox.dataset('data.csv', 'schema.json')

for obj in dataset_damaged
  keys = fussy.toolbox.shuffle Object.keys obj
  key = keys.shift()
  delete obj[key]

dataset_repaired = fussy.repair dataset_damaged

dataset_original = fussy.toolbox.dataset('data.csv', 'schema.json')

size = dataset_original.length

tests = 0
errors = 0

for i in [0...size]
  original = dataset_original[i]
  repaired = dataset_repaired[i]

  for key, value of original
    tests++

    if repaired[key] is value
      #puts "win!"
    else
      #puts "error!"
      errors++

puts "error ratio: #{tests / errors}"
