fwt 0.1.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/fwt.gemspec +4 -3
  3. data/tests/test_fwt.rb +62 -0
  4. metadata +5 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 25fb677d2836b38f98981f8317ea758ce164cef4
4
- data.tar.gz: 1188bb2a340f329842ad2dc30985b1e688a2c28c
3
+ metadata.gz: 46983f7b164a5ba936747fd3b8a143e45e65b78e
4
+ data.tar.gz: 6c092163b85d8bb1f2a9515dd4fbe4f07153b9ea
5
5
  SHA512:
6
- metadata.gz: 65dad3f702d39799a144e0982cd792ca46bd8c55b0fbd8654dda33503667e0367a1681da7a52c224af2db037c7ed09a0c41ede918162ff7b061910e24a6c3ca8
7
- data.tar.gz: 59fb11323ccb5ede8cd7766578920ecae8233cc2f827bc42cf46ee8216f39b18bff5b03eb8fefb469221ac23538780c5fbbd78bf9cfd245c8d53b47bf9b36010
6
+ metadata.gz: 817725fed18aa2dfd3bc91719ab57ea1d99606c8816f3de015448afc7c66d0e98c09b38e8c82cdfa949efb5b2ff9d97b2ffe801a0465a0cc37460a70eb3995e5
7
+ data.tar.gz: 6a9f1e54075aa06bb01f72cceaf9870b07c10225b2df3ec541bc86ae1ebac7bd164a3bd9120aec6d3051ebe191ff5c3a803740d42fc6598fd41329324e35b551
@@ -1,18 +1,19 @@
1
1
  # -*- ruby -*-
2
- _VERSION = "0.1.0"
2
+ _VERSION = "0.2.1"
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "fwt"
6
6
  s.version = _VERSION
7
7
  s.date = "2013-03-03"
8
- s.summary = "Fast Waslh Transform native Ruby implementations."
8
+ s.summary = "Fast Walsh Transform native Ruby implementations."
9
9
  s.email = "pjs@alum.mit.edu"
10
- s.description = "Implements Hadamard- and sequency-ordered FWTs as extensions of class Array."
10
+ s.description = "Implements Hadamard- and sequency-ordered Fast Walsh Transforms as extensions of class Array."
11
11
  s.author = "Paul J Sanchez"
12
12
  s.files = %w[
13
13
  fwt.gemspec
14
14
  lgpl.txt
15
15
  lib/fwt.rb
16
+ tests/test_fwt.rb
16
17
  ]
17
18
  s.required_ruby_version = '>= 1.8.1'
18
19
  s.license = 'LGPL'
@@ -0,0 +1,62 @@
1
+ #!/usr/bin/env ruby -w
2
+
3
+ require 'test/unit'
4
+ require 'fwt'
5
+
6
+ class FWT_test < Test::Unit::TestCase
7
+ def test_hadamard
8
+ assert_equal [1,0,0,0,0,0,0,0].hadamard, [1, 1, 1, 1, 1, 1, 1, 1]
9
+ assert_equal [0,1,0,0,0,0,0,0].hadamard, [1, -1, 1, -1, 1, -1, 1, -1]
10
+ assert_equal [0,0,1,0,0,0,0,0].hadamard, [1, 1, -1, -1, 1, 1, -1, -1]
11
+ assert_equal [0,0,0,1,0,0,0,0].hadamard, [1, -1, -1, 1, 1, -1, -1, 1]
12
+ assert_equal [0,0,0,0,1,0,0,0].hadamard, [1, 1, 1, 1, -1, -1, -1, -1]
13
+ assert_equal [0,0,0,0,0,1,0,0].hadamard, [1, -1, 1, -1, -1, 1, -1, 1]
14
+ assert_equal [0,0,0,0,0,0,1,0].hadamard, [1, 1, -1, -1, -1, -1, 1, 1]
15
+ assert_equal [0,0,0,0,0,0,0,1].hadamard, [1, -1, -1, 1, -1, 1, 1, -1]
16
+ assert_equal [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1].sequency,
17
+ [1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1]
18
+ assert_raise Exception do # non-power-of-2 array
19
+ [0,0,1].hadamard
20
+ end
21
+ end
22
+
23
+ def test_sequency
24
+ assert_equal [1,0,0,0,0,0,0,0].sequency, [1, 1, 1, 1, 1, 1, 1, 1]
25
+ assert_equal [0,1,0,0,0,0,0,0].sequency, [1, 1, 1, 1, -1, -1, -1, -1]
26
+ assert_equal [0,0,1,0,0,0,0,0].sequency, [1, 1, -1, -1, -1, -1, 1, 1]
27
+ assert_equal [0,0,0,1,0,0,0,0].sequency, [1, 1, -1, -1, 1, 1, -1, -1]
28
+ assert_equal [0,0,0,0,1,0,0,0].sequency, [1, -1, -1, 1, 1, -1, -1, 1]
29
+ assert_equal [0,0,0,0,0,1,0,0].sequency, [1, -1, -1, 1, -1, 1, 1, -1]
30
+ assert_equal [0,0,0,0,0,0,1,0].sequency, [1, -1, 1, -1, -1, 1, -1, 1]
31
+ assert_equal [0,0,0,0,0,0,0,1].sequency, [1, -1, 1, -1, 1, -1, 1, -1]
32
+ assert_equal [0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0].sequency,
33
+ [1, 1, 1, 1, 1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1]
34
+ assert_raise Exception do # non-power-of-2 array
35
+ [0,0,1].sequency
36
+ end
37
+ assert_raise Exception do # empty array
38
+ [].sequency
39
+ end
40
+ end
41
+
42
+ def test_power_of_2
43
+ assert_true 1.power_of_2?
44
+ assert_true 2.power_of_2?
45
+ assert_true 4.power_of_2?
46
+ assert_true 8.power_of_2?
47
+ assert_true 16.power_of_2?
48
+ assert_true (2**32).power_of_2?
49
+ assert_true (2**500).power_of_2?
50
+ assert_false 0.power_of_2?
51
+ assert_false 3.power_of_2?
52
+ assert_false 5.power_of_2?
53
+ assert_false 7.power_of_2?
54
+ assert_false (-1).power_of_2?
55
+ assert_false (-2).power_of_2?
56
+ assert_false (-3).power_of_2?
57
+ assert_false (-4).power_of_2?
58
+ assert_false (2**32 - 1).power_of_2?
59
+ assert_false (2**500 - 1).power_of_2?
60
+ end
61
+
62
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fwt
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Paul J Sanchez
@@ -10,8 +10,8 @@ bindir: bin
10
10
  cert_chain: []
11
11
  date: 2013-03-03 00:00:00.000000000 Z
12
12
  dependencies: []
13
- description: Implements Hadamard- and sequency-ordered FWTs as extensions of class
14
- Array.
13
+ description: Implements Hadamard- and sequency-ordered Fast Walsh Transforms as extensions
14
+ of class Array.
15
15
  email: pjs@alum.mit.edu
16
16
  executables: []
17
17
  extensions: []
@@ -20,6 +20,7 @@ files:
20
20
  - fwt.gemspec
21
21
  - lgpl.txt
22
22
  - lib/fwt.rb
23
+ - tests/test_fwt.rb
23
24
  homepage:
24
25
  licenses:
25
26
  - LGPL
@@ -43,5 +44,5 @@ rubyforge_project:
43
44
  rubygems_version: 2.0.0
44
45
  signing_key:
45
46
  specification_version: 4
46
- summary: Fast Waslh Transform native Ruby implementations.
47
+ summary: Fast Walsh Transform native Ruby implementations.
47
48
  test_files: []