avl_tree 1.1.3 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +42 -0
  3. data/bench/bench_thread.rb +39 -0
  4. data/lib/avl_tree.rb +4 -0
  5. data/lib/red_black_tree.rb +334 -38
  6. data/test/coverage/assets/0.8.0/application.css +799 -0
  7. data/test/coverage/assets/0.8.0/application.js +1559 -0
  8. data/test/coverage/assets/0.8.0/colorbox/border.png +0 -0
  9. data/test/coverage/assets/0.8.0/colorbox/controls.png +0 -0
  10. data/test/coverage/assets/0.8.0/colorbox/loading.gif +0 -0
  11. data/test/coverage/assets/0.8.0/colorbox/loading_background.png +0 -0
  12. data/test/coverage/assets/0.8.0/favicon_green.png +0 -0
  13. data/test/coverage/assets/0.8.0/favicon_red.png +0 -0
  14. data/test/coverage/assets/0.8.0/favicon_yellow.png +0 -0
  15. data/test/coverage/assets/0.8.0/loading.gif +0 -0
  16. data/test/coverage/assets/0.8.0/magnify.png +0 -0
  17. data/test/coverage/assets/0.8.0/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  18. data/test/coverage/assets/0.8.0/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  19. data/test/coverage/assets/0.8.0/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  20. data/test/coverage/assets/0.8.0/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  21. data/test/coverage/assets/0.8.0/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  22. data/test/coverage/assets/0.8.0/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  23. data/test/coverage/assets/0.8.0/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  24. data/test/coverage/assets/0.8.0/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  25. data/test/coverage/assets/0.8.0/smoothness/images/ui-icons_222222_256x240.png +0 -0
  26. data/test/coverage/assets/0.8.0/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
  27. data/test/coverage/assets/0.8.0/smoothness/images/ui-icons_454545_256x240.png +0 -0
  28. data/test/coverage/assets/0.8.0/smoothness/images/ui-icons_888888_256x240.png +0 -0
  29. data/test/coverage/assets/0.8.0/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
  30. data/test/coverage/index.html +72 -0
  31. data/test/test_avl_tree.rb +37 -0
  32. data/test/test_red_black_tree.rb +61 -45
  33. data/test/test_red_black_tree_thread.rb +39 -0
  34. metadata +40 -21
  35. data/README +0 -16
@@ -0,0 +1,39 @@
1
+ # -*- encoding: utf-8 -*-
2
+ require File.expand_path('./helper', File.dirname(__FILE__))
3
+
4
+ class TestRedBlackTree < Test::Unit::TestCase
5
+ def test_thread
6
+ h = ConcurrentRedBlackTree.new
7
+ num = 100000
8
+ max = 1000
9
+ threads = []
10
+ # writers
11
+ 2.times do
12
+ threads << Thread.new {
13
+ num.times do
14
+ key = rand(max)
15
+ h[key] = key
16
+ end
17
+ }
18
+ end
19
+ # deleters
20
+ 2.times do
21
+ threads << Thread.new {
22
+ num.times do
23
+ key = rand(max)
24
+ h.delete(key)
25
+ end
26
+ }
27
+ end
28
+ # readers
29
+ 2.times do
30
+ threads << Thread.new {
31
+ num.times do
32
+ key = rand(max)
33
+ h[key]
34
+ end
35
+ }
36
+ end
37
+ threads.each(&:join)
38
+ end
39
+ end
metadata CHANGED
@@ -1,15 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: avl_tree
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.3
5
- prerelease:
4
+ version: 1.2.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Hiroshi Nakamura
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2012-05-09 00:00:00.000000000 Z
11
+ date: 2014-09-28 00:00:00.000000000 Z
13
12
  dependencies: []
14
13
  description:
15
14
  email: nahi@ruby-lang.org
@@ -17,43 +16,63 @@ executables: []
17
16
  extensions: []
18
17
  extra_rdoc_files: []
19
18
  files:
20
- - lib/red_black_tree.rb
21
- - lib/avl_tree.rb
19
+ - README.md
20
+ - bench/bench.rb
22
21
  - bench/bench_element_size.rb
22
+ - bench/bench_thread.rb
23
23
  - bench/profile.rb
