tefil 0.1.4 → 0.1.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,38 +0,0 @@
1
- class Tefil::Statistics < Tefil::TextFilterBase
2
-
3
- HISTGRAM_LIMIT = 50
4
-
5
- def initialize(options = {})
6
- options[:smart_filename] = true
7
- @minimum = options[:minimum]
8
- super(options)
9
- end
10
-
11
- def process_stream(in_io, out_io)
12
- data = in_io.readlines.map{|l| l.to_f}
13
-
14
- sum = 0.0
15
- data.each { |datum| sum += datum }
16
-
17
- average = sum / data.size.to_f
18
-
19
- #variance
20
- tmp = 0.0
21
- data.each { |datum| tmp += (datum - average)**2 }
22
- variance = tmp / data.size.to_f
23
-
24
- #standard deviation
25
- standard_deviation = Math::sqrt(variance)
26
-
27
- out_io.puts "sample: #{data.size}\n"
28
- out_io.puts "highest: #{data.max}\n"
29
- out_io.puts "lowest: #{data.min}\n"
30
- out_io.puts "sum: #{sum}"
31
- out_io.puts "average: #{average}"
32
- out_io.puts "variance: #{variance}"
33
- out_io.puts "standard_deviation: #{standard_deviation}"
34
- end
35
-
36
- end
37
-
38
-
@@ -1,123 +0,0 @@
1
- #! /usr/bin/env ruby
2
- # coding: utf-8
3
-
4
- require "helper"
5
- require "stringio"
6
-
7
- # 元々の行末は保存する。
8
- # 消すようにすると、空行などの処理が面倒になる。
9
- class TC_EachSentence < Test::Unit::TestCase
10
- def setup
11
- @test00 = Tefil::EachSentence.new()
12
- end
13
-
14
- def test_process_stream
15
- # divide
16
- in_io = StringIO.new
17
- in_io.puts <<HERE
18
- Abc def. Ghi jhk.
19
- HERE
20
- in_io.rewind
21
- out_io = StringIO.new
22
- @test00.process_stream(in_io, out_io)
23
- out_io.rewind
24
- result = out_io.read
25
- correct = <<HERE
26
- Abc def.
27
- Ghi jhk.
28
- HERE
29
- assert_equal(correct, result)
30
-
31
- # 行末の保存
32
- in_io = StringIO.new
33
- in_io.puts <<HERE
34
- Abc def
35
- Ghi jhk.
36
- HERE
37
- in_io.rewind
38
- out_io = StringIO.new
39
- @test00.process_stream(in_io, out_io)
40
- out_io.rewind
41
- result = out_io.read
42
- correct = <<HERE
43
- Abc def
44
- Ghi jhk.
45
- HERE
46
- assert_equal(correct, result)
47
-
48
- # indent
49
- in_io = StringIO.new
50
- in_io.puts <<HERE
51
- Abc def
52
- Ghi jhk.
53
- HERE
54
- in_io.rewind
55
- out_io = StringIO.new
56
- @test00.process_stream(in_io, out_io)
57
- out_io.rewind
58
- result = out_io.read
59
- correct = <<HERE
60
- Abc def
61
- Ghi jhk.
62
- HERE
63
- assert_equal(correct, result)
64
-
65
- # empty line
66
- in_io = StringIO.new
67
- in_io.puts <<HERE
68
- Abc def.
69
-
70
- Ghi jhk.
71
- HERE
72
- in_io.rewind
73
- out_io = StringIO.new
74
- @test00.process_stream(in_io, out_io)
75
- out_io.rewind
76
- result = out_io.read
77
- correct = <<HERE
78
- Abc def.
79
-
80
- Ghi jhk.
81
- HERE
82
- assert_equal(correct, result)
83
-
84
- # Fig.
85
- in_io = StringIO.new
86
- in_io.puts <<HERE
87
- Including Fig.3. Fig. 3? Fig.
88
- 4 does' not exist.
89
- HERE
90
- in_io.rewind
91
- out_io = StringIO.new
92
- @test00.process_stream(in_io, out_io)
93
- out_io.rewind
94
- result = out_io.read
95
- correct = <<HERE
96
- Including Fig.3.
97
- Fig. 3?
98
- Fig.
99
- 4 does' not exist.
100
- HERE
101
- assert_equal(correct, result)
102
-
103
- # Japanese kutouten
104
- in_io = StringIO.new
105
- in_io.puts <<HERE
106
- あいうえお。かき
107
- くけこ。
108
- HERE
109
- in_io.rewind
110
- out_io = StringIO.new
111
- @test00.process_stream(in_io, out_io)
112
- out_io.rewind
113
- result = out_io.read
114
- correct = <<HERE
115
- あいうえお。
116
- かき
117
- くけこ。
118
- HERE
119
- assert_equal(correct, result)
120
- end
121
- end
122
-
123
-
@@ -1,38 +0,0 @@
1
- #! /usr/bin/env ruby
2
- # coding: utf-8
3
-
4
- require "helper"
5
- require "stringio"
6
-
7
- #class Tefil::IndentConverter
8
- # public :process_stream
9
- #end
10
-
11
- class TC_Statistics < Test::Unit::TestCase
12
- def setup
13
- @s00 = Tefil::Statistics.new()
14
- end
15
-
16
- def test_process_stream
17
- # stdin -> stdout
18
- $stdin = StringIO.new
19
- $stdin.puts "1.0"
20
- $stdin.puts "2.0"
21
- $stdin.puts "3.0"
22
- $stdin.rewind
23
- #str = capture_stdout{}
24
- result = capture_stdout{ @s00.filter([])}
25
- correct =
26
- "sample: 3\n" +
27
- "highest: 3.0\n" +
28
- "lowest: 1.0\n" +
29
- "sum: 6.0\n" +
30
- "average: 2.0\n" +
31
- "variance: 0.6666666666666666\n" +
32
- "standard_deviation: 0.816496580927726\n"
33
- assert_equal(correct, result)
34
- end
35
- end
36
-
37
-
38
-