aboutsummaryrefslogtreecommitdiff
path: root/xorg-server/xkeyboard-config/tests/ruby/find_fragments.rb
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2010-08-02 09:00:24 +0000
committermarha <marha@users.sourceforge.net>2010-08-02 09:00:24 +0000
commit240baf59a219841c5f8942c82f7ed61da9d2323b (patch)
tree76937e127002c1ba58c5a379651f20a17e866627 /xorg-server/xkeyboard-config/tests/ruby/find_fragments.rb
parent6c5a4ae0c8e57225ce31fb0a39c87ec9a5eed2b5 (diff)
parentd2758df0a0091496717fe7a65c3e7563e7c82785 (diff)
downloadvcxsrv-240baf59a219841c5f8942c82f7ed61da9d2323b.tar.gz
vcxsrv-240baf59a219841c5f8942c82f7ed61da9d2323b.tar.bz2
vcxsrv-240baf59a219841c5f8942c82f7ed61da9d2323b.zip
svn merge ^/branches/released .
Diffstat (limited to 'xorg-server/xkeyboard-config/tests/ruby/find_fragments.rb')
-rw-r--r--xorg-server/xkeyboard-config/tests/ruby/find_fragments.rb52
1 files changed, 52 insertions, 0 deletions
diff --git a/xorg-server/xkeyboard-config/tests/ruby/find_fragments.rb b/xorg-server/xkeyboard-config/tests/ruby/find_fragments.rb
new file mode 100644
index 000000000..f991ad0ab
--- /dev/null
+++ b/xorg-server/xkeyboard-config/tests/ruby/find_fragments.rb
@@ -0,0 +1,52 @@
+#!/usr/bin/ruby
+#
+# $Id$
+# The script finds the fragments
+#
+
+require "xkbparser.rb"
+
+baseDir = "../.."
+
+symbolsDir = "#{baseDir}/symbols"
+#symbolsDir = "."
+
+parser = Parser.new
+
+allSyms = parser.parse("#{symbolsDir}/inet")
+
+everything = allSyms.merge
+
+everything.filter(1)
+
+#numCombinations = 1
+
+#puts "everything:"
+
+#everything.find_all do | symName, keycodes |
+#puts "#{symName}, #{keycodes.length} mappings -> "
+# keycodes.find_all do | keycode, counter |
+# puts " #{keycode} -> #{counter} occurences"
+# end
+# numCombinations *= (keycodes.length + 1)
+#end
+
+#puts "Total mappings: #{everything.length}/#{everything.full_length()}, #{numCombinations} combinations"
+#
+
+numCombinations = 0
+allSyms.find_all do | symsName, symbols |
+ puts "n: #{symsName}"
+
+ # Counting only symbols which used more than once
+ numDupSymbols = symbols.keys.inject(0) do | rv, keycode |
+ c = everything.cardinality(keycode, symbols[keycode])
+ puts "#{keycode} -> #{symbols[keycode]}, #{c}"
+ (c > 0) ? rv : rv + 1
+ end
+
+ numCombinations += (1 << numDupSymbols)
+ puts "l: #{symbols.length} d: #{numDupSymbols} c: #{numCombinations}"
+end
+
+puts "numCombinations: #{numCombinations}"