osc-access 0.0.15

Sign up to get free protection for your applications and to get access to all the features.
@@ -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: []