propane 2.3.0-java → 2.3.1-java

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 78bff0b5d57b0dee23e593ad9f56a9274d52c356
4
- data.tar.gz: 03a86ec3a4553087f88aacc31e9da390f3dd4730
3
+ metadata.gz: 4d725a63b42635bff188a63809d845500b3d4827
4
+ data.tar.gz: 1da37fcd8930186d6824153fa80b85b91360cec8
5
5
  SHA512:
6
- metadata.gz: 7f5729c71279d34d05b7c10ac2c8f656ce15bd0d70014bef40c8a942a22a77e8eaee209a23e1cfd92ae55a467cd66b547d1319530d1d1a8ac6ccd94391452e3d
7
- data.tar.gz: 288bf7e78b70ec116a2967c8b6240909b10d69cd450833df4436ff0c3d1cff35ff8a8b466fb722d4c513ae51ca2172a49d9cf3dc4c8181ed01b65ce3c279459f
6
+ metadata.gz: edb41b6d1e2f885412901f3156b8f32000eadfbf5cbf3752a154bbd6b2dcaabdf5d395262f11c7edfad5c55aea99cb90654855e5c36cffac40d001d2bf906c45
7
+ data.tar.gz: 02263c502b43aa18190da5e63d14605810edbc80c28610dd72cc57d68825f357db51683def11736d09d0b433b1ffa1155323f9855794dfcef221f98332a297ee
data/CHANGELOG.md CHANGED
@@ -1,12 +1,14 @@
1
- **v2.3.0** Update to core processing-3.3 `grid` method now implemented in java, bump examples to include WOVNS
1
+ **v2.3.1** Update to processing-3.3.1, Update samples which now include `#!/usr/bin/env jruby` to assist running sketches from atom, add Rakefile for automatic sketch running for many samples, expected upgrade to final jruby-9.1.x.x
2
2
 
3
- **v2.1.1** Update to core processing-3.2.4 and JRuby-9.1.7.0
3
+ **v2.3.0** Update to core processing-3.3 `grid` method now implemented in java, bump examples to include WOVNS
4
+
5
+ **v2.1.1** Update to core processing-3.2.4 and JRuby-9.1.7.0
4
6
 
5
7
  **v2.1.0** Add missing method to ColorUtil.java, `include HelperMethods, PConstants, Math, MathTool` in `Propane::Proxy`, it is just simpler that way. Mixin Renderer for AppRender and ShapeRender. Changes to `Propane::Proxy` are significant enough to warrant versioning bump, samples making use of new code will not be runable by earlier versions.
6
8
 
7
9
  **v2.0.6** Update to core processing-3.2.3
8
10
 
9
- **v2.0.5** Update to processing-3.2.2, fix local library load, add proxy_library expand samples
11
+ **v2.0.5** Update to processing-3.2.2, fix local library load, add `proxy_library` expand samples
10
12
 
11
13
  **v2.0.4** Correct `norm_strict`, add `math_tool_test` add `simplex_noise` expand samples
12
14
 
data/README.md CHANGED
@@ -1,14 +1,14 @@
1
1
  # Propane
