jfreeze-ruby-gdsii 1.0.1
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.
- data/CHANGELOG.txt +6 -0
- data/LICENSE.txt +20 -0
- data/README.txt +113 -0
- data/Rakefile +30 -0
- data/bin/rgds-debug +43 -0
- data/bin/rgds-dump +38 -0
- data/bin/rgds-join +98 -0
- data/bin/rgds-layers +53 -0
- data/bin/rgds-sremove +136 -0
- data/bin/rgds-ssplit +113 -0
- data/bin/rgds-stats +134 -0
- data/bin/rgds-structs +41 -0
- data/bin/rgds-tree +167 -0
- data/bin/rgds2rb +99 -0
- data/lib/gdsii.rb +137 -0
- data/lib/gdsii/aref.rb +243 -0
- data/lib/gdsii/bnf.rb +309 -0
- data/lib/gdsii/boundary.rb +53 -0
- data/lib/gdsii/box.rb +65 -0
- data/lib/gdsii/byte_order.rb +36 -0
- data/lib/gdsii/element.rb +172 -0
- data/lib/gdsii/group.rb +98 -0
- data/lib/gdsii/library.rb +518 -0
- data/lib/gdsii/mixins.rb +378 -0
- data/lib/gdsii/node.rb +65 -0
- data/lib/gdsii/path.rb +169 -0
- data/lib/gdsii/property.rb +108 -0
- data/lib/gdsii/record.rb +606 -0
- data/lib/gdsii/record/consts.rb +384 -0
- data/lib/gdsii/record/datatypes/ascii.rb +145 -0
- data/lib/gdsii/record/datatypes/bitarray.rb +101 -0
- data/lib/gdsii/record/datatypes/data.rb +111 -0
- data/lib/gdsii/record/datatypes/int2.rb +67 -0
- data/lib/gdsii/record/datatypes/int4.rb +65 -0
- data/lib/gdsii/record/datatypes/nodata.rb +60 -0
- data/lib/gdsii/record/datatypes/real4.rb +51 -0
- data/lib/gdsii/record/datatypes/real8.rb +120 -0
- data/lib/gdsii/sref.rb +61 -0
- data/lib/gdsii/strans.rb +133 -0
- data/lib/gdsii/structure.rb +352 -0
- data/lib/gdsii/text.rb +203 -0
- data/pkg/ruby-gdsii.gem +46 -0
- data/samples/hello.gds +0 -0
- data/samples/hello.out.rb +84 -0
- data/samples/hello.rb +94 -0
- data/test/baseline/dcp1.gds +0 -0
- data/test/baseline/h_write.gds +0 -0
- data/test/h_pthru.rb +22 -0
- data/test/h_write.rb +117 -0
- data/test/hs_pthru.rb +31 -0
- data/test/l_pthru.rb +23 -0
- data/test/test_gds_group.rb +379 -0
- data/test/test_gds_record.rb +99 -0
- metadata +117 -0
@@ -0,0 +1,99 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'test/unit'
|
4
|
+
require 'gdsii/record'
|
5
|
+
|
6
|
+
include Gdsii
|
7
|
+
include Gdsii::RecData
|
8
|
+
|
9
|
+
class GdsRecordTest < Test::Unit::TestCase
|
10
|
+
|
11
|
+
# Test record data types (Gds::Record::*)
|
12
|
+
def test_rec_data()
|
13
|
+
|
14
|
+
########################################
|
15
|
+
### ASCII record test
|
16
|
+
rec=Ascii.new(['hello'], nil)
|
17
|
+
assert_equal 6, rec.byte_size
|
18
|
+
|
19
|
+
# test ASCII padding / unpadding
|
20
|
+
rec.pad!
|
21
|
+
assert_equal ['hello'].pack('a6'), rec[0]
|
22
|
+
rec.pad!(8)
|
23
|
+
assert_equal "hello\000\000\000", rec[0]
|
24
|
+
rec.unpad!
|
25
|
+
assert_equal 'hello', rec[0]
|
26
|
+
|
27
|
+
# test bad values
|
28
|
+
assert_raise(TypeError) { rec.value = 'test' }
|
29
|
+
assert_raise(TypeError) { rec.value = 1 }
|
30
|
+
|
31
|
+
# test multiple values
|
32
|
+
rec.value = ['hello', 'world']
|
33
|
+
rec.pad!
|
34
|
+
assert_equal ["hello\0", "world\0"], rec.value
|
35
|
+
|
36
|
+
########################################
|
37
|
+
### INT2 record test
|
38
|
+
rec=Int2.new([3])
|
39
|
+
assert_equal 2, rec.byte_size
|
40
|
+
rec.value = [2,4,5]
|
41
|
+
assert_equal 6, rec.byte_size
|
42
|
+
|
43
|
+
########################################
|
44
|
+
### INT4 record test
|
45
|
+
rec=Int4.new([3])
|
46
|
+
assert_equal 4, rec.byte_size
|
47
|
+
rec.value = [2,4,5]
|
48
|
+
assert_equal 12, rec.byte_size
|
49
|
+
|
50
|
+
########################################
|
51
|
+
### REAL4 record test
|
52
|
+
assert_raise(RuntimeError) {rec=Real4.new([3])}
|
53
|
+
|
54
|
+
########################################
|
55
|
+
### REAL8 record test
|
56
|
+
rec=Real8.new([1.0, 2.3])
|
57
|
+
assert_equal 16, rec.byte_size
|
58
|
+
rec.value = [2.0,4.0,5.0]
|
59
|
+
assert_equal 24, rec.byte_size
|
60
|
+
|
61
|
+
########################################
|
62
|
+
### NO_DATA record test
|
63
|
+
rec = NoData.new()
|
64
|
+
assert_raise(ArgumentError) { rec.value = [1] }
|
65
|
+
assert_equal 0, rec.byte_size
|
66
|
+
|
67
|
+
########################################
|
68
|
+
### BITARRAY record test
|
69
|
+
rec =BitArray.new(['1001000011111001'])
|
70
|
+
assert_equal 2, rec.byte_size
|
71
|
+
|
72
|
+
|
73
|
+
end
|
74
|
+
|
75
|
+
def test_record()
|
76
|
+
|
77
|
+
rec = Record.new(GRT_HEADER, [6])
|
78
|
+
rec = Record.new(GRT_HEADER, 6)
|
79
|
+
|
80
|
+
# assert_raise(ArgumentError) {
|
81
|
+
# rec = Record.new(GRT_HEADER, [6,2])
|
82
|
+
# }
|
83
|
+
|
84
|
+
# test GDT_NO_DATA records...
|
85
|
+
Record.new(GRT_ENDLIB)
|
86
|
+
|
87
|
+
# test swapping out data
|
88
|
+
rec = Record.new(GRT_HEADER, 6)
|
89
|
+
rec.data = 7
|
90
|
+
assert_equal [7], rec.data.value
|
91
|
+
|
92
|
+
# Test special size for GRT_FONTS record
|
93
|
+
fonts = Record.new(GRT_FONTS, ['one', 'two', 'three', 'four'])
|
94
|
+
assert_equal 180, fonts.byte_size
|
95
|
+
assert_equal 176, fonts.data.byte_size
|
96
|
+
|
97
|
+
end
|
98
|
+
|
99
|
+
end
|
metadata
ADDED
@@ -0,0 +1,117 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: jfreeze-ruby-gdsii
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- James Masters, Jim Freeze, et al
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
|
12
|
+
date: 2008-10-27 00:00:00 -07:00
|
13
|
+
default_executable:
|
14
|
+
dependencies: []
|
15
|
+
|
16
|
+
description:
|
17
|
+
email: james.d.masters@intel.com
|
18
|
+
executables:
|
19
|
+
- rgds-debug
|
20
|
+
- rgds-dump
|
21
|
+
- rgds-join
|
22
|
+
- rgds-layers
|
23
|
+
- rgds-sremove
|
24
|
+
- rgds-ssplit
|
25
|
+
- rgds-stats
|
26
|
+
- rgds-structs
|
27
|
+
- rgds-tree
|
28
|
+
- rgds2rb
|
29
|
+
extensions: []
|
30
|
+
|
31
|
+
extra_rdoc_files:
|
32
|
+
- README.txt
|
33
|
+
- LICENSE.txt
|
34
|
+
files:
|
35
|
+
- bin/rgds-debug
|
36
|
+
- bin/rgds-dump
|
37
|
+
- bin/rgds-join
|
38
|
+
- bin/rgds-layers
|
39
|
+
- bin/rgds-sremove
|
40
|
+
- bin/rgds-ssplit
|
41
|
+
- bin/rgds-stats
|
42
|
+
- bin/rgds-structs
|
43
|
+
- bin/rgds-tree
|
44
|
+
- bin/rgds2rb
|
45
|
+
- lib/gdsii/aref.rb
|
46
|
+
- lib/gdsii/bnf.rb
|
47
|
+
- lib/gdsii/boundary.rb
|
48
|
+
- lib/gdsii/box.rb
|
49
|
+
- lib/gdsii/byte_order.rb
|
50
|
+
- lib/gdsii/element.rb
|
51
|
+
- lib/gdsii/group.rb
|
52
|
+
- lib/gdsii/library.rb
|
53
|
+
- lib/gdsii/mixins.rb
|
54
|
+
- lib/gdsii/node.rb
|
55
|
+
- lib/gdsii/path.rb
|
56
|
+
- lib/gdsii/property.rb
|
57
|
+
- lib/gdsii/record
|
58
|
+
- lib/gdsii/record/consts.rb
|
59
|
+
- lib/gdsii/record/datatypes/ascii.rb
|
60
|
+
- lib/gdsii/record/datatypes/bitarray.rb
|
61
|
+
- lib/gdsii/record/datatypes/data.rb
|
62
|
+
- lib/gdsii/record/datatypes/int2.rb
|
63
|
+
- lib/gdsii/record/datatypes/int4.rb
|
64
|
+
- lib/gdsii/record/datatypes/nodata.rb
|
65
|
+
- lib/gdsii/record/datatypes/real4.rb
|
66
|
+
- lib/gdsii/record/datatypes/real8.rb
|
67
|
+
- lib/gdsii/record.rb
|
68
|
+
- lib/gdsii/sref.rb
|
69
|
+
- lib/gdsii/strans.rb
|
70
|
+
- lib/gdsii/structure.rb
|
71
|
+
- lib/gdsii/text.rb
|
72
|
+
- lib/gdsii.rb
|
73
|
+
- pkg/ruby-gdsii.gem
|
74
|
+
- samples/hello.gds
|
75
|
+
- samples/hello.out.rb
|
76
|
+
- samples/hello.rb
|
77
|
+
- test/baseline/dcp1.gds
|
78
|
+
- test/baseline/h_write.gds
|
79
|
+
- test/h_pthru.rb
|
80
|
+
- test/h_write.rb
|
81
|
+
- test/hs_pthru.rb
|
82
|
+
- test/l_pthru.rb
|
83
|
+
- test/test_gds_group.rb
|
84
|
+
- test/test_gds_record.rb
|
85
|
+
- Rakefile
|
86
|
+
- CHANGELOG.txt
|
87
|
+
- README.txt
|
88
|
+
- LICENSE.txt
|
89
|
+
has_rdoc: true
|
90
|
+
homepage: http://rubyforge.org/frs/?group_id=833
|
91
|
+
post_install_message:
|
92
|
+
rdoc_options: []
|
93
|
+
|
94
|
+
require_paths:
|
95
|
+
- lib
|
96
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
97
|
+
requirements:
|
98
|
+
- - ">="
|
99
|
+
- !ruby/object:Gem::Version
|
100
|
+
version: "0"
|
101
|
+
version:
|
102
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
103
|
+
requirements:
|
104
|
+
- - ">="
|
105
|
+
- !ruby/object:Gem::Version
|
106
|
+
version: "0"
|
107
|
+
version:
|
108
|
+
requirements: []
|
109
|
+
|
110
|
+
rubyforge_project:
|
111
|
+
rubygems_version: 1.2.0
|
112
|
+
signing_key:
|
113
|
+
specification_version: 2
|
114
|
+
summary: GDSII reader and writer with both high-level (easier to use) and low-level (faster performance) methods.
|
115
|
+
test_files:
|
116
|
+
- test/test_gds_group.rb
|
117
|
+
- test/test_gds_record.rb
|