graphkit 0.4.2 → 0.4.4

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b1392606ad09e84551b517e9a7466597a1a2403e
4
- data.tar.gz: d43d0eeea0e3c2061687a17b1410512c616be383
3
+ metadata.gz: 42653b3bfef9d5da9909f41a0e1479ac6c8fe81f
4
+ data.tar.gz: 43c78a693b7d77be9e8e5dbe9faf9c4ec46aa82d
5
5
  SHA512:
6
- metadata.gz: 90edfa91cec525cfa891ef0d157a2c23359ff8807653b417b018cb3db9f9b659a8c475314f36ae28a1cc2f1c711e435bf46792973a0a0b4410b056de8cd459aa
7
- data.tar.gz: db84897ce19d6a1ef92f60a126cf4f686e3a12aa37df6f14bf150a4d5b038ad87fdc761e3b74011f063d407e14bff8b87fcba72434d1d22be1375b355604f531
6
+ metadata.gz: a53fa37e5e9fe34502cb2b720dfb64bfd79e942c1d25e3b2b9f3309e49327a165e8a9109d6a284d245faabd8503a68091d3d8bea0b5fb6430d7dc8e54bd96c12
7
+ data.tar.gz: ffa158ec4f3af1ed8436d25de0a6dbdb294d5e1540994af618193742c6d8b39d5981dffbb59b89e7dab8dfe34f035d37c29adffaa11714aeb21ac3cc405b31a9
data/Gemfile CHANGED
@@ -8,8 +8,9 @@ source "http://rubygems.org"
8
8
  # Add dependencies to develop your gem here.
9
9
  # Include everything needed to run rake, tests, features, etc.
10
10
  group :development do
11
- gem "shoulda", ">= 0"
11
+ gem "shoulda", " 3.0.1"
12
12
  gem "rdoc", "~> 3.12"
13
13
  gem "bundler", "> 1.0.0"
14
14
  gem "jeweler", ">= 2.0"
15
+ gem "minitest", "~> 4"
15
16
  end
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.4.2
1
+ 0.4.4
@@ -2,16 +2,16 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: graphkit 0.4.2 ruby lib
5
+ # stub: graphkit 0.4.4 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "graphkit"
9
- s.version = "0.4.2"
9
+ s.version = "0.4.4"
10
10
 
11
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
12
  s.require_paths = ["lib"]
13
13
  s.authors = ["Edmund Highcock"]
14
- s.date = "2015-02-02"
14
+ s.date = "2016-01-19"
15
15
  s.description = "A GraphKit is a device independent intelligent data container that allows the easy sharing, combining and plotting of graphic data representations. Easily created from data, they can be output in a variety of formats using packages such as gnuplot. "
16
16
  s.email = "edmundhighcock@sourceforge.net"