2
2
  [![Gem Version](https://badge.fury.io/rb/propane.svg)](https://badge.fury.io/rb/propane)
3
3
 
4
- A slim layer to communicate with Processing from JRuby, features a polyglot maven build. We have created a configuration free version of ruby processing, for processing-3.3, where we include processing core (from a local maven repository and opengl etc from maven central). These jars are small enough to include in a gem distribution, and hence we do not require configuration. This has created a scriptable version, ie files get run direct from jruby, but you could use jruby-complete if you used the propane script (avoids need to give the absolute data path for the data folder, but would also be needed for a watch mode). See guide to [building ruby-processing projects][building].
4
+ A slim layer to communicate with Processing from JRuby, features a polyglot maven build. We have created a configuration free version of ruby processing, for processing-3.3.1, where we include processing core (from a local maven repository and opengl etc from maven central). These jars are small enough to include in a gem distribution, and hence we do not require configuration. This has created a scriptable version, ie files get run direct from jruby, but you could use jruby-complete if you used the propane script (avoids need to give the absolute data path for the data folder, but would also be needed for a watch mode). See guide to [building ruby-processing projects][building].
5
5
 
6
6
  ## Requirements
7
7
 
8
8
  - jdk8+
9
- - jruby-9.1.7.0+
9
+ - jruby-9.1.8.0+
10
10
  - mvn-3.3.1+ (development only)
11
- - core.jar processing-3.3.0 (development only until processing.org is available at maven central)
11
+ - core.jar processing-3.3.1 (development only until processing.org is available at maven central)
12
12
 
13
13
  ## Building and testing
14
14
 
@@ -20,8 +20,8 @@ rake javadoc
20
20
 
21
21
  ## Installation
22
22
  ```bash
23
- jgem install propane # from rubygems
24
- jgem install propane-2.3.0-java.gem # for local install
23
+ jgem install propane # from rubygems
24
+ jgem install propane-2.3.1-java.gem # for local install
25
25
  ```
26
26
 
27
27
  ## Usage
data/Rakefile CHANGED
@@ -7,7 +7,7 @@ def create_manifest
7
7
  File.open('MANIFEST.MF', 'w') do |f|
8
8
  f.puts(title)
9
9
  f.puts(version)
10
- f.puts('Class-Path: core-3.2.3.jar gluegen-rt-2.3.2.jar jog-all-2.3.2.jar')
10
+ f.puts('Class-Path: core-3.3.1.jar gluegen-rt-2.3.2.jar jog-all-2.3.2.jar')
11
11
  end
12
12
  end
13
13
 
@@ -46,6 +46,7 @@ end
46
46
 
47
47
  desc 'Test'
48
48
  task :test do
49
+ sh 'jruby test/helper_methods_test.rb'
49
50
  sh 'jruby test/respond_to_test.rb'
50
51
  sh 'jruby test/create_test.rb'
51
52
  sh 'jruby test/math_tool_test.rb'
data/lib/propane.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: false
2
+ require 'java'
2
3
  unless defined? PROPANE_ROOT
3
4
  $LOAD_PATH << File.expand_path(File.dirname(__FILE__))
4
5
  PROPANE_ROOT = File.expand_path(File.dirname(__FILE__) + '/../')
@@ -1,4 +1,4 @@
1
- # frozen_string_literal: false
1
+ #frozen_string_literal: false
2
2
  # the sketch class
3
3
  class SketchClass
4
4
  attr_reader :name, :width, :height, :mode
@@ -40,6 +40,7 @@ class SketchClass
40
40
 
41
41
  def lines
42
42
  lines = [
43
+ '#!/usr/bin/env jruby',
43
44
  '# frozen_string_literal: false',
44
45
  "require 'propane'",
45
46
  '',
@@ -75,16 +75,19 @@ module Propane
75
75
 
76
76
  # explicitly provide 'processing.org' min instance method
77
77
  # to return a float:- a, b and c need to be floats
78
+ # you might choose to use ruby method directly and then
79
+ # provide a block to alter comparator eg
80
+ # args.min(&block) # { |a, b| a.value <=> b.value }
78
81
 
79
82
  def min(*args)
80
- args.min # { |a,b| a <=> b } optional block not reqd
83
+ args.min
81
84
  end
82
85
 
83
86
  # explicitly provide 'processing.org' max instance method
84
- # to return a float:- a, b and c need to be floats
87
+ # to return a float:- a, b and c need to be floats see above
85
88
 
86
89
  def max(*args)
87
- args.max # { |a, b| a <=> b } optional block not reqd
90
+ args.max
88
91
  end
89
92
 
90
93
  # explicitly provide 'processing.org' dist instance method
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module Propane
3
- VERSION = '2.3.0'.freeze
3
+ VERSION = '2.3.1'.freeze
4
4
  end
data/pom.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  require 'fileutils'
2
2
  project 'rp5extras', 'https://github.com/monkstone/propane' do
3
3
  model_version '4.0.0'
4
- id 'propane:propane', '2.3.0'
4
+ id 'propane:propane', '2.3.1'
5
5
  packaging 'jar'
6
6
  description 'rp5extras for propane'
7
7
  organization 'ruby-processing', 'https://ruby-processing.github.io'
@@ -32,8 +32,8 @@ project 'rp5extras', 'https://github.com/monkstone/propane' do
32
32
  'jogl.version' => '2.3.2'
33
33
  )
34
34
 
35
- pom 'org.jruby:jruby:9.1.7.0'
36
- jar 'org.processing:core:3.3.0'
35
+ pom 'org.jruby:jruby:9.1.8.0'
36
+ jar 'org.processing:core:3.3.1'
37
37
  jar 'org.processing:video:3.0.2'
38
38
  jar('org.jogamp.jogl:jogl-all:${jogl.version}')
39
39
  jar('org.jogamp.gluegen:gluegen-rt-main:${jogl.version}')
@@ -44,7 +44,7 @@ project 'rp5extras', 'https://github.com/monkstone/propane' do
44
44
  execute_goals( id: 'default-cli',
45
45
  artifactItems: [ { groupId: 'org.processing',
46
46
  artifactId: 'core',
47
- version: '3.3.0',
47
+ version: '3.3.1',
48
48
  type: 'jar',
49
49
  outputDirectory: '${propane.basedir}/lib'
50
50
  },
data/pom.xml CHANGED
@@ -11,7 +11,7 @@ DO NOT MODIFIY - GENERATED CODE
11
11
  <modelVersion>4.0.0</modelVersion>
12
12
  <groupId>propane</groupId>
13
13
  <artifactId>propane</artifactId>
14
- <version>2.3.0</version>
14
+ <version>2.3.1</version>
15
15
  <name>rp5extras</name>
16
16
  <description>rp5extras for propane</description>
17
17
  <url>https://github.com/monkstone/propane</url>
@@ -58,13 +58,13 @@ DO NOT MODIFIY - GENERATED CODE
58
58
  <dependency>
59
59
  <groupId>org.jruby</groupId>
60
60
  <artifactId>jruby</artifactId>
61
- <version>9.1.7.0</version>
61
+ <version>9.1.8.0</version>
62
62
  <type>pom</type>
63
63
  </dependency>
64
64
  <dependency>
65
65
  <groupId>org.processing</groupId>
66
66
  <artifactId>core</artifactId>
67
- <version>3.3.0</version>
67
+ <version>3.3.1</version>
68
68
  </dependency>
69
69
  <dependency>
70
70
  <groupId>org.processing</groupId>
@@ -103,7 +103,7 @@ DO NOT MODIFIY - GENERATED CODE
103
103
  <artifactItem>
104
104
  <groupId>org.processing</groupId>
105
105
  <artifactId>core</artifactId>
106
- <version>3.3.0</version>
106
+ <version>3.3.1</version>
107
107
  <type>jar</type>
108
108
  <outputDirectory>${propane.basedir}/lib</outputDirectory>
109
109
  </artifactItem>
data/propane.gemspec CHANGED
@@ -10,11 +10,11 @@ Gem::Specification.new do |gem|
10
10
  gem.email = ['mamba2928@yahoo.co.uk']
11
11
  gem.licenses = %w(GPL-3.0 LGPL-2.0)
12
12
  gem.description = %q{A batteries included version of processing in ruby, MacOS and linux64}
13
- gem.summary = %q{ruby wrapper for processing-3.3 on MacOS and linux64 bit only for opengl}
13
+ gem.summary = %q{ruby wrapper for processing-3.3.1 on MacOS and linux64 bit only for opengl}
14
14
  gem.homepage = 'https://ruby-processing.github.io/propane/'
15
15
  gem.files = `git ls-files`.split($/)
16
16
  gem.files << 'lib/propane.jar'
17
- gem.files << 'lib/core-3.3.0.jar'
17
+ gem.files << 'lib/core-3.3.1.jar'
18
18
  gem.files << 'lib/gluegen-rt-2.3.2.jar'
19
19
  gem.files << 'lib/jogl-all-2.3.2.jar'
20
20
  gem.files << 'lib/gluegen-rt-2.3.2-natives-linux-amd64.jar'
data/test/create_test.rb CHANGED
@@ -1,11 +1,10 @@
1
- gem 'minitest' # don't use bundled minitest
2
- require 'minitest/autorun'
3
- require 'minitest/pride'
4
-
5
-
1
+ require_relative 'test_helper'
6
2
  require_relative '../lib/propane/creators/sketch_class'
3
+ require_relative '../lib/propane/creators/sketch_writer'
7
4
 
8
5
  CLASS_SKETCH = <<~CODE
6
+
7
+ #!/usr/bin/env jruby
9
8
  # frozen_string_literal: false
10
9
  require 'propane'
11
10
 
@@ -27,28 +26,13 @@ FredSketch.new
27
26
 
28
27
  CODE
29
28
 
30
- BARE_SKETCH = <<~CODE
31
- def settings
32
- size 200, 200, P2D
33
- end
34
-
35
- def setup
36
- sketch_title 'Fred Sketch'
37
- end
38
-
39
- def draw
40
-
41
- end
42
-
43
- CODE
44
-
45
29
  class SketchClassTest < Minitest::Test
46
-
30
+
47
31
  def setup
48
32
  @basic = SketchClass.new(name: 'fred_sketch', width: 200, height: 200)
49
33
  @sketch = SketchClass.new(name: 'fred_sketch', width: 200, height: 200, mode: 'p2d')
50
34
  end
51
-
35
+
52
36
  def test_class
53
37
  result = CLASS_SKETCH.split(/\n/, -1)
54
38
  class_lines = @sketch.lines
@@ -78,14 +62,6 @@ class SketchClassTest < Minitest::Test
78
62
  assert_equal "FredSketch.new", @sketch.sketch_new
79
63
  end
80
64
 
81
- def test_method_lines
82
- result = CLASS_SKETCH.split(/\n/, -1)
83
- @basic.method_lines('settings', @basic.size).each_with_index do |line, i|
84
- assert_equal result[i + 4], line
85
- end
86
- end
87
-
88
-
89
65
  def test_sketch_class
90
66
  assert_equal "class FredSketch < Propane::App", @basic.class_sketch
91
67
  end
@@ -1,12 +1,7 @@
1
- gem 'minitest' # don't use bundled minitest
1
+ require_relative 'test_helper'
2
2
  require 'java'
3
- require 'minitest/autorun'
4
- require 'minitest/pride'
5
-
6
3
  require_relative '../lib/propane'
7
4
 
8
- Java::Monkstone::PropaneLibrary.load(JRuby.runtime)
9
-
10
5
  Dir.chdir(File.dirname(__FILE__))
11
6
 
12
7
  class DeglutTest < Minitest::Test
@@ -0,0 +1,58 @@
1
+ # frozen_string_literal: true
2
+ require_relative 'test_helper'
3
+ require 'java'
4
+ require_relative '../lib/propane'
5
+
6
+ Java::Monkstone::PropaneLibrary.new.load(JRuby.runtime, false)
7
+
8
+ include Propane::HelperMethods
9
+ include MathTool
10
+
11
+ Dir.chdir(File.dirname(__FILE__))
12
+
13
+ class HelperMethodsTest < Minitest::Test
14
+
15
+ ARRAY = %w(albatross dog horse)
16
+ def test_hex_color
17
+ col_double = 0.5
18
+ hexcolor = 0xFFCC6600
19
+ dodgy_hexstring = '*56666'
20
+ hexstring = '#CC6600'
21
+ assert hex_color(col_double) == 0.5, 'double as a color'
22
+ assert hex_color(hexcolor) == -3381760, 'hexadecimal fixnum color'
23
+ assert hex_color(hexstring) == -3381760, 'hexadecimal string color'
24
+ assert_raises(StandardError, 'Dodgy Hexstring') do
25
+ hex_color(dodgy_hexstring)
26
+ end
27
+ assert_raises(StandardError, 'Dodgy Color Conversion') do
28
+ hex_color([])
29
+ end
30
+ end
31
+
32
+ def test_dist
33
+ ax, ay, bx, by = 0, 0, 1.0, 1.0
34
+ assert_in_epsilon(dist(ax, ay, bx, by), Math.sqrt(2), epsilon = 0.0001, msg = '2D distance')
35
+ by = 0.0
36
+ assert_in_epsilon(dist(ax, ay, bx, by), 1.0, epsilon = 0.0001, msg = 'when y dimension is zero')
37
+ ax, ay, bx, by = 0, 0, 0.0, 0.0
38
+ assert_in_epsilon(dist(ax, ay, bx, by), 0.0, epsilon = 0.0001, msg = 'when x and y dimension are zero')
39
+ ax, ay, bx, by = 1, 1, -2.0, -3.0
40
+ assert_in_epsilon(dist(ax, ay, bx, by), 5.0, epsilon = 0.0001, msg = 'classic triangle dimensions')
41
+ ax, ay, bx, by, cx, cy = -1, -1, 100, 2.0, 3.0, 100
42
+ assert_in_epsilon(dist(ax, ay, bx, by, cx, cy), 5.0, epsilon = 0.0001, msg = 'classic triangle dimensions')
43
+ ax, ay, bx, by, cx, cy = 0, 0, -1.0, -1.0, 0, 0
44
+ assert_in_epsilon(dist(ax, ay, bx, by, cx, cy), Math.sqrt(2), epsilon = 0.0001, msg = '2D distance')
45
+ ax, ay, bx, by, cx, cy = 0, 0, 0.0, 0.0, 0, 0
46
+ assert_in_epsilon(dist(ax, ay, bx, by, cx, cy), 0.0)
47
+ ax, ay, bx, by, cx, cy = 0, 0, 1.0, 0.0, 0, 0
48
+ assert_in_epsilon(dist(ax, ay, bx, by, cx, cy), 1.0, epsilon = 0.0001, msg = 'when x and z dimension are zero')
49
+ end
50
+
51
+ def test_min
52
+ assert_equal(min(*ARRAY), 'albatross')
53
+ end
54
+
55
+ def test_max
56
+ assert_equal(max(*ARRAY), 'horse')
57
+ end
58
+ end
@@ -1,10 +1,6 @@
1
- gem 'minitest' # don't use bundled minitest
1
+ require_relative 'test_helper'
2
2
  require 'java'
3
- require 'minitest/autorun'
4
- require 'minitest/pride'
5
-
6
3
  require_relative '../lib/propane'
7
- # require_relative '../lib/jruby_art/helper_methods'
8
4
 
9
5
  Java::Monkstone::PropaneLibrary.new.load(JRuby.runtime, false)
10
6
 
@@ -1,8 +1,6 @@
1
- gem 'minitest' # don't use bundled minitest
1
+ # frozen_string_literal: true
2
2
  require 'java'
3
- require 'minitest/autorun'
4
- require 'minitest/pride'
5
-
3
+ require_relative 'test_helper'
6
4
  require_relative '../lib/propane'
7
5
 
8
6
  METHODS = %i(
@@ -200,18 +198,18 @@ class TestSketch < Propane::App
200
198
  end
201
199
  end
202
200
 
203
- class SpecTest < Minitest::Test
201
+ class SpecTest < Minitest::Test
204
202
  def setup
205
- @processing_sketch = TestSketch.new
203
+ @propane_sketch = TestSketch.new
206
204
  end
207
-
205
+
208
206
  def test_respond
209
207
  METHODS.each do |method_string|
210
- assert_respond_to @processing_sketch, method_string
208
+ assert_respond_to @propane_sketch, method_string
211
209
  end
212
210
  end
213
-
211
+
214
212
  def tear_down
215
- @processing_sketch = nil?
213
+ @propane_sketch = nil?
216
214
  end
217
215
  end
data/test/test_helper.rb CHANGED
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
- gem 'minitest' # don't use bundled minitest
3
- require 'minitest/autorun'
1
+ gem 'minitest'
4
2
  require 'minitest/pride'
5
- require_relative '../lib/propane'
3
+ require 'minitest/autorun'
@@ -1,8 +1,5 @@
1
- gem 'minitest' # don't use bundled minitest
1
+ require_relative 'test_helper'
2
2
  require 'java'
3
- require 'minitest/autorun'
4
- require 'minitest/pride'
5
-
6
3
  require_relative '../lib/propane'
7
4
 
8
5
  Java::Monkstone::PropaneLibrary.load(JRuby.runtime)
data/vendors/Rakefile CHANGED
@@ -9,7 +9,7 @@ SOUND = 'sound.zip'.freeze
9
9
  SOUND_VERSION = 'v1.3.2' # version 1.3.2
10
10
  VIDEO = 'video-2.zip'
11
11
  VIDEO_VERSION = '2' # version 1.0.1
12
- EXAMPLES = '1.0'.freeze
12
+ EXAMPLES = '1.2'.freeze
13
13
  HOME_DIR = ENV['HOME']
14
14
  MAC_OR_LINUX = /linux|mac|darwin/ =~ RbConfig::CONFIG['host_os']
15
15
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: propane
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.3.0
4
+ version: 2.3.1
5
5
  platform: java
6
6
  authors:
7
7
  - monkstone
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-02-14 00:00:00.000000000 Z
11
+ date: 2017-04-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: arcball
@@ -45,7 +45,7 @@ files:
45
45
  - Rakefile
46
46
  - bin/propane
47
47
  - lib/PROCESSING_LICENSE.txt
48
- - lib/core-3.3.0.jar
48
+ - lib/core-3.3.1.jar
49
49
  - lib/export.txt
50
50
  - lib/gluegen-rt-2.3.2-natives-linux-amd64.jar
51
51
  - lib/gluegen-rt-2.3.2-natives-macosx-universal.jar
@@ -104,13 +104,10 @@ files:
104
104
  - src/monkstone/videoevent/package-info.java
105
105
  - test/create_test.rb
106
106
  - test/deglut_spec_test.rb
107
+ - test/helper_methods_test.rb
107
108
  - test/math_tool_test.rb
108
109
  - test/respond_to_test.rb
109
- - test/test_create.rb
110
- - test/test_deglut_spec.rb
111
110
  - test/test_helper.rb
112
- - test/test_math_tool.rb
113
- - test/test_respond_to.rb
114
111
  - test/vecmath_spec_test.rb
115
112
  - vendors/Rakefile
116
113
  homepage: https://ruby-processing.github.io/propane/
@@ -134,18 +131,15 @@ required_rubygems_version: !ruby/object:Gem::Requirement
134
131
  version: '0'
135
132
  requirements: []
136
133
  rubyforge_project:
137
- rubygems_version: 2.6.8
134
+ rubygems_version: 2.6.11
138
135
  signing_key:
139
136
  specification_version: 4
140
- summary: ruby wrapper for processing-3.3 on MacOS and linux64 bit only for opengl
137
+ summary: ruby wrapper for processing-3.3.1 on MacOS and linux64 bit only for opengl
141
138
  test_files:
142
139
  - test/create_test.rb
143
140
  - test/deglut_spec_test.rb
141
+ - test/helper_methods_test.rb
144
142
  - test/math_tool_test.rb
145
143
  - test/respond_to_test.rb
146
- - test/test_create.rb
147
- - test/test_deglut_spec.rb
148
144
  - test/test_helper.rb
149
- - test/test_math_tool.rb
150
- - test/test_respond_to.rb
151
145
  - test/vecmath_spec_test.rb
data/test/test_create.rb DELETED
@@ -1,91 +0,0 @@
1
- # frozen_string_literal: true
2
- require_relative 'test_helper'
3
-
4
-
5
- require_relative '../lib/propane/creators/sketch_class'
6
-
7
- CLASS_SKETCH = <<~CODE
8
- # frozen_string_literal: false
9
- require 'propane'
10
-
11
- class FredSketch < Propane::App
12
- def settings
13
- size 200, 200
14
- end
15
-
16
- def setup
17
- sketch_title 'Fred Sketch'
18
- end
19
-
20
- def draw
21
-
22
- end
23
- end
24
-
25
- FredSketch.new
26
-
27
- CODE
28
-
29
- BARE_SKETCH = <<~CODE
30
- def settings
31
- size 200, 200, P2D
32
- end
33
-
34
- def setup
35
- sketch_title 'Fred Sketch'
36
- end
37
-
38
- def draw
39
-
40
- end
41
-
42
- CODE
43
-
44
- class SketchClassTest < Minitest::Test
45
-
46
- def setup
47
- @basic = SketchClass.new(name: 'fred_sketch', width: 200, height: 200)
48
- @sketch = SketchClass.new(name: 'fred_sketch', width: 200, height: 200, mode: 'p2d')
49
- end
50
-
51
- def test_class
52
- result = CLASS_SKETCH.split(/\n/, -1)
53
- class_lines = @sketch.lines
54
- class_lines.each_with_index do |line, i|
55
- assert_equal result[i], line
56
- end
57
- end
58
-
59
- def test_indent
60
- assert_equal ' indent', @sketch.indent('indent')
61
- end
62
-
63
- def test_size
64
- assert_equal ' size 200, 200, P2D', @sketch.size
65
- assert_equal ' size 200, 200', @basic.size
66
- end
67
-
68
- def test_sketch_title
69
- assert_equal " sketch_title 'Fred Sketch'", @sketch.sketch_title
70
- end
71
-
72
- def test_class
73
- assert_equal "FredSketch", @sketch.sketch_class
74
- end
75
-
76
- def test_class_new
77
- assert_equal "FredSketch.new", @sketch.sketch_new
78
- end
79
-
80
- def test_method_lines
81
- result = CLASS_SKETCH.split(/\n/, -1)
82
- @basic.method_lines('settings', @basic.size).each_with_index do |line, i|
83
- assert_equal result[i + 4], line
84
- end
85
- end
86
-
87
-
88
- def test_sketch_class
89
- assert_equal "class FredSketch < Propane::App", @basic.class_sketch
90
- end
91
- end
@@ -1,25 +0,0 @@
1
- # frozen_string_literal: true
2
- require_relative 'test_helper'
3
-
4
- Java::Monkstone::PropaneLibrary.load(JRuby.runtime)
5
-
6
- Dir.chdir(File.dirname(__FILE__))
7
-
8
- class DeglutTest < Minitest::Test
9
- attr_reader :to_radian
10
-
11
- def setup
12
- @to_radian = Math::PI / 180
13
- end
14
-
15
- def test_cos_sin
16
- (-720..720).step(1) do |deg|
17
- sine = DegLut.sin(deg)
18
- deg_sin = Math.sin(deg * to_radian)
19
- assert_in_delta(sine, deg_sin, delta = 0.000001)
20
- cosine = DegLut.cos(deg)
21
- deg_cos = Math.cos(deg * to_radian)
22
- assert_in_delta(cosine, deg_cos, delta = 0.000001)
23
- end
24
- end
25
- end
@@ -1,89 +0,0 @@
1
- # frozen_string_literal: true
2
- require_relative 'test_helper'
3
-
4
- Java::Monkstone::PropaneLibrary.new.load(JRuby.runtime, false)
5
-
6
- Dir.chdir(File.dirname(__FILE__))
7
-
8
- class MathToolTest < Minitest::Test
9
- include MathTool
10
- def test_map1d
11
- x = [0, 5, 7.5, 10]
12
- range1 = (0..10)
13
- range2 = (100..1)
14
- range3 = (0..10)
15
- range4 = (5..105)
16
- assert_in_delta(map1d(x[0], range1, range2), 100, delta = 0.00001, msg = 'map to first')
17
- assert_in_delta(map1d(x[1], range1, range2), 50.5, delta = 0.00001, msg = 'map to reversed intermediate')
18
- assert_in_delta(map1d(x[2], range3, range4), 80.0, delta = 0.00001, msg = 'map to intermediate')
19
- assert_in_delta(map1d(x[3], range1, range2), 1, delta = 0.00001, msg = 'map to last')
20
- end
21
-
22
- def test_p5map # as map1d except not using range input
23
- x = [0, 5, 7.5, 10]
24
- range1 = (0..10)
25
- range2 = (100..1)
26
- range3 = (0..10)
27
- range4 = (5..105)
28
- assert_in_delta(p5map(x[0], range1.first, range1.last, range2.first, range2.last), 100, delta = 0.00001)
29
- assert_in_delta(p5map(x[1], range1.first, range1.last, range2.first, range2.last), 50.5, delta = 0.00001)
30
- assert_in_delta(p5map(x[2], range3.first, range3.last, range4.first, range4.last), 80.0, delta = 0.00001)
31
- assert_in_delta(p5map(x[3], range1.first, range1.last, range2.first, range2.last), 1, delta = 0.00001)
32
- end
33
-
34
- def test_norm
35
- x = [10, 140, 210]
36
- start0, last0 = 30, 200
37
- start_int, last_int = 0, 200
38
- assert_in_delta(norm(x[0], start0, last0), -0.11764705882352941, delta = 0.00001, msg = 'unclamped map')
39
- assert_in_delta(norm(x[1], start_int, last_int), 0.7, delta = 0.00001, msg = 'map to intermediate')
40
- assert_in_delta(norm(x[2], start_int, last_int), 1.05, delta = 0.00001, msg = 'unclamped map')
41
- end
42
-
43
- def test_norm_strict
44
- x = [10, 140, 210]
45
- assert_in_delta(norm_strict(x[2], x[0], x[1]), 1.0, delta = 0.00001, msg = 'clamped map to 0..1.0')
46
- assert_in_delta(norm_strict(x[2], x[1], x[0]), 0.0, delta = 0.00001, msg = 'clamped map to 0..1.0')
47
- assert_in_delta(norm_strict(x[1], x[0], x[2]), 0.65, delta = 0.00001, msg = 'clamped map to 0..1.0')
48
- end
49
-
50
- def test_lerp # behaviour is deliberately different to processing which is unclamped
51
- x = [0.5, 0.8, 2.0]
52
- start0, last0 = 300, 200
53
- start_int, last_int = 0, 200
54
- assert_in_delta(lerp(start0, last0, x[0]), 250, delta = 0.00001, msg = 'produces a intermediate value of a reversed range')
55
- assert_in_delta(lerp(start_int, last_int, x[1]), 160, delta = 0.00001, msg = 'lerps to an intermediate value')
56
- assert_in_delta(lerp(start_int, last_int, x[2]), 200, delta = 0.00001, msg = 'lerps to the last value of a range')
57
- end
58
-
59
- def test_constrain
60
- x_int = [15, 2_500, -2_500]
61
- start_int, last_int = 0, 200
62
- assert_in_delta(constrain(x_int[0], start_int, last_int), 15, delta = 0.00001)
63
- assert_in_delta(constrain(x_int[1], start_int, last_int), 200, delta = 0.00001)
64
- assert_in_delta(constrain(x_int[2], start_int, last_int), 0, delta = 0.00001)
65
- xf = [15.0, 2_500.0, -2_500.0]
66
- startf, lastf = 0, 200.0
67
- assert_in_delta(constrain(xf[0], startf, lastf), 15.0, delta = 0.00001, msg = 'constrain to 0..200')
68
- assert_in_delta(constrain(xf[1], startf, lastf), 200.0, delta = 0.00001, msg = 'constrain to 0..200')
69
- assert_in_delta(constrain(xf[2], startf, lastf), 0.0, delta = 0.00001, msg = 'constrain to 0..200')
70
- end
71
-
72
- def test_grid_one
73
- array = []
74
- grid(100, 100) { |x, y| array << [x, y] }
75
- assert array[0].include?(0)
76
- assert array[98].include?(0)
77
- assert_equal array.length, 10_000
78
- assert array[50].include?(50)
79
- end
80
-
81
- def test_grid_ten
82
- array = []
83
- grid(100, 100, 10, 10) { |x, y| array << [x, y] }
84
- assert array[0].include?(0)
85
- assert array[9].include?(90)
86
- assert_equal array.length, 100
87
- assert array[5].include?(50)
88
- end
89
- end
@@ -1,213 +0,0 @@
1
- # frozen_string_literal: true
2
- require_relative 'test_helper'
3
-
4
- METHODS = %i(
5
- alpha
6
- ambient
7
- ambient_light
8
- apply_matrix
9
- arc
10
- background
11
- begin_camera
12
- begin_contour
13
- begin_raw
14
- begin_record
15
- begin_shape
16
- bezier
17
- bezier_detail
18
- bezier_point
19
- bezier_tangent
20
- bezier_vertex
21
- blend
22
- blend_mode
23
- blue
24
- box
25
- brightness
26
- camera
27
- color
28
- color_mode
29
- copy
30
- create_font
31
- create_graphics
32
- create_image
33
- create_input
34
- create_output
35
- create_reader
36
- create_shape
37
- create_writer
38
- cursor
39
- curve
40
- curve_detail
41
- curve_point
42
- curve_tangent
43
- curve_tightness
44
- curve_vertex
45
- directional_light
46
- ellipse
47
- ellipse_mode
48
- emissive
49
- end_camera
50
- end_contour
51
- end_raw
52
- end_record
53
- end_shape
54
- fill
55
- filter
56
- focused
57
- frame_count
58
- frame_rate
59
- frame_rate
60
- frustum
61
- get
62
- green
63
- height
64
- hue
65
- image
66
- image_mode
67
- key
68
- key_code
69
- key_pressed
70
- key_pressed?
71
- key_released
72
- key_typed
73
- lerp_color
74
- light_falloff
75
- light_specular
76
- lights
77
- line
78
- load_bytes
79
- load_font
80
- load_image
81
- load_pixels
82
- load_shader
83
- load_shape
84
- load_strings
85
- load_table
86
- load_xml
87
- model_x
88
- model_y
89
- model_z
90
- mouse_button
91
- mouse_clicked
92
- mouse_dragged
93
- mouse_moved
94
- mouse_pressed
95
- mouse_pressed?
96
- mouse_released
97
- mouse_x
98
- mouse_y
99
- no_cursor
100
- no_fill
101
- no_lights
102
- no_smooth
103
- no_stroke
104
- no_tint
105
- noise
106
- noise_detail
107
- noise_seed
108
- normal
109
- ortho
110
- perspective
111
- pixels
112
- pmouse_x
113
- pmouse_y
114
- point
115
- point_light
116
- pop_matrix
117
- print_camera
118
- print_matrix
119
- print_projection
120
- push_matrix
121
- quad
122
- quadratic_vertex
123
- random
124
- random_seed
125
- rect
126
- rect_mode
127
- red
128
- request_image
129
- reset_matrix
130
- reset_shader
131
- rotate
132
- rotate_x
133
- rotate_y
134
- rotate_z
135
- saturation
136
- save
137
- save_bytes
138
- save_frame
139
- save_stream
140
- save_strings
141
- scale
142
- screen_x
143
- screen_y
144
- screen_z
145
- select_folder
146
- select_input
147
- select_output
148
- set
149
- shader
150
- shape
151
- shape_mode
152
- shear_x
153
- shear_y
154
- shininess
155
- sketch_title
156
- size
157
- smooth
158
- specular
159
- sphere
160
- sphere_detail
161
- spot_light
162
- stroke
163
- stroke_cap
164
- stroke_join
165
- stroke_weight
166
- text_align
167
- text_ascent
168
- text_descent
169
- text_font
170
- text_leading
171
- text_mode
172
- text_size
173
- text_width
174
- texture
175
- texture_mode
176
- texture_wrap
177
- tint
178
- translate
179
- triangle
180
- update_pixels
181
- vertex
182
- width
183
- )
184
-
185
- class TestSketch < Propane::App
186
- def settings
187
- size 100, 100
188
- end
189
-
190
- def setup
191
- sketch_title 'Sketch Test'
192
- end
193
-
194
- def draw
195
- exit if frame_count > 30
196
- end
197
- end
198
-
199
- class SpecTest < Minitest::Test
200
- def setup
201
- @processing_sketch = TestSketch.new
202
- end
203
-
204
- def test_respond
205
- METHODS.each do |method_string|
206
- assert_respond_to @processing_sketch, method_string
207
- end
208
- end
209
-
210
- def tear_down
211
- @processing_sketch = nil?
212
- end
213
- end