fork(2) download
  1. # coding: utf-8
  2. require 'pp'
  3. require 'minitest/autorun'
  4.  
  5. K=
  6. ->t{s=r=t.size
  7. i=m=t[o=/ +/].size
  8. (0...2**t.scan(y=/\|+/).size).map{|n|q=-1
  9. x=t.gsub(y){|r|n[q+=1]<1?r:'\/'*r.size}
  10. d=i+s-x.size
  11. d<0||d<m&&r=x.gsub(o,' '*m=d)}
  12. r}
  13.  
  14. describe K do
  15. def test_case_0
  16. assert_equal '<\/=||:)~~(:\/\/\/\/>', K['<|=||:)~ ~(:||||>']
  17. end
  18.  
  19. def test_case_1
  20. assert_equal '<|=\/\/:)~~(:\/\/\/=|>', K['<|=||:)~ ~(:|||=|>']
  21. end
  22.  
  23. def test_case_2
  24. assert_equal '<\/\/=||||:)~ ~(:||>', K['<||=||||:)~ ~(:||>']
  25. end
  26. end
  27.  
  28.  
Success #stdin #stdout 0.06s 8808KB
stdin
Standard input is empty
stdout
Run options: --seed 42163

# Running tests:

...

Finished tests in 0.001162s, 2581.8578 tests/s, 2581.8578 assertions/s.

3 tests, 3 assertions, 0 failures, 0 errors, 0 skips