osc-access 0.0.15

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.
@@ -0,0 +1,43 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'helper'
4
+
5
+ class ClassTest < Test::Unit::TestCase
6
+
7
+ include OSCAccess
8
+ include TestHelper
9
+
10
+ def test_osc_class_scheme
11
+ obj = StubObject.new
12
+ assert_not_nil(obj.class.osc_class_scheme)
13
+ end
14
+
15
+ def test_output_default_port
16
+ obj = StubObject.new
17
+ ip = "192.143.100.1"
18
+ obj.class.osc_output(:host => ip)
19
+ assert_equal(ip, obj.class.osc_class_scheme.outputs.last[:host])
20
+ end
21
+
22
+ def test_osc_input_and_output
23
+ obj = StubObject.new
24
+ obj.class.osc_input(8011)
25
+ obj.class.osc_output(:host => "1.1.1.1", :port => 9012)
26
+ assert_equal(8011, obj.class.osc_class_scheme.inputs.last)
27
+ assert_equal(9012, obj.class.osc_class_scheme.outputs.last[:port])
28
+ end
29
+
30
+ def test_osc_input
31
+ obj = StubObject.new
32
+ obj.class.osc_input(8013)
33
+ assert_equal(8013, obj.class.osc_class_scheme.inputs.first)
34
+ assert_nil(obj.class.osc_class_scheme.outputs.first)
35
+ end
36
+
37
+ def test_osc_input_hash
38
+ obj = StubObject.new
39
+ obj.class.osc_input(:port => 8014)
40
+ assert_equal({ :port => 8014 }, obj.class.osc_class_scheme.inputs.last)
41
+ end
42
+
43
+ end
@@ -0,0 +1,32 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'helper'
4
+
5
+ class ClassSchemeTest < Test::Unit::TestCase
6
+
7
+ include OSCAccess
8
+ include TestHelper
9
+
10
+ def test_ports
11
+ scheme = ClassScheme.new
12
+ scheme.outputs << { :host => "1.1.1.1", :port => 8001 }
13
+ scheme.inputs << 9001
14
+ assert_equal(8001, scheme.outputs.first[:port])
15
+ assert_equal(9001, scheme.inputs.first)
16
+ end
17
+
18
+ def test_ports_receive_only
19
+ scheme = ClassScheme.new
20
+ scheme.inputs << 8005
21
+ assert_equal(8005, scheme.inputs.first)
22
+ assert_nil(scheme.outputs.first)
23
+ end
24
+
25
+ def test_send_ip
26
+ scheme = ClassScheme.new
27
+ assert_nil(scheme.outputs.first)
28
+ scheme.outputs << { :host => "192.168.1.8" }
29
+ assert_equal("192.168.1.8", scheme.outputs.first[:host])
30
+ end
31
+
32
+ end
@@ -0,0 +1,18 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'helper'
4
+
5
+ class EmittablePropertyTest < Test::Unit::TestCase
6
+
7
+ include OSCAccess
8
+ include TestHelper
9
+
10
+ def test_translate
11
+ obj = StubObject.new
12
+ obj.data = 101
13
+ prop = EmittableProperty.new(:data, "pattern", :translate => { :local => 0..127, :remote => 0..1 })
14
+ output = prop.translated(obj)
15
+ assert_equal(0.8, output.first.round(1))
16
+ end
17
+
18
+ end
@@ -0,0 +1,71 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'helper'
4
+
5
+ class EmitterTest < Test::Unit::TestCase
6
+
7
+ include OSCAccess
8
+ include TestHelper
9
+
10
+ def test_client_initialized
11
+ port = TestHelper.next_port
12
+ e = Emitter.new
13
+ e.add_client("1.1.1.2", port)
14
+ assert_not_nil(e.clients.last)
15
+ end
16
+
17
+ def test_two_clients
18
+ port1 = TestHelper.next_port
19
+ port2 = TestHelper.next_port
20
+ e1 = Emitter.new
21
+ e1.add_client("1.1.1.1", port1)
22
+ client1 = e1.clients.last
23
+ e2 = Emitter.new
24
+ e2.add_client("1.1.1.2", port2)
25
+ client2 = e2.clients.last
26
+ assert_equal(1, e1.clients.size)
27
+ assert_equal(1, e2.clients.size)
28
+ assert_not_equal(client1, client2)
29
+ end
30
+
31
+ def test_two_clients_same_ip
32
+ port1 = TestHelper.next_port
33
+ port2 = TestHelper.next_port
34
+ e1 = Emitter.new
35
+ e1.add_client("1.1.1.1", port1)
36
+ client1 = e1.clients.last
37
+ e2 = Emitter.new
38
+ e2.add_client("1.1.1.1", port2)
39
+ client2 = e2.clients.last
40
+ assert_not_equal(client1, client2)
41
+ end
42
+
43
+ def test_share_client
44
+ port = TestHelper.next_port
45
+ e1 = Emitter.new
46
+ e1.add_client("1.1.1.1", port)
47
+ client1 = e1.clients.last
48
+ e2 = Emitter.new
49
+ e2.add_client("1.1.1.1", port)
50
+ client2 = e2.clients.last
51
+ assert_equal(client1, client2)
52
+ end
53
+
54
+ def test_transmit
55
+ received = nil
56
+ port = TestHelper.next_port
57
+
58
+ e = Emitter.new
59
+ e.add_client("localhost", port)
60
+ @server = OSC::EMServer.new(port)
61
+ @server.add_method("/test_transmit") do |message|
62
+ received = message.args[0]
63
+ end
64
+ Thread.new { @server.run }
65
+ sleep(0.5)
66
+ e.transmit(OSC::Message.new( "/test_transmit" , "hullo from io test_transmit!" ))
67
+ sleep(0.5)
68
+ assert_equal("hullo from io test_transmit!", received)
69
+ end
70
+
71
+ end
@@ -0,0 +1,15 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'helper'
4
+
5
+ class ObjectTest < Test::Unit::TestCase
6
+
7
+ include OSCAccess
8
+ include TestHelper
9
+
10
+ def test_osc_message
11
+ m = OSC::Message.new("/blah", "hullo!")
12
+ assert_equal("hullo!", m.args.first)
13
+ end
14
+
15
+ end
@@ -0,0 +1,58 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'helper'
4
+
5
+ class ReceiverTest < Test::Unit::TestCase
6
+
7
+ include OSCAccess
8
+ include TestHelper
9
+
10
+ def test_server_initialized
11
+ io = Receiver.new
12
+ port = TestHelper.next_port
13
+
14
+ io.add_server(port)
15
+ assert_not_nil(io.servers.values.last)
16
+ end
17
+
18
+ def test_two_servers
19
+ port1 = TestHelper.next_port
20
+ port2 = TestHelper.next_port
21
+
22
+ io1 = Receiver.new
23
+ io1.add_server(port1)
24
+ server1 = io1.servers.values.last
25
+ io2 = Receiver.new
26
+ io2.add_server(port2)
27
+ server2 = io2.servers.values.last
28
+ assert_equal(1, io1.servers.size)
29
+ assert_equal(1, io2.servers.size)
30
+ assert_not_equal(server1, server2)
31
+ end
32
+
33
+ def test_share_server
34
+ #io1 = Receiver.new(:input_port => 8008)
35
+ #server1 = io1.servers.last
36
+ #io2 = Receiver.new(:input_port => 8008)
37
+ #server2 = io2.servers.last
38
+ #assert_equal(server1, server2)
39
+ end
40
+
41
+ def test_receive
42
+ received = nil
43
+ obj = StubObject.new
44
+ io = Receiver.new
45
+ port = TestHelper.next_port
46
+
47
+ io.add_server(port)
48
+ io.add_receiver(obj, "/test_receive") do |obj, val|
49
+ received = val
50
+ end
51
+ sleep(0.5)
52
+ client = OSC::Client.new( 'localhost', port )
53
+ client.send( OSC::Message.new( "/test_receive" , "hullo from io test_receive!" ))
54
+ sleep(0.5)
55
+ assert_equal("hullo from io test_receive!", received)
56
+ end
57
+
58
+ end
@@ -0,0 +1,86 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'helper'
4
+
5
+ class TranslateTest < Test::Unit::TestCase
6
+
7
+ include OSCAccess
8
+ include TestHelper
9
+
10
+ def test_range_process_amplify
11
+ ra = Analog.new(0..1, 0..127)
12
+ output = ra.process(0.10)
13
+ assert_equal(12, output)
14
+ end
15
+
16
+ def test_range_process_deamplify
17
+ ra = Analog.new(0..150, 0..15)
18
+ output = ra.process(22)
19
+ assert_equal(2, output)
20
+ end
21
+
22
+ def test_neg_posi_to_posi
23
+ ra = Analog.new(-24..24, 0..3, :type => :float)
24
+ output = ra.process(10)
25
+ assert_equal(2.125, output)
26
+ end
27
+
28
+ def test_neg_posi_to_neg_posi
29
+ ra = Analog.new(-24..24, -3..3, :type => :float)
30
+ output = ra.process(10)
31
+ assert_equal(1.25, output)
32
+ end
33
+
34
+ def test_neg_to_neg_posi
35
+ ra = Analog.new(-24..-12, -3..3, :type => :float)
36
+ output = ra.process(-14)
37
+ assert_equal(2, output)
38
+ end
39
+
40
+ def test_neg_to_neg
41
+ ra = Analog.new(-24..-12, -5..-3, :type => :float)
42
+ output = ra.process(-16)
43
+ assert_equal(-3.666666666666667, output)
44
+ end
45
+
46
+ def test_neg_to_posi
47
+ ra = Analog.new(-24..-12, 1..3, :type => :float)
48
+ output = ra.process(-18)
49
+ assert_equal(2, output)
50
+ end
51
+
52
+ def test_from_set_to_range
53
+ ra = Analog.new([0, 2, 4, 8, 16, 64], 0..10)
54
+ output = ra.process(8)
55
+ assert_equal(6, output)
56
+ end
57
+
58
+ def test_range_process_float
59
+ ra = Analog.new(0..120, 0..1, :type => :float)
60
+ output = ra.process(12)
61
+ assert_equal(0.10, output)
62
+ end
63
+
64
+ def test_set_ascending
65
+ sa = Analog.new(0..1, [0, 2, 4, 8, 12, 16, 32, 64, 128, 512])
66
+ output = sa.process(0.40)
67
+ assert_equal(8, output)
68
+ end
69
+
70
+ def test_set_descending
71
+ sa = Analog.new(0..1, [512, 128, 64, 32, 16, 12, 8, 4, 2, 0])
72
+ output = sa.process(0.40)
73
+ assert_equal(32, output)
74
+ end
75
+
76
+ def test_range_class
77
+ a = Analog.new(0..1, 0..100)
78
+ assert_equal(Analog::Output::Range, a.class)
79
+ end
80
+
81
+ def test_set_class
82
+ a = Analog.new(0..1, [0, 10, 20, 50])
83
+ assert_equal(Analog::Output::Set, a.class)
84
+ end
85
+
86
+ end
metadata ADDED
@@ -0,0 +1,99 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: osc-access
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.15
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Ari Russo
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-07-18 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: eventmachine
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: osc-ruby
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ description: A simple way to bind OSC directly to Ruby classes and objects
47
+ email:
48
+ - ari.russo@gmail.com
49
+ executables: []
50
+ extensions: []
51
+ extra_rdoc_files: []
52
+ files:
53
+ - lib/osc-access/accessible.rb
54
+ - lib/osc-access/class.rb
55
+ - lib/osc-access/class_scheme.rb
56
+ - lib/osc-access/default.rb
57
+ - lib/osc-access/emittable_property.rb
58
+ - lib/osc-access/emitter.rb
59
+ - lib/osc-access/message.rb
60
+ - lib/osc-access/receiver.rb
61
+ - lib/osc-access/translate.rb
62
+ - lib/osc-access/zeroconf.rb
63
+ - lib/osc-access.rb
64
+ - test/helper.rb
65
+ - test/test_accessible.rb
66
+ - test/test_class.rb
67
+ - test/test_class_scheme.rb
68
+ - test/test_emittable_property.rb
69
+ - test/test_emitter.rb
70
+ - test/test_message.rb
71
+ - test/test_receiver.rb
72
+ - test/test_translate.rb
73
+ - LICENSE
74
+ - README.rdoc
75
+ homepage: http://github.com/arirusso/osc-access
76
+ licenses: []
77
+ post_install_message:
78
+ rdoc_options: []
79
+ require_paths:
80
+ - lib
81
+ required_ruby_version: !ruby/object:Gem::Requirement
82
+ none: false
83
+ requirements:
84
+ - - ! '>='
85
+ - !ruby/object:Gem::Version
86
+ version: '0'
87
+ required_rubygems_version: !ruby/object:Gem::Requirement
88
+ none: false
89
+ requirements:
90
+ - - ! '>='
91
+ - !ruby/object:Gem::Version
92
+ version: 1.3.6
93
+ requirements: []
94
+ rubyforge_project: osc-access
95
+ rubygems_version: 1.8.23
96
+ signing_key:
97
+ specification_version: 3
98
+ summary: Control Ruby objects with OSC
99
+ test_files: []