jfreeze-ruby-gdsii 1.0.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|