rubylabs 0.8.1 → 0.8.2

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -14,6 +14,7 @@ begin
14
14
  gem.files = FileList['[A-Z]*', 'lib/**/*.rb', 'data/**/*.txt', 'bin/**/*.rb']
15
15
  gem.test_files = FileList['test/**/*.rb']
16
16
  gem.rubyforge_project = "rubylabs"
17
+ gem.has_rdoc = true
17
18
  end
18
19
 
19
20
  Jeweler::RubyforgeTasks.new
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.8.1
1
+ 0.8.2
@@ -33,6 +33,5 @@ def configure
33
33
  end
34
34
 
35
35
  if !defined? IRB
36
- puts "configuring interactive Ruby environment"
37
- # configure
36
+ configure
38
37
  end
data/data/tsp/ireland.txt CHANGED
@@ -1,10 +1,10 @@
1
1
  :map Ireland
2
2
 
3
- 299 190 dublin
3
+ 353 43 belfast
4
4
  80 331 cork
5
- 101 224 limerick
5
+ 299 190 dublin
6
6
  80 138 galway
7
- 353 43 belfast
7
+ 101 224 limerick
8
8
 
9
9
  :matrix driving distances (in kilometers) between cities
10
10
 
data/lib/demos.rb CHANGED
@@ -134,7 +134,37 @@ module Demos
134
134
  end
135
135
  end
136
136
 
137
+ =begin rdoc
138
+ Demonstrate modifiers and if statements
139
+ =end
137
140
 
141
+ def compound_names(a)
142
+ a.each { |s| puts s if s.include?(" ") }
143
+ end
144
+
145
+ def emphasize(s)
146
+ if s == "red" || s == "green" || s == "blue"
147
+ s.upcase!
148
+ s += "S"
149
+ end
150
+ return s
151
+ end
152
+
153
+ def drink_cup(n)
154
+ if n == 12
155
+ return "tall"
156
+ elsif n == 16
157
+ return "grande"
158
+ elsif n == 20
159
+ return "venti"
160
+ else
161
+ return n.to_s + " ounce"
162
+ end
163
+ end
164
+
165
+ def make_order(size, kind)
166
+ puts "I'll have a " + drink_cup(size) + " " + kind + ", please."
167
+ end
138
168
 
139
169
  end # Demos
140
170
 
data/lib/sievelab.rb CHANGED
@@ -20,7 +20,6 @@ module SieveLab
20
20
 
21
21
  # :begin :sieve
22
22
  def sieve(n)
23
- return [] if n < 2
24
23
  worksheet = Array(2..n)
25
24
  primes = []
26
25
 
data/lib/tsplab.rb CHANGED
@@ -90,10 +90,12 @@ module TSPLab
90
90
 
91
91
  def make_tour(*args)
92
92
  begin
93
- raise "usage" if args.length == 0
93
+ args << :any if args.length == 0
94
94
  case args[0]
95
+ when :any
96
+ tour = Tour.new(self, labels) # note labels returns clone of @labels array...
95
97
  when :random
96
- tour = Tour.new(self, permute!(labels)) # note labels returns clone of @labels array...
98
+ tour = Tour.new(self, permute!(labels))
97
99
  when :mutate
98
100
  raise "usage" unless args.length >= 2 && args[1].class == Tour && (args[2].nil? || args[2].class == Fixnum)
99
101
  child = args[1].clone
data/test/sieve_test.rb CHANGED
@@ -19,12 +19,16 @@ class TestSieve < Test::Unit::TestCase
19
19
 
20
20
  # Check length of list generated by sieve with expected number of primes (also from Wikipedia).
21
21
  # pi[i] is the number of primes less than 10**i. Note: calling sieve(n) with n less than 2
22
- # should quietly return an empty list.
22
+ # raises an exception ("NoMethodError: undefined method `<' for nil:NilClass")
23
23
 
24
24
  def test_02_pi
25
25
  pi = [0, 4, 25, 168, 1229] # 9592
26
- for i in 0..(pi.length-1)
26
+ for i in 1..(pi.length-1)
27
27
  assert_equal pi[i], sieve(10**i).length
28
28
  end
29
29
  end
30
+
31
+ def test_03_error
32
+ assert_raise(NoMethodError) { sieve(1) }
33
+ end
30
34
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubylabs
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.1
4
+ version: 0.8.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - conery
@@ -9,16 +9,14 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2010-08-08 00:00:00 -07:00
13
- default_executable:
12
+ date: 2010-09-27 00:00:00 -07:00
13
+ default_executable: lab-setup.rb
14
14
  dependencies: []
15
15
 
16
16
  description: A set of modules for interactive experiments in an introductory computer science class.
17
17
  email: conery@cs.uoregon.edu
18
18
  executables:
19
- - bb.rb
20
- - lab_setup.rb
21
- - statistics2.rb
19
+ - lab-setup.rb
22
20
  extensions: []
23
21
 
24
22
  extra_rdoc_files:
@@ -29,16 +27,7 @@ files:
29
27
  - README.rdoc
