4 # The script finds the fragments
11 symbolsDir = "#{baseDir}/symbols"
16 allSyms = parser.parse("#{symbolsDir}/inet")
18 everything = allSyms.merge
26 #everything.find_all do | symName, keycodes |
27 #puts "#{symName}, #{keycodes.length} mappings -> "
28 # keycodes.find_all do | keycode, counter |
29 # puts " #{keycode} -> #{counter} occurences"
31 # numCombinations *= (keycodes.length + 1)
34 #puts "Total mappings: #{everything.length}/#{everything.full_length()}, #{numCombinations} combinations"
38 allSyms.find_all do | symsName, symbols |
41 # Counting only symbols which used more than once
42 numDupSymbols = symbols.keys.inject(0) do | rv, keycode |
43 c = everything.cardinality(keycode, symbols[keycode])
44 puts "#{keycode} -> #{symbols[keycode]}, #{c}"
48 numCombinations += (1 << numDupSymbols)
49 puts "l: #{symbols.length} d: #{numDupSymbols} c: #{numCombinations}"
52 puts "numCombinations: #{numCombinations}"