fork(1) download
  1.  
  2. code = ->(n){%w{Al Am A.s Ar Ac Ant|Sb A.t Ba B..k Be Bi B.h Br B C.+s C.d C.+f Ce C(ar)
  3. C....n Ca C....m Cop|Cu Co C.r C.l Dy D.+s D.b E..s Er Eu F..m Fl(e) Fr F G.d Ga
  4. Ge G|Au H.f H.s He Ho H In Iro|Fe Ir I Kr L.v L.+r La Li Lu L|Pb M.g Mo M.+d M.n
  5. M.+t M|Hg N.+d N.+p Ne N..b N(it) No Ni Os O P..m Pr(a) P.+d P...a P.u P..t Pot|K
  6. Po P R.+n$ Ra R.+g R.e Rh R.+b R.+f Ru S.m Sc S.+g Se S..v|Ag Si So|Na S.r S Ta
  7. T.c T.+b Te Th(o) T.....m T..l Tin|Sn Ti Tu|W U.u.o U.u.p U.u.s U.u.t U V Xe Y.+b
  8. Y Z.n Z.r}.find{|r|/^#{r}/.match(n)}.gsub(/.*\||\(.*|\W/,'')+"
  9. "}
  10. elements =
  11. "Ac Actinium
  12. Al Aluminium
  13. Am Americium
  14. Sb Antimony
  15. Ar Argon
  16. As Arsenic
  17. At Astatine
  18. Ba Barium
  19. Bk Berkelium
  20. Be Beryllium
  21. Bi Bismuth
  22. Bh Bohrium
  23. B Boron
  24. Br Bromine
  25. Cd Cadmium
  26. Cs Caesium
  27. Ca Calcium
  28. Cf Californium
  29. C Carbon
  30. Ce Cerium
  31. Cl Chlorine
  32. Cr Chromium
  33. Co Cobalt
  34. Cn Copernicium
  35. Cu Copper
  36. Cm Curium
  37. Ds Darmstadtium
  38. Db Dubnium
  39. Dy Dysprosium
  40. Es Einsteinium
  41. Er Erbium
  42. Eu Europium
  43. Fm Fermium
  44. Fl Flerovium
  45. F Fluorine
  46. Fr Francium
  47. Gd Gadolinium
  48. Ga Gallium
  49. Ge Germanium
  50. Au Gold
  51. Hf Hafnium
  52. Hs Hassium
  53. He Helium
  54. Ho Holmium
  55. H Hydrogen
  56. In Indium
  57. I Iodine
  58. Ir Iridium
  59. Fe Iron
  60. Kr Krypton
  61. La Lanthanum
  62. Lr Lawrencium
  63. Pb Lead
  64. Li Lithium
  65. Lv Livermorium
  66. Lu Lutetium
  67. Mg Magnesium
  68. Mn Manganese
  69. Mt Meitnerium
  70. Md Mendelevium
  71. Hg Mercury
  72. Mo Molybdenum
  73. Nd Neodymium
  74. Ne Neon
  75. Np Neptunium
  76. Ni Nickel
  77. Nb Niobium
  78. N Nitrogen
  79. No Nobelium
  80. Os Osmium
  81. O Oxygen
  82. Pd Palladium
  83. P Phosphorus
  84. Pt Platinum
  85. Pu Plutonium
  86. Po Polonium
  87. K Potassium
  88. Pr Praseodymium
  89. Pm Promethium
  90. Pa Protactinium
  91. Ra Radium
  92. Rn Radon
  93. Re Rhenium
  94. Rh Rhodium
  95. Rg Roentgenium
  96. Rb Rubidium
  97. Ru Ruthenium
  98. Rf Rutherfordium
  99. Sm Samarium
  100. Sc Scandium
  101. Sg Seaborgium
  102. Se Selenium
  103. Si Silicon
  104. Ag Silver
  105. Na Sodium
  106. Sr Strontium
  107. S Sulfur
  108. Ta Tantalum
  109. Tc Technetium
  110. Te Tellurium
  111. Tb Terbium
  112. Tl Thallium
  113. Th Thorium
  114. Tm Thulium
  115. Sn Tin
  116. Ti Titanium
  117. W Tungsten
  118. Uuo Ununoctium
  119. Uup Ununpentium
  120. Uus Ununseptium
  121. Uut Ununtrium
  122. U Uranium
  123. V Vanadium
  124. Xe Xenon
  125. Yb Ytterbium
  126. Y Yttrium
  127. Zn Zinc
  128. Zr Zirconium".split("\n")
  129.  
  130. elements.each{|l|
  131. a,n=l.split("\t")
  132. # r = `ruby periodic.rb #{n}`.chomp()
  133. r = code.call(n).chomp()
  134. print "#{n} => #{a} "
  135. if r!=a then
  136. print ("FAIL: gave #{r}")
  137. p r,a
  138. exit
  139. else
  140. print("\tOK\n")
  141. end
  142. }
  143. print("PASS: #{elements.size} elements matched\n")
  144.  
Success #stdin #stdout 0.07s 8272KB
stdin
Standard input is empty
stdout
Actinium => Ac 	OK
Aluminium => Al 	OK
Americium => Am 	OK
Antimony => Sb 	OK
Argon => Ar 	OK
Arsenic => As 	OK
Astatine => At 	OK
Barium => Ba 	OK
Berkelium => Bk 	OK
Beryllium => Be 	OK
Bismuth => Bi 	OK
Bohrium => Bh 	OK
Boron => B 	OK
Bromine => Br 	OK
Cadmium => Cd 	OK
Caesium => Cs 	OK
Calcium => Ca 	OK
Californium => Cf 	OK
Carbon => C 	OK
Cerium => Ce 	OK
Chlorine => Cl 	OK
Chromium => Cr 	OK
Cobalt => Co 	OK
Copernicium => Cn 	OK
Copper => Cu 	OK
Curium => Cm 	OK
Darmstadtium => Ds 	OK
Dubnium => Db 	OK
Dysprosium => Dy 	OK
Einsteinium => Es 	OK
Erbium => Er 	OK
Europium => Eu 	OK
Fermium => Fm 	OK
Flerovium => Fl 	OK
Fluorine => F 	OK
Francium => Fr 	OK
Gadolinium => Gd 	OK
Gallium => Ga 	OK
Germanium => Ge 	OK
Gold => Au 	OK
Hafnium => Hf 	OK
Hassium => Hs 	OK
Helium => He 	OK
Holmium => Ho 	OK
Hydrogen => H 	OK
Indium => In 	OK
Iodine => I 	OK
Iridium => Ir 	OK
Iron => Fe 	OK
Krypton => Kr 	OK
Lanthanum => La 	OK
Lawrencium => Lr 	OK
Lead => Pb 	OK
Lithium => Li 	OK
Livermorium => Lv 	OK
Lutetium => Lu 	OK
Magnesium => Mg 	OK
Manganese => Mn 	OK
Meitnerium => Mt 	OK
Mendelevium => Md 	OK
Mercury => Hg 	OK
Molybdenum => Mo 	OK
Neodymium => Nd 	OK
Neon => Ne 	OK
Neptunium => Np 	OK
Nickel => Ni 	OK
Niobium => Nb 	OK
Nitrogen => N 	OK
Nobelium => No 	OK
Osmium => Os 	OK
Oxygen => O 	OK
Palladium => Pd 	OK
Phosphorus => P 	OK
Platinum => Pt 	OK
Plutonium => Pu 	OK
Polonium => Po 	OK
Potassium => K 	OK
Praseodymium => Pr 	OK
Promethium => Pm 	OK
Protactinium => Pa 	OK
Radium => Ra 	OK
Radon => Rn 	OK
Rhenium => Re 	OK
Rhodium => Rh 	OK
Roentgenium => Rg 	OK
Rubidium => Rb 	OK
Ruthenium => Ru 	OK
Rutherfordium => Rf 	OK
Samarium => Sm 	OK
Scandium => Sc 	OK
Seaborgium => Sg 	OK
Selenium => Se 	OK
Silicon => Si 	OK
Silver => Ag 	OK
Sodium => Na 	OK
Strontium => Sr 	OK
Sulfur => S 	OK
Tantalum => Ta 	OK
Technetium => Tc 	OK
Tellurium => Te 	OK
Terbium => Tb 	OK
Thallium => Tl 	OK
Thorium => Th 	OK
Thulium => Tm 	OK
Tin => Sn 	OK
Titanium => Ti 	OK
Tungsten => W 	OK
Ununoctium => Uuo 	OK
Ununpentium => Uup 	OK
Ununseptium => Uus 	OK
Ununtrium => Uut 	OK
Uranium => U 	OK
Vanadium => V 	OK
Xenon => Xe 	OK
Ytterbium => Yb 	OK
Yttrium => Y 	OK
Zinc => Zn 	OK
Zirconium => Zr 	OK
PASS: 118 elements matched