17
17
  s.extra_rdoc_files = [
@@ -47,23 +47,26 @@ Gem::Specification.new do |s|
47
47
 
48
48
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
49
49
  s.add_runtime_dependency(%q<rubyhacks>, [">= 0.1.0"])
50
- s.add_development_dependency(%q<shoulda>, [">= 0"])
50
+ s.add_development_dependency(%q<shoulda>, ["= 3.0.1"])
51
51
  s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
52
52
  s.add_development_dependency(%q<bundler>, ["> 1.0.0"])
53
53
  s.add_development_dependency(%q<jeweler>, [">= 2.0"])
54
+ s.add_development_dependency(%q<minitest>, ["~> 4"])
54
55
  else
55
56
  s.add_dependency(%q<rubyhacks>, [">= 0.1.0"])
56
- s.add_dependency(%q<shoulda>, [">= 0"])
57
+ s.add_dependency(%q<shoulda>, ["= 3.0.1"])
57
58
  s.add_dependency(%q<rdoc>, ["~> 3.12"])
58
59
  s.add_dependency(%q<bundler>, ["> 1.0.0"])
59
60
  s.add_dependency(%q<jeweler>, [">= 2.0"])
61
+ s.add_dependency(%q<minitest>, ["~> 4"])
60
62
  end
61
63
  else
62
64
  s.add_dependency(%q<rubyhacks>, [">= 0.1.0"])
63
- s.add_dependency(%q<shoulda>, [">= 0"])
65
+ s.add_dependency(%q<shoulda>, ["= 3.0.1"])
64
66
  s.add_dependency(%q<rdoc>, ["~> 3.12"])
65
67
  s.add_dependency(%q<bundler>, ["> 1.0.0"])
66
68
  s.add_dependency(%q<jeweler>, [">= 2.0"])
69
+ s.add_dependency(%q<minitest>, ["~> 4"])
67
70
  end
68
71
  end
69
72
 
@@ -1,140 +1,139 @@
1
1
  require 'matrix'
2
2
  # Methods for writing graphkits to csv (comma separated value) files
3
3
 
4
-
5
-
6
4
  class GraphKit
5
+ def to_csv(options={})
6
+ check_integrity
7
+ ep 'to_csv'
8
+ stringio = options[:io] || StringIO.new
9
+ data.each do |dk|
10
+ dk.to_csv(options)
11
+ stringio << "\n\n"
12
+ end
13
+ return stringio.string unless options[:io]
14
+ end
7
15
 
16
+ class DataKit
17
+ class TensorArray
18
+ def initialize(arr)
19
+ @arr=arr
20
+ end
21
+ def [](*args)
22
+ args.reverse.inject(@arr) do |arr,idx|
23
+ arr[idx]
24
+ end
25
+ end
26
+ end
27
+ def to_csv(options={})
28
+ io = options[:io] || StringIO.new
29
+ header = options[:header].to_s
30
+ csv_file = File.open(io, 'w')
31
+ if header
32
+ csv_file.write(header + "\n")
33
+ end
8
34
 
35
+ axs = self.axes.values_at(*AXES).compact
36
+ #ep 'axs', axs
37
+ dl = axs[-1].shape.product
38
+ dat = axs.map{|ax| ax.data}
39
+ sh = shapes
40
+ #cml_sh = sh.map do |sh1|
41
+ # cml = 1
42
+ # sh1.reverse.map{|dim| cml *= dim; cml}.reverse
43
+ #end
44
+ dat = dat.map do |d|
45
+ d.kind_of?(Array) ? TensorArray.new(d) : d
46
+ end
9
47
 
48
+ if self.errors
49
+ raise "Errors can only be plotted for 1D or 2D data" unless ranks == [1] or ranks == [1,1]
50
+ edat = self.errors.values_at(:x, :xmin, :xmax, :y, :ymin, :ymax).compact
51
+ #ep 'edat', edat
52
+ end
10
53
 
11
-
12
-
13
- def to_csv(options={})
14
- check_integrity
15
- ep 'to_csv'
16
- stringio = options[:io] || StringIO.new
17
- data.each do |dk|
18
- dk.to_csv(io: stringio)
19
- stringio << "\n\n"
20
- end
21
- return stringio.string unless options[:io]
22
- end
23
-
24
-
25
- class DataKit
26
-
27
- class TensorArray
28
- def initialize(arr)
29
- @arr=arr
30
- end
31
- def [](*args)
32
- args.reverse.inject(@arr) do |arr,idx|
33
- arr[idx]
34
- end
35
- end
36
- end
37
- def to_csv(options={})
38
- io = options[:io] || StringIO.new
39
- axs = self.axes.values_at(*AXES).compact
40
- #ep 'axs', axs
41
- dl = data_length = axs[-1].shape.product
42
- dat = axs.map{|ax| ax.data}
43
- sh = shapes
44
- cml_sh = sh.map do |sh|
45
- cml = 1
46
- sh.reverse.map{|dim| cml *= dim; cml}.reverse
47
- end
48
- dat = dat.map do |d|
49
- d.kind_of?(Array) ? TensorArray.new(d) : d
50
- end
51
-
52
- if self.errors
53
- raise "Errors can only be plotted for 1D or 2D data" unless ranks == [1] or ranks == [1,1]
54
- edat = self.errors.values_at(:x, :xmin, :xmax, :y, :ymin, :ymax).compact
55
- #ep 'edat', edat
56
- end
57
- case ranks
58
- when [1], [1,1], [1,1,1], [1,1,1,1]
59
- dl.times do |n|
60
- dat.each{|d| io << d[n] << " "}
61
- io << " " << edat.map{|e| e[n].to_s}.join(", ") if self.errors
62
- io << "\n"
63
- end
64
- when [1,1,2]
65
- sh[-1][0].times do |i|
66
- sh[-1][1].times do |j|
67
- next unless dat[2][i,j]
68
- d = [dat[0][i], dat[1][j], dat[2][i,j]]
69
- io << d[0] << ", " << d[1] << ", " << d[2] << "\n"
70
- end
71
- io << "\n" unless sh[-1][1] == 1
72
- end
73
- when [2,2,2]
74
- sh[-1][0].times do |i|
75
- sh[-1][1].times do |j|
76
- next unless dat[2][i,j]
77
- d = [dat[0][i,j], dat[1][i,j], dat[2][i,j]]
78
- io << d[0] << ", " << d[1] << ", " << d[2] << "\n"
79
- end
80
- io << "\n" unless sh[-1][1] == 1
81
- end
82
- when [1,1,2,2]
83
- sh[-1][0].times do |i|
84
- sh[-1][1].times do |j|
85
- next unless dat[3][i,j]
86
- d = [dat[0][i], dat[1][j], dat[2][i,j], dat[3][i,j]]
87
- io << d[0] << ", " << d[1] << ", " << d[2] << ", " << d[3] << "\n"
88
- end
89
- io << "\n" unless sh[-1][1] == 1
90
- end
91
- when [1,1,1,3]
92
- sh[-1][0].times do |i|
93
- sh[-1][1].times do |j|
94
- sh[-1][2].times do |k|
95
- next unless dat[3][i,j,k]
96
-
97
- d = [dat[0][i], dat[1][j], dat[2][k], dat[3][i,j,k]]
98
- io << d[0] << ", " << d[1] << ", " << d[2] << ", " << d[3] << "\n"
99
- end
100
- io << "\n" unless sh[-1][2] == 1
101
- end
102
- io << "\n" unless sh[-1][1] == 1
103
- end
104
- when [2,2,2,2]
105
- sh[-1][0].times do |i|
106
- sh[-1][1].times do |j|
107
- next unless dat[3][i,j]
108
- d = [dat[0][i,j], dat[1][i,j], dat[2][i,j], dat[3][i,j]]
109
- d.each{|dt| io << dt << " "}
110
- io << "\n"
111
- end
112
- io << "\n" unless sh[-1][1] == 1
113
- end
114
- when [3,3,3,3]
115
- #pp dat
116
- #pp dat
117
- #pp sh
118
- sh[-1][0].times do |i|
119
- sh[-1][1].times do |j|
120
- sh[-1][2].times do |k|
121
- next unless dat[3][i,j,k]
122
- #p [i,j,k]
54
+ io = ''
55
+ case ranks
56
+ when [1], [1,1], [1,1,1], [1,1,1,1]
57
+ dl.times do |n|
58
+ dat.each{|d| io << d[n].to_s << ","}
59
+ io << " " << edat.map{|e| e[n].to_s}.join(", ") if self.errors
60
+ io << "\n"
61
+ end
62
+ when [1,1,2]
63
+ sh[-1][0].times do |i|
64
+ sh[-1][1].times do |j|
65
+ next unless dat[2][i,j]
66
+ d = [dat[0][i], dat[1][j], dat[2][i,j]]
67
+ io << d[0] << ", " << d[1] << ", " << d[2] << "\n"
68
+ end
69
+ io << "\n" unless sh[-1][1] == 1
70
+ end
71
+ when [2,2,2]
72
+ sh[-1][0].times do |i|
73
+ sh[-1][1].times do |j|
74
+ next unless dat[2][i,j]
75
+ d = [dat[0][i,j], dat[1][i,j], dat[2][i,j]]
76
+ io << d[0] << ", " << d[1] << ", " << d[2] << "\n"
77
+ end
78
+ io << "\n" unless sh[-1][1] == 1
79
+ end
80
+ when [1,1,2,2]
81
+ sh[-1][0].times do |i|
82
+ sh[-1][1].times do |j|
83
+ next unless dat[3][i,j]
84
+ d = [dat[0][i], dat[1][j], dat[2][i,j], dat[3][i,j]]
85
+ io << d[0] << ", " << d[1] << ", " << d[2] << ", " << d[3] << "\n"
86
+ end
87
+ io << "\n" unless sh[-1][1] == 1
88
+ end
89
+ when [1,1,1,3]
90
+ sh[-1][0].times do |i|
91
+ sh[-1][1].times do |j|
92
+ sh[-1][2].times do |k|
93
+ next unless dat[3][i,j,k]
123
94
 
124
- #d = [dat[0][i,j,k], dat[1][i,j,k], dat[2][i,j,k], dat[3][i,j,k]]
125
- io << "#{dat[0][i,j,k]},#{dat[1][i,j,k]},#{dat[2][i,j,k]},#{dat[3][i,j,k]}\n"
126
- #d.each{|dt| io << dt << " "}
127
- #io << "\n"
128
- end
129
- io << "\n" unless sh[-1][2] == 1
130
- end
131
- io << "\n" unless sh[-1][1] == 1
132
- end
133
- end
95
+ d = [dat[0][i], dat[1][j], dat[2][k], dat[3][i,j,k]]
96
+ io << d[0] << ", " << d[1] << ", " << d[2] << ", " << d[3] << "\n"
97
+ end
98
+ io << "\n" unless sh[-1][2] == 1
99
+ end
100
+ io << "\n" unless sh[-1][1] == 1
101
+ end
102
+ when [2,2,2,2]
103
+ sh[-1][0].times do |i|
104
+ sh[-1][1].times do |j|
105
+ next unless dat[3][i,j]
106
+ d = [dat[0][i,j], dat[1][i,j], dat[2][i,j], dat[3][i,j]]
107
+ d.each{|dt| io << dt << " "}
108
+ io << "\n"
109
+ end
110
+ io << "\n" unless sh[-1][1] == 1
111
+ end
112
+ when [3,3,3,3]
113
+ #pp dat
114
+ #pp dat
115
+ #pp sh
116
+ sh[-1][0].times do |i|
117
+ sh[-1][1].times do |j|
118
+ sh[-1][2].times do |k|
119
+ next unless dat[3][i,j,k]
120
+ #p [i,j,k]
134
121
 
135
- return stringio.string unless options[:io]
136
- end
137
- end
122
+ #d = [dat[0][i,j,k], dat[1][i,j,k], dat[2][i,j,k], dat[3][i,j,k]]
123
+ io << "#{dat[0][i,j,k]},#{dat[1][i,j,k]},#{dat[2][i,j,k]},#{dat[3][i,j,k]}\n"
124
+ #d.each{|dt| io << dt << " "}
125
+ #io << "\n"
126
+ end
127
+ io << "\n" unless sh[-1][2] == 1
128
+ end
129
+ io << "\n" unless sh[-1][1] == 1
130
+ end
131
+ end
138
132
 
139
- end
140
-
133
+ return stringio.string unless options[:io]
134
+
135
+ csv_file.write(io)
136
+ csv_file.close()
137
+ end
138
+ end
139
+ end
@@ -42,7 +42,7 @@ module Gnuplot
42
42
  def Gnuplot.gnuplot( persist = true )
43
43
  cmd = which( ENV['RB_GNUPLOT'] || 'gnuplot' )
44
44
  #cmd = "gnuplot"
45
- cmd += " -background white"
45
+ #cmd += " -background white"
46
46
  cmd += " -persist" if persist
47
47
  cmd
48
48
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: graphkit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.2
4
+ version: 0.4.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Edmund Highcock
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-02-02 00:00:00.000000000 Z
11
+ date: 2016-01-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rubyhacks
@@ -28,16 +28,16 @@ dependencies:
28
28
  name: shoulda
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
31
+ - - '='
32
32
  - !ruby/object:Gem::Version
33
- version: '0'
33
+ version: 3.0.1
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ">="
38
+ - - '='
39
39
  - !ruby/object:Gem::Version
40
- version: '0'
40
+ version: 3.0.1
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rdoc
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -80,6 +80,20 @@ dependencies:
80
80
  - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: '2.0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: minitest
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '4'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '4'
83
97
  description: 'A GraphKit is a device independent intelligent data container that allows
84
98
  the easy sharing, combining and plotting of graphic data representations. Easily
85
99
  created from data, they can be output in a variety of formats using packages such