Class: TestFiber

Inherits:
Test::Unit::TestCase
  • Object
show all
Defined in:
lib/ruby19/tmm1-fiber18-a37a4c3/test/test_fiber.rb

Instance Method Summary collapse

Instance Method Details

#test_many_fibersObject



31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/ruby19/tmm1-fiber18-a37a4c3/test/test_fiber.rb', line 31

def test_many_fibers
  max = 10000
  assert_equal(max, max.times{
    Fiber.new{}
  })
  assert_equal(max,
    max.times{|i|
      Fiber.new{
      }.resume
    }
  )
end

#test_normalObject



6
7
8
9
10
11
12
13
14
15
# File 'lib/ruby19/tmm1-fiber18-a37a4c3/test/test_fiber.rb', line 6

def test_normal
  f = Fiber.current
  assert_equal(:ok2,
    Fiber.new{|e|
      assert_equal(:ok1, e)
      Fiber.yield :ok2
    }.resume(:ok1)
  )
  assert_equal([:a, :b], Fiber.new{|a, b| [a, b]}.resume(:a, :b))
end

#test_termObject



17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/ruby19/tmm1-fiber18-a37a4c3/test/test_fiber.rb', line 17

def test_term
  assert_equal(:ok, Fiber.new{:ok}.resume)
  assert_equal([:a, :b, :c, :d, :e],
    Fiber.new{
      Fiber.new{
        Fiber.new{
          Fiber.new{
            [:a]
          }.resume + [:b]
        }.resume + [:c]
      }.resume + [:d]
    }.resume + [:e])
end