require 'test/unit' require 'bitclust/nameutils' class TestNameUtils < Test::Unit::TestCase include BitClust::NameUtils def test_libname? assert_equal true, libname?("_builtin") assert_equal true, libname?("fileutils") assert_equal true, libname?("socket") assert_equal true, libname?("open-uri") assert_equal true, libname?("net/http") assert_equal true, libname?("racc/cparse") assert_equal true, libname?("test/unit/testcase") assert_equal false, libname?("") assert_equal false, libname?("fileutils ") assert_equal false, libname?(" fileutils") assert_equal false, libname?("file utils") assert_equal false, libname?("fileutils\n") assert_equal false, libname?("fileutils\t") assert_equal false, libname?("fileutils.rb") assert_equal false, libname?("English.rb") assert_equal false, libname?("socket.so") assert_equal false, libname?("net/http.rb") assert_equal false, libname?("racc/cparse.so") end def test_libname2id assert_equal "_builtin", libname2id("_builtin") assert_equal "fileutils", libname2id("fileutils") assert_equal "socket", libname2id("socket") assert_equal "English", libname2id("English") assert_equal "open=2duri", libname2id("open-uri") assert_equal "net.http", libname2id("net/http") assert_equal "racc.cparse", libname2id("racc/cparse") assert_equal "test.unit.testcase", libname2id("test/unit/testcase") end def test_libid2name assert_equal "_builtin", libid2name("_builtin") assert_equal "fileutils", libid2name("fileutils") assert_equal "socket", libid2name("socket") assert_equal "English", libid2name("English") assert_equal "open-uri", libid2name("open=2duri") assert_equal "net/http", libid2name("net.http") assert_equal "racc/cparse", libid2name("racc.cparse") assert_equal "test/unit/testcase", libid2name("test.unit.testcase") end def test_classname? assert_equal true, classname?("fatal") assert_equal true, classname?("Array") assert_equal true, classname?("String") assert_equal true, classname?("Net::HTTP") assert_equal true, classname?("Test::Unit::TestCase") assert_equal false, classname?("") assert_equal false, classname?("Array ") assert_equal false, classname?(" Array") assert_equal false, classname?("Test Case") assert_equal false, classname?("TestCase\n") assert_equal false, classname?("\tTestCase") assert_equal false, classname?("string") assert_equal false, classname?("stringScanner") assert_equal false, classname?("net/http") assert_equal false, classname?("net.http") assert_equal false, classname?("open-uri") end def test_classname2id assert_equal "Array", classname2id("Array") assert_equal "String", classname2id("String") assert_equal "Net=HTTP", classname2id("Net::HTTP") assert_equal "Test=Unit=TestCase", classname2id("Test::Unit::TestCase") end def test_classid2name assert_equal "Array", classid2name("Array") assert_equal "String", classid2name("String") assert_equal "Net::HTTP", classid2name("Net=HTTP") assert_equal "Test::Unit::TestCase", classid2name("Test=Unit=TestCase") end def test_method_spec? assert_equal true, method_spec?("String#index") assert_equal true, method_spec?("CGI#accept") assert_equal true, method_spec?("Net::HTTP#ca_path") assert_equal true, method_spec?("FileUtils.#cp") end def test_methodid2spec assert_equal "String#index", methodid2specstring("String/i.index._builtin") assert_equal "CGI#accept", methodid2specstring("CGI/i.accept.cgi") assert_equal "Net::HTTP#ca_path", methodid2specstring("Net=HTTP/i.ca_path.net.http") assert_equal "FileUtils.#cp", methodid2specstring("FileUtils/m.cp.fileutils") end def test_methodid2libid assert_equal "_builtin", methodid2libid("String/i.index._builtin") assert_equal "cgi", methodid2libid("CGI/i.accept.cgi") assert_equal "net.http", methodid2libid("Net=HTTP/i.ca_path.net.http") assert_equal "open=2duri", methodid2libid("OpenURI/m.open.open=2duri") end def test_methodid2classid assert_equal "String", methodid2classid("String/i.index._builtin") assert_equal "CGI", methodid2classid("CGI/i.accept.cgi") assert_equal "Net=HTTP", methodid2classid("Net=HTTP/i.ca_path.net.http") end def test_methodid2typename assert_equal :instance_method, methodid2typename("String/i.index._builtin") assert_equal :instance_method, methodid2typename("CGI/i.accept.cgi") assert_equal :instance_method, methodid2typename("Net=HTTP/i.ca_path.net.http") assert_equal :singleton_method, methodid2typename("String/s.new._builtin") end def test_methodid2mname assert_equal "index", methodid2mname("String/i.index._builtin") assert_equal "accept", methodid2mname("CGI/i.accept.cgi") assert_equal "ca_path", methodid2mname("Net=HTTP/i.ca_path.net.http") end def test_methodname? assert_equal true, methodname?("index") assert_equal true, methodname?("accept") assert_equal true, methodname?("get") assert_equal true, methodname?("Array") assert_equal true, methodname?("getIndex") assert_equal true, methodname?("PROXY") assert_equal true, methodname?("HTTP_PROXY") assert_equal true, methodname?("gsub!") assert_equal true, methodname?("empty?") assert_equal true, methodname?("instance_eval") assert_equal true, methodname?("__send") assert_equal true, methodname?("__send__") assert_equal true, methodname?("__send!") assert_equal true, methodname?("+") assert_equal true, methodname?("-") assert_equal true, methodname?("*") assert_equal true, methodname?("/") assert_equal true, methodname?("&") assert_equal true, methodname?("|") assert_equal true, methodname?("^") assert_equal true, methodname?("`") assert_equal true, methodname?(">>") assert_equal true, methodname?("<<") assert_equal true, methodname?("+@") assert_equal true, methodname?("-@") assert_equal true, methodname?("!") assert_equal true, methodname?("!@") assert_equal true, methodname?("~") assert_equal true, methodname?("**") assert_equal true, methodname?("<") assert_equal true, methodname?(">") assert_equal true, methodname?("<=") assert_equal true, methodname?(">=") assert_equal true, methodname?("==") assert_equal true, methodname?("===") assert_equal true, methodname?("=~") assert_equal true, methodname?("[]") assert_equal true, methodname?("[]=") assert_equal false, methodname?("") assert_equal true, methodname?("!=") assert_equal false, methodname?("!~") assert_equal false, methodname?("&&") assert_equal false, methodname?("||") assert_equal false, methodname?("++") assert_equal false, methodname?(">>>") assert_equal false, methodname?("***") assert_equal false, methodname?("====") assert_equal false, methodname?("#accept") assert_equal false, methodname?(".new") assert_equal false, methodname?(".#cp") assert_equal false, methodname?("$gvar") assert_equal false, methodname?("CGI#accept") assert_equal false, methodname?("String.new") assert_equal false, methodname?("Net::HTTP.get") assert_equal false, methodname?("Net::HTTP.new") end def test_build_method_id assert_equal "String/i.index._builtin", build_method_id("_builtin", "String", :instance_method, "index") end # library private #def test_split_method_id # assert_equal ["String", "i", "index", "_builtin"], # split_method_id("String/i.index._builtin") #end def test_typename? assert_equal true, typename?(:instance_method) assert_equal true, typename?(:singleton_method) assert_equal true, typename?(:module_function) assert_equal true, typename?(:constant) assert_equal true, typename?(:special_variable) assert_equal false, typename?(:instance_eval) assert_equal false, typename?(:instance) assert_equal false, typename?(:singleton) assert_equal false, typename?("i") assert_equal false, typename?("s") assert_equal false, typename?(:i) assert_equal false, typename?(:s) end def test_typemark? assert_equal true, typemark?('.') assert_equal true, typemark?('#') assert_equal true, typemark?('.#') assert_equal true, typemark?('$') assert_equal true, typemark?('::') #marks = (0..255).map {|a| (0..255).map {|b| a.chr + b.chr } }.flatten marks = (0..127).map {|a| (0..127).map {|b| a.chr + b.chr } }.flatten (marks - %w( . # .# $ :: )).each do |m| assert_equal false, typemark?(m) end end def test_typechar? typechars = %w( i s m c v ) typechars.each do |c| assert_equal true, typechar?(c) end ((0..255).map {|b| b.chr } - typechars).each do |c| assert_equal false, typechar?(c) end end def test_typename2char assert_equal 's', typename2char(:singleton_method) assert_equal 'i', typename2char(:instance_method) assert_equal 'm', typename2char(:module_function) assert_equal 'c', typename2char(:constant) assert_equal 'v', typename2char(:special_variable) end def test_typechar2name assert_equal :singleton_method, typechar2name('s') assert_equal :instance_method, typechar2name('i') assert_equal :module_function, typechar2name('m') assert_equal :constant, typechar2name('c') assert_equal :special_variable, typechar2name('v') end def test_typemark2char assert_equal 's', typemark2char('.') assert_equal 'i', typemark2char('#') assert_equal 'm', typemark2char('.#') assert_equal 'c', typemark2char('::') assert_equal 'v', typemark2char('$') end def test_typechar2mark assert_equal '.', typechar2mark('s') assert_equal '#', typechar2mark('i') assert_equal '.#', typechar2mark('m') assert_equal '::', typechar2mark('c') assert_equal '$', typechar2mark('v') end def test_encodename_url assert_equal "Array", encodename_url("Array") assert_equal "String", encodename_url("String") assert_equal "index", encodename_url("index") assert_equal "=2a", encodename_url("*") assert_equal "=2a=2a", encodename_url("**") assert_equal "open=2duri", encodename_url("open-uri") assert_equal "net=2ehttp", encodename_url("net.http") end def test_decodename_url assert_equal "Array", decodename_url("Array") assert_equal "String", decodename_url("String") assert_equal "index", decodename_url("index") assert_equal "*", decodename_url("=2a") assert_equal "**", decodename_url("=2a=2a") assert_equal "open-uri", decodename_url("open=2duri") assert_equal "net.http", decodename_url("net=2ehttp") end def test_encodeid assert_equal "-array", encodeid("Array") assert_equal "-string", encodeid("String") assert_equal "-c-g-i", encodeid("CGI") assert_equal "=2a", encodeid("=2a") assert_equal "=2a=2a", encodeid("=2a=2a") assert_equal "open=2duri", encodeid("open=2duri") assert_equal "-net=-h-t-t-p", encodeid("Net=HTTP") end def test_decodeid assert_equal "Array", decodeid("-array") assert_equal "String", decodeid("-string") assert_equal "CGI", decodeid("-c-g-i") assert_equal "=2a", decodeid("=2a") assert_equal "=2a=2a", decodeid("=2a=2a") assert_equal "open=2duri", decodeid("open=2duri") assert_equal "Net=HTTP", decodeid("-net=-h-t-t-p") end def test_encodename_fs assert_equal "-array", encodename_fs("Array") assert_equal "-string", encodename_fs("String") assert_equal "index", encodename_fs("index") assert_equal "=2a", encodename_fs("*") assert_equal "=2a=2a", encodename_fs("**") assert_equal "open=2duri", encodename_fs("open-uri") assert_equal "net=2ehttp", encodename_fs("net.http") end def test_decodename_fs assert_equal "Array", decodename_fs("-array") assert_equal "String", decodename_fs("-string") assert_equal "index", decodename_fs("index") assert_equal "*", decodename_fs("=2a") assert_equal "**", decodename_fs("=2a=2a") assert_equal "open-uri", decodename_fs("open=2duri") assert_equal "net.http", decodename_fs("net=2ehttp") end end