30
28
  - Rakefile
31
29
  - VERSION
32
- - bin/bb.rb
33
- - bin/lab_setup.rb
34
- - bin/statistics2-0.53/ext/extconf.rb
35
- - bin/statistics2-0.53/ext/show.rb
36
- - bin/statistics2-0.53/ext/t.rb
37
- - bin/statistics2-0.53/mklist.rb
38
- - bin/statistics2-0.53/sample-tbl.rb
39
- - bin/statistics2-0.53/statistics2.rb
40
- - bin/statistics2-0.53/t-inv.rb
41
- - bin/statistics2.rb
30
+ - bin/lab-setup.rb
42
31
  - data/arrays/cars.txt
43
32
  - data/arrays/colors.txt
44
33
  - data/arrays/fruit.txt
data/bin/bb.rb DELETED
@@ -1,12 +0,0 @@
1
- #! /usr/bin/ruby -rubygems
2
-
3
- # From: http://www.rubyagent.com/2007/03/starting-multi-agent-system-environment
4
-
5
- require 'drb/drb'
6
- require 'rinda/tuplespace'
7
-
8
- DRb.start_service("druby://localhost:53783", Rinda::TupleSpace.new)
9
-
10
- puts 'The blackboard is running...'
11
-
12
- DRb.thread.join
@@ -1,11 +0,0 @@
1
- require "mkmf"
2
- create_makefile("statistics2")
3
- open("Makefile", "a") do |f|
4
- f << "test:\n\truby -I./lib:. t.rb\n"
5
- f << "\n"
6
- f << "uninstall:\n"
7
- f << "\t@echo rm $(RUBYLIBDIR)/statistics2.rb\n"
8
- f << "\t@$(RM) $(RUBYLIBDIR)/statistics2.rb\n"
9
- f << "\t@echo rm $(RUBYARCHDIR)/statistics2.{o,so}\n"
10
- f << "\t@$(RM) $(RUBYARCHDIR)/statistics2.{o,so}\n"
11
- end
@@ -1,11 +0,0 @@
1
- #!/usr/bin/env ruby
2
- require "statistics2.so"
3
- if $0 == __FILE__
4
- if ARGV.empty?
5
- puts "Example:"
6
- puts " #$0 normaldist 0.01"
7
- puts " #$0 pf_x 2 3 0.01"
8
- exit
9
- end
10
- p Statistics2.send(ARGV[0], *ARGV[1..-1].map{|x| eval(x)})
11
- end
@@ -1,46 +0,0 @@
1
- require 'test/unit'
2
- $test = true
3
-
4
- $LOAD_PATH.unshift ".."
5
- require 'sample-tbl'
6
-
7
- eval(File.read('../statistics2.rb').sub(/\bStatistics2\b/, 'Statistics20'))
8
- $mod0 = Statistics20
9
-
10
- require 'statistics2.so'
11
- $mod = Statistics2
12
-
13
- class T_Statistics2 < Test::Unit::TestCase
14
-
15
- def test_normal
16
- norm_tbl(0.0, 3.1) do |x|
17
- a, b = $mod.normal___x(x), $mod0.normal___x(x)
18
- assert_in_delta a, b, 0.000001
19
- end
20
- end
21
-
22
- def test_chi
23
- chi2_tbl() do |n, x|
24
- a, b = $mod.pchi2_x(n, x), $mod0.pchi2_x(n, x)
25
- assert_in_delta a/b, 1.0, 0.01
26
- end
27
- end
28
-
29
- def test_t
30
- t_tbl() do |n, x|
31
- a, b = $mod.ptx__x(n, x), $mod.ptx__x(n, x)
32
- assert_in_delta a, b, 0.001
33
- end
34
- end
35
-
36
- def test_f
37
- [0.01, 0.025, 0.05].each do |opt|
38
- f_tbl(opt) do |n1, n2, y|
39
- a, b = $mod.pf_x(n1, n2, y), $mod0.pf_x(n1, n2, y)
40
- assert_in_delta a/b, 1.0, 0.01
41
- end
42
- end
43
- end
44
- end
45
-
46
- require "t-inv.rb"
@@ -1,26 +0,0 @@
1
- #!/usr/bin/env ruby
2
- cmd = "ruby sample-tbl.rb"
3
- param_tbl = [["norm", "tbl-nomral.tbl"],
4
- ["chi2", "tbl-chi2.tbl"],
5
- ["t", "tbl-t.tbl"],
6
- ["f 0.05", "tbl-F50.tbl"],
7
- ["f 0.025", "tbl-F25.tbl"],
8
- ["f 0.01", "tbl-F10.tbl"]]
9
-
10
- unless dir = ARGV.shift
11
- puts "Usage: $0 DIR"
12
- puts "-- This script creates some tables of distributions:"
13
- param_tbl.each do |mod, tbl|
14
- puts " " + mod + " => " + tbl
15
- end
16
- exit
17
- end
18
-
19
- unless File.directory? dir
20
- system("mkdir #{dir}")
21
- end
22
-
23
- param_tbl.each do |pa, tbl|
24
- file = File.join(dir, tbl)
25
- system("#{cmd} #{pa} > #{file}")
26
- end
@@ -1,129 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- if $test
4
- def nop(*a); ""; end
5
- alias _sprintf nop
6
- alias _printf nop
7
- alias _puts nop
8
- else
9
- alias _sprintf sprintf
10
- alias _printf printf
11
- alias _puts puts
12
- end
13
-
14
- def norm_line(x, n)
15
- s = sprintf("%1.1f|", x)
16
- (0.00).step(0.09, 0.01) do |y|
17
- s << _sprintf(" %1.#{n}f", yield(x + y))
18
- end
19
- s
20
- end
21
-
22
- def norm_tbl(s, e, ln = nil, tn = nil, &b)
23
- n = 4
24
- unless ln
25
- _printf(" " + (" "*(n-1) + "%1.2f")*10 + "\n", * (0..9).map {|x| x*0.01})
26
- end
27
- i = 0
28
- (s.to_f).step(e.to_f, 0.1) do |x|
29
- next if ln && ln.to_i != i+1
30
- _puts norm_line(x, n, &b)
31
- i += 1
32
- end
33
- end
34
-
35
- def chi2_tbl(ln = nil, tn = nil)
36
- pers = [0.995, 0.99, 0.975, 0.95, 0.05, 0.025, 0.01, 0.005]
37
- arbi = (1..30).to_a + [40, 60, 80, 100]
38
- form = " %7.5f"
39
- unless ln
40
- _printf(" "); pers.each do |a|; _printf(form, a); end; _puts
41
- end
42
- arbi.each_with_index do |n, i|
43
- next if ln && ln.to_i != i+1
44
- _printf("%4d|", n) unless tn
45
- pers.each_with_index do |a, j|
46
- next if tn && tn.to_i != j+1
47
- form = case n
48
- when 1; a >= 0.95 ? " %.4e" : " %6.3f"
49
- when 2..5; a >= 0.95 ? " %7.5f" : " %7.3f"
50
- when 6..24; " %7.3f"
51
- else 26..100; " %7.2f"
52
- end
53
- _printf(form, yield(n, a))
54
- end
55
- _puts
56
- end
57
- end
58
-
59
- def t_tbl(ln = nil, tn = nil)
60
- pers = [0.5, 0.4, 0.3, 0.2, 0.1, 0.05, 0.02, 0.01, 0.001]
61
- arbi = (1..30).to_a + [40, 60, 120]#, 9999]
62
- form = " %7.3f"
63
- unless ln
64
- _printf(" "); pers.each do |a|; _printf(form, a); end; _puts
65
- end
66
- arbi.each_with_index do |n, i|
67
- next if ln && ln.to_i != i+1
68
- _printf("%4d|", n) unless tn
69
- pers.each_with_index do |a, j|
70
- next if tn && tn.to_i != j+1
71
- _printf(form, yield(n, a))
72
- end
73
- _puts
74
- end
75
- end
76
-
77
- def f_tbl(a, k1 = nil, k2 = nil)
78
- arbi1 = (1..10).to_a + [12, 15, 20, 24, 30, 40, 60, 120]#, 9999]
79
- arbi2 = (1..30).to_a + [40, 60, 120]#, 9999]
80
- unless k1
81
- _printf(" "); arbi1.each do |n1|; _printf(" %4d", n1); end; _puts
82
- end
83
- arbi2.each do |n2|
84
- form = n2 == 1 ? " %4d" : n2 == 2 ? " %4.1f" : " %4.2f"
85
- next if k2 && k2.to_i != n2
86
- _printf("%4d|", n2) unless k2
87
- arbi1.each do |n1|
88
- next if k1 && k1.to_i != n1
89
- _printf(form, yield(n1, n2, a.to_f))
90
- end
91
- _puts
92
- end
93
- end
94
-
95
- def show_tbl(mod, dist, *opts)
96
- case dist
97
- when nil, "norm"
98
- norm_tbl(0.0, 3.1, *opts) do |x|
99
- mod.normal___x(x)
100
- end
101
- when "chi", "chi2"
102
- chi2_tbl(*opts) do |n, x|
103
- mod.pchi2_x(n, x)
104
- end
105
- when "t"
106
- t_tbl(*opts) do |n, x|
107
- mod.ptx__x(n, x)
108
- end
109
- when "f"
110
- f_tbl(*opts) do |n1, n2, a|
111
- mod.pf_x(n1, n2, a)
112
- end
113
- end
114
- end
115
-
116
-
117
- if $0 == __FILE__
118
- if ARGV.empty?
119
- puts "-- This script makes tables of distributions"
120
- puts "Example:"
121
- puts " #$0 norm"
122
- puts " #$0 chi2"
123
- puts " #$0 t"
124
- puts " #$0 f 0.01"
125
- exit
126
- end
127
- require "statistics2"
128
- show_tbl(Statistics2, *ARGV)
129
- end