named_vector 1.0.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- NGQwYzQ2NzYwOTQyNmM2NzUzODFlMWNhNjllODY2NDliYTAxNjZlZA==
4
+ ZTcxMWZkZWY1MDA4MzhlZDgzNzIwNGRlMWRhNzQ3NDIxZTMzZWYxNA==
5
5
  data.tar.gz: !binary |-
6
- MDk0MzM2ODNkNTAyOWY2YjNjZTg4MzZhNmYwODRjNTVmYjFmMTEyNQ==
6
+ MjYxYjUzOWNjOWM0MWY1NWRkYzQzODVlNTFlZjUxYjRkOTJlN2E5Ng==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- ZTIxNTE0ODMwYWJiZGIxZjViNzNhMTFkNjI4MTRiM2YzYTNjOTJkM2VlMzI2
10
- ZDYyMjFhOWIzNGEwZTE3NjQzNzM3NDAyODJlYzY2YWJkYTUzOTk5MzJhMzcy
11
- Y2Q0NjQxM2JkN2RkOWE3OTIyYTNhZTczM2M0MWM3MmI1ZTIyYmQ=
9
+ ZjdmZTgwYzkyYzVhNjA1ZjdmYzJkNTMzNmU3N2ZhZWJjYjE5NzYxMjA1ZmY0
10
+ MWM5YThiMzkyZWFjY2MyOTJiMTRiMThkZWQ3MzQxMTAwZGJmMWQxMDg5ODVj
11
+ YjJjNDYwOGI0ZGM2MzFjMTU2ODk1ZDU4YzM0OGY1NmUwMjk4ZTA=
12
12
  data.tar.gz: !binary |-
13
- YjFiNmVhNmI0NTRkNjhmYTdiY2YzMTVjMzJkY2I1OWMxZmJjYTQ3NzkyMTZm
14
- OGFlNGFmMmY1YmFhNmM2ZDhmYjg2NDQyOWFlMjc0MTZiMzJlNDE0YmMwZjEx
15
- YWYwNmQyYjlmNzY2ZDkzOTMyMWQ2OWRlNTFkMzA0MjNkMzVmNzk=
13
+ ZGE3ZGZmMDU3MzYxNGE1MWZjYTA5OGE3YzE4ZDdjODA2NDQzMDE2NGMzYjNi
14
+ YTY4M2IyYTkwZTdlM2YwNDUwNzUxODAyN2E3NzJlZGJkZjRiNzgxNGYwMTlk
15
+ MWRiZjYxMTA5MzIzNDdmOGVmOTViN2E5YmYzZjJlYTllY2M2ODk=
data/lib/named_vector.rb CHANGED
@@ -12,8 +12,20 @@ class NamedVector
12
12
  def initialize(*dims)
13
13
  @vector = Hash.new
14
14
  @keys = Set.new
15
+ import_dimensions(dims)
16
+ end
17
+
18
+ # imports the dimension information in Array form
19
+ # @param dims [Array<Array>,Array<String>, Array<Symbol>, Array<Hash>, Array<Fixnum>, Array<Array>] values to initialize
20
+ def import_dimensions(dims)
15
21
  if dims && dims.first
16
22
  case dims.first
23
+ when Array
24
+ array = dims.first
25
+ if array.first.class == String
26
+ @keys = Set.new(array.map {|i| i.to_s})
27
+ array.each {|d| self[d]+=1}
28
+ end
17
29
  when Hash
18
30
  hash = dims.first
19
31
  hash.keys.each {|d| modify_dimension(d, hash[d])}
@@ -53,4 +53,10 @@ describe 'Initialization' do
53
53
  vector.normalize
54
54
  vector.norm.should be_within(0.01).of 1.0
55
55
  end
56
+
57
+ it 'should allow sums of vectors to be used for initilization' do
58
+ vector = NamedVector.new(["a","a","a", "b", "b"])
59
+ vector.a.should eq 3
60
+ vector.b.should eq 2
61
+ end
56
62
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: named_vector
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jonathan Raiman
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-11-28 00:00:00.000000000 Z
11
+ date: 2013-11-29 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Vectors with named dimensions.
14
14
  email: jraiman@mit.edu