Last active
August 24, 2017 09:21
-
-
Save tyabu12/91dede37f44d4586b8b5695f38811bc7 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
module VB | |
# 整数nの符号化 | |
# バイト列のバイナリへの変換を忘れないこと! | |
def self.encode_number(n) | |
bytes = [] | |
# ほげほげ | |
bytes # このままだと… | |
end | |
# 整数列numbersの符号化 | |
def self.encode(numbers) | |
bytestream = '' | |
# ほげほげ | |
bytestream | |
end | |
# バイナリのバイト列から整数列へ復号化 | |
# バイナリからバイト列への変換を忘れないこと! | |
def self.decode(bytestream) | |
numbers = [] | |
n = 0 | |
# ほげほげ | |
numbers | |
end | |
def self.encode_test | |
expects = [ | |
[ 1, '10000001'], | |
[ 5, '10000101'], | |
[127, '11111111'], | |
[128, '00000001' + '10000000'], | |
[129, '00000001' + '10000001'] | |
] | |
expects.each do |e| | |
res = encode_number(e[0]).unpack('B*')[0] | |
if res != e[1] then | |
STDERR.puts "Encode error: " + | |
"init=#{e[0]}, " + | |
"expect=#{e[1]}, " + | |
"result=#{res}" | |
end | |
end | |
end | |
def self.decode_test | |
1.upto(1000) do |i| | |
v = rand(1..(i+1)) | |
res = decode(encode_number(v))[0] | |
STDERR.puts "Decode error: #{v}" if res != v | |
end | |
end | |
end | |
# テストの時にコメントアウトしてね | |
#VB.encode_test | |
#VB.decode_test |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment