ix-cli 0.0.1 → 0.0.2

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 (4) hide show
  1. checksums.yaml +4 -4
  2. data/bin/ix-hypothesis +11 -6
  3. data/bin/ix-xy +104 -30
  4. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 362167445d202cbbf3db2dbfdd52f3fd7665a5e85ac6aa657084b15b2caa85f6
4
- data.tar.gz: 1b6c85e79eab94644b194ebb7612e7e2b916fd65abfd21a49d26c99468850c69
3
+ metadata.gz: 274579108c642bf99aee760136a22d4e7155f1f9de8da3f3a3cc6bd0be9586d6
4
+ data.tar.gz: 07a9faea67eb7857f430935c114dd234e86461836dec52657147e68f471cb515
5
5
  SHA512:
6
- metadata.gz: ac80246f8e44632204bb35da1e0e7abc3b5424df6f254f479bc47387404ef05fb2c41f50d9182f158a8a274829ed6dddc95fdbed3b7e57bec08bf76894a74d54
7
- data.tar.gz: e271231627968961f3f900b6c0c13d0422271fb9e100c63181125921bed19c9cbe4137ce4fa9bd2bf1696c07fa95556a119bf3cb44e9695491b353009016f546
6
+ metadata.gz: c64015e5b8ff7a1182f252dbd2a45b7d81786e258447b486af89409cc3bb1bc614fc5fdccb4bad284170685474bcdcae127013bb62f5dc371ca75491ce689a76
7
+ data.tar.gz: 3d110e333880291c13048a796d2e35db3c8d0313399a3ee69d60832334ca690bfe70c77f9d4960fa6892670c171f84a1a39f0b48f7b86b8325d7e3bc96ce8c8c
data/bin/ix-hypothesis CHANGED
@@ -135,6 +135,15 @@ class Array
135
135
 
136
136
  def to_bell(text, standard_deviations_to_show = 3, base = :population, kazu_dev = 1, percentage_scale, hide)
137
137
 
138
+ if uniq.size == 1
139
+ the_variable = text.to_ansi.red.to_s
140
+ the_value = uniq.first.to_s.to_ansi.green.to_s
141
+ puts ''
142
+ puts "# All values of #{the_variable} where found to have the value of #{the_value}"
143
+ puts '-' * 80
144
+ return
145
+ end
146
+
138
147
  if base == :population
139
148
  sigma = population_standard_deviation
140
149
  end
@@ -186,7 +195,7 @@ class Array
186
195
  ((groups[sigma] ? groups[sigma].size : 0.0) / total.to_f) * 100
187
196
  end.max
188
197
 
189
- puts [the_min, the_max].inspect
198
+ # puts [the_min, the_max].inspect
190
199
 
191
200
  sigmas_copy.each_with_index do |sigma, index|
192
201
 
@@ -218,8 +227,6 @@ class Array
218
227
 
219
228
  bell_line << ("%6.2f%% " % [(size.to_f / total.to_f) * 100]).to_s
220
229
 
221
- # puts groups[sigma].inspect
222
-
223
230
  bn = [
224
231
  the_min,
225
232
  (size.to_f / total.to_f) * 100,
@@ -231,11 +238,9 @@ class Array
231
238
  percentage_scale
232
239
  )
233
240
 
234
- # bell_line << Percentage.new(total, size, percentage_scale).to_bar
235
-
236
241
  case (std_dev_ruler).to_f
237
242
  when 0.000
238
- bell_line << '|' + ('|' * an[1]).to_s.to_ansi.pink.to_s
243
+ bell_line << '|' + ('|' * an[1]).to_s.to_ansi.pink.to_s
239
244
  when 0..1
240
245
  bell_line << '|' + ('|' * an[1]).to_s.to_ansi.green.to_s
241
246
  when -1..0
data/bin/ix-xy CHANGED
@@ -1,54 +1,122 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
3
  require 'tmpdir'
4
+ require 'isna'
4
5
  require 'optparse'
5
6
 
6
7
  options = {}
8
+ options[:title] = 'title'
9
+ options[:x_label] = 'x'
10
+ options[:y_label] = 'y'
11
+ options[:graph_width] = 800
12
+ options[:graph_height] = 600
13
+ options[:output] = 'output'
14
+
15
+ # option[title] = 'default value'
16
+ # option[y_label] = 'default value'
17
+ # option[x_label] = 'default value'
18
+ # options[:x_max] = 0
19
+ # options[:x_min] = 0
20
+ # options[:y_max] = 0
21
+ # options[:y_min] = 0
22
+ # option[graph_width] = 'default value'
23
+ # option[graph_height] = 'default value'
24
+ # option[output] = 'default value'
7
25
 
8
26
  OptionParser.new do |opts|
9
27
 
10
- opts.banner = "
11
- #{File.basename($0)} - Creates png charts using x y data from text.
28
+ basename = File.basename($0).to_ansi.green.to_s
29
+ options_hint = "[OPTIONS]".to_ansi.blink.red.to_s
30
+ opts.banner = "Usage: #{basename} #{options_hint}"
12
31
 
13
- Reads two numeric columns from stdin (x, y)
14
- and creates a png graphical chart.
32
+ opts.on('-t', '--title [TITLE]', 'Title.') do |value|
33
+ options[:title] = value
34
+ end
35
+
36
+ opts.on('-y', '--y-label [TEXT]', 'Y label.') do |value|
37
+ options[:y_label] = value
38
+ end
39
+
40
+ opts.on('-x', '--x-label [TEXT]', 'X label.') do |value|
41
+ options[:x_label] = value
42
+ end
15
43
 
16
- Usage: cat data | #{File.basename($0)} [options]
17
- "
44
+ opts.on('-m', '--x-max [NUMBER]', 'X max.') do |value|
45
+ options[:x_max] = value
46
+ end
47
+
48
+ opts.on('-i', '--x-min [NUMBER]', 'X min.') do |value|
49
+ options[:x_min] = value
50
+ end
51
+
52
+ opts.on('-a', '--y-max [NUMBER]', 'Y max.') do |value|
53
+ options[:y_max] = value
54
+ end
18
55
 
19
- opts.on("-tTITLE", "--title=TITLE", "title of chart") do |v|
20
- options[:title] = v
56
+ opts.on('-n', '--y-min [NUMBER]', 'Y min.') do |value|
57
+ options[:y_min] = value
21
58
  end
22
59
 
23
- opts.on("-xTEXT", "--x-label=TEXT", "label for x axis") do |v|
24
- options[:x_label] = v
60
+ opts.on('-g', '--graph-width [NUMBER]', 'Graph width.') do |value|
61
+ options[:graph_width] = value
25
62
  end
26
63
 
27
- opts.on("-yTEXT", "--y-label=TEXT", "label for y axis") do |v|
28
- options[:y_label] = v
64
+ opts.on('-r', '--graph-height [NUMBER]', 'Graph height.') do |value|
65
+ options[:graph_height] = value
29
66
  end
30
67
 
31
- opts.on("-oOUTPUT_NAME", "--output-name=OUTPUT_NAME", "name of output file (example: speed_vs_time") do |v|
32
- options[:output] = v
68
+ opts.on('-o', '--output [SNAKE]', 'Output.') do |value|
69
+ options[:output] = value
70
+ end
71
+
72
+ opts.on('-s', '--stats', 'Stats.') do |value|
73
+ options[:stats] = value
33
74
  end
34
75
 
35
76
  end.parse!
36
77
 
37
- unless options[:title]
38
- options[:title] = 'title'
78
+ required_options = [
79
+ :title,
80
+ :y_label,
81
+ :x_label,
82
+ :graph_width,
83
+ :graph_height,
84
+ :output,
85
+ ]
86
+
87
+ ranges = [
88
+ :x_max,
89
+ :x_min,
90
+ :y_max,
91
+ :y_min,
92
+ ]
93
+
94
+ need_ranges = ranges.any? { |k| options[k] }
95
+
96
+ if need_ranges
97
+ ranges.each do |r|
98
+ required_options.push(r)
99
+ end
39
100
  end
40
101
 
41
- unless options[:x_label]
42
- options[:x_label] = 'x'
102
+ required_options.each do |option|
103
+ unless options[option]
104
+ $stderr.puts "Can not run #{option.to_s.to_ansi.red.to_s} was not given."
105
+ exit 1
106
+ end
43
107
  end
44
108
 
45
- unless options[:y_label]
46
- options[:y_label] = 'y'
109
+ def pretty_options(hash, width = 20)
110
+ r = ''
111
+ hash.keys.sort.each do |key|
112
+ k = key.to_s.ljust(width, '.')
113
+ v = hash[key].to_s.rjust(width, '.')
114
+ r << [k, v] * ' ' + "\n"
115
+ end
116
+ r
47
117
  end
118
+ puts pretty_options(options)
48
119
 
49
- unless options[:output]
50
- options[:output] = 'output'
51
- end
52
120
 
53
121
  Dir.mktmpdir do |dir|
54
122
 
@@ -62,20 +130,26 @@ Dir.mktmpdir do |dir|
62
130
  end
63
131
 
64
132
  File.open(script_path, 'w+') do |script|
65
- script.puts "set term png size 800,600"
133
+ script.puts "set term png size #{options[:graph_width]},#{options[:graph_height]}"
66
134
  script.puts "set output \"#{options[:output]}.png\""
67
135
  script.puts "set title \"#{options[:title]}\""
68
136
  script.puts "set xlabel \"#{options[:x_label]}\""
69
137
  script.puts "set ylabel \"#{options[:y_label]}\""
70
- script.puts "set grid"
71
- script.puts "set timestamp"
72
- script.puts "plot '#{data_path}' notitle with points linecolor rgb '#FF0000'"
73
- # script.puts "plot '#{data_path}' notitle with points linecolor rgb '#FF0000' pointtype 8"
74
- script.puts "quit"
138
+ script.puts 'set grid'
139
+ script.puts 'set timestamp'
140
+ if options[:stats]
141
+ script.puts "stats '#{data_path}'"
142
+ end
143
+ if need_ranges
144
+ script.puts "plot [#{options[:x_min]}:#{options[:x_max]}][#{options[:y_min]}:#{options[:y_max]}] '#{data_path}' notitle with points linecolor rgb '#FF0000'"
145
+ else
146
+ script.puts "plot '#{data_path}' notitle with points linecolor rgb '#FF0000'"
147
+ end
148
+ script.puts 'quit'
75
149
  end
76
150
 
77
151
  system "gnuplot #{script_path}"
78
152
  puts "open #{options[:output]}.png"
79
-
153
+
80
154
  end
81
155
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ix-cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kazuyoshi Tlacaelel