24
- - bench/bench.rb
25
- - test/test_red_black_tree.rb
24
+ - lib/avl_tree.rb
25
+ - lib/red_black_tree.rb
26
+ - test/coverage/assets/0.8.0/application.css
27
+ - test/coverage/assets/0.8.0/application.js
28
+ - test/coverage/assets/0.8.0/colorbox/border.png
29
+ - test/coverage/assets/0.8.0/colorbox/controls.png
30
+ - test/coverage/assets/0.8.0/colorbox/loading.gif
31
+ - test/coverage/assets/0.8.0/colorbox/loading_background.png
32
+ - test/coverage/assets/0.8.0/favicon_green.png
33
+ - test/coverage/assets/0.8.0/favicon_red.png
34
+ - test/coverage/assets/0.8.0/favicon_yellow.png
35
+ - test/coverage/assets/0.8.0/loading.gif
36
+ - test/coverage/assets/0.8.0/magnify.png
37
+ - test/coverage/assets/0.8.0/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png
38
+ - test/coverage/assets/0.8.0/smoothness/images/ui-bg_flat_75_ffffff_40x100.png
39
+ - test/coverage/assets/0.8.0/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png
40
+ - test/coverage/assets/0.8.0/smoothness/images/ui-bg_glass_65_ffffff_1x400.png
41
+ - test/coverage/assets/0.8.0/smoothness/images/ui-bg_glass_75_dadada_1x400.png
42
+ - test/coverage/assets/0.8.0/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png
43
+ - test/coverage/assets/0.8.0/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png
44
+ - test/coverage/assets/0.8.0/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png
45
+ - test/coverage/assets/0.8.0/smoothness/images/ui-icons_222222_256x240.png
46
+ - test/coverage/assets/0.8.0/smoothness/images/ui-icons_2e83ff_256x240.png
47
+ - test/coverage/assets/0.8.0/smoothness/images/ui-icons_454545_256x240.png
48
+ - test/coverage/assets/0.8.0/smoothness/images/ui-icons_888888_256x240.png
49
+ - test/coverage/assets/0.8.0/smoothness/images/ui-icons_cd0a0a_256x240.png
50
+ - test/coverage/index.html
26
51
  - test/helper.rb
27
52
  - test/test_avl_tree.rb
28
- - README
53
+ - test/test_red_black_tree.rb
54
+ - test/test_red_black_tree_thread.rb
29
55
  homepage: http://github.com/nahi/avl_tree
30
56
  licenses: []
57
+ metadata: {}
31
58
  post_install_message:
32
59
  rdoc_options: []
33
60
  require_paths:
34
61
  - lib
35
62
  required_ruby_version: !ruby/object:Gem::Requirement
36
- none: false
37
63
  requirements:
38
- - - ! '>='
64
+ - - ">="
39
65
  - !ruby/object:Gem::Version
40
66
  version: '0'
41
- segments:
42
- - 0
43
- hash: -4094052252433988634
44
67
  required_rubygems_version: !ruby/object:Gem::Requirement
45
- none: false
46
68
  requirements:
47
- - - ! '>='
69
+ - - ">="
48
70
  - !ruby/object:Gem::Version
49
71
  version: '0'
50
- segments:
51
- - 0
52
- hash: -4094052252433988634
53
72
  requirements: []
54
73
  rubyforge_project:
55
- rubygems_version: 1.8.23
74
+ rubygems_version: 2.4.1
56
75
  signing_key:
57
- specification_version: 3
58
- summary: AVL tree and Red-black tree in Ruby
76
+ specification_version: 4
77
+ summary: AVL tree, Red black tree and Lock-free Red black tree in Ruby
59
78
  test_files: []
data/README DELETED
@@ -1,16 +0,0 @@
1
- avl_tree - AVL tree and Red-black tree in Ruby
2
- Copyright (C) 2012 Hiroshi Nakamura <nahi@ruby-lang.org>
3
-
4
-
5
- == Author
6
-
7
- Name:: Hiroshi Nakamura
8
- E-mail:: nahi@ruby-lang.org
9
- Project web site:: http://github.com/nahi/avl_tree
10
-
11
-
12
- == License
13
-
14
- This program is copyrighted free software by Hiroshi Nakamura. You can
15
- redistribute it and/or modify it under the same terms of Ruby's license;
16
- either the dual license version in 2003, or any later version.