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.
Files changed (54) hide show
  1. data/CHANGELOG.txt +6 -0
  2. data/LICENSE.txt +20 -0
  3. data/README.txt +113 -0
  4. data/Rakefile +30 -0
  5. data/bin/rgds-debug +43 -0
  6. data/bin/rgds-dump +38 -0
  7. data/bin/rgds-join +98 -0
  8. data/bin/rgds-layers +53 -0
  9. data/bin/rgds-sremove +136 -0
  10. data/bin/rgds-ssplit +113 -0
  11. data/bin/rgds-stats +134 -0
  12. data/bin/rgds-structs +41 -0
  13. data/bin/rgds-tree +167 -0
  14. data/bin/rgds2rb +99 -0
  15. data/lib/gdsii.rb +137 -0
  16. data/lib/gdsii/aref.rb +243 -0
  17. data/lib/gdsii/bnf.rb +309 -0
  18. data/lib/gdsii/boundary.rb +53 -0
  19. data/lib/gdsii/box.rb +65 -0
  20. data/lib/gdsii/byte_order.rb +36 -0
  21. data/lib/gdsii/element.rb +172 -0
  22. data/lib/gdsii/group.rb +98 -0
  23. data/lib/gdsii/library.rb +518 -0
  24. data/lib/gdsii/mixins.rb +378 -0
  25. data/lib/gdsii/node.rb +65 -0
  26. data/lib/gdsii/path.rb +169 -0
  27. data/lib/gdsii/property.rb +108 -0
  28. data/lib/gdsii/record.rb +606 -0
  29. data/lib/gdsii/record/consts.rb +384 -0
  30. data/lib/gdsii/record/datatypes/ascii.rb +145 -0
  31. data/lib/gdsii/record/datatypes/bitarray.rb +101 -0
  32. data/lib/gdsii/record/datatypes/data.rb +111 -0
  33. data/lib/gdsii/record/datatypes/int2.rb +67 -0
  34. data/lib/gdsii/record/datatypes/int4.rb +65 -0
  35. data/lib/gdsii/record/datatypes/nodata.rb +60 -0
  36. data/lib/gdsii/record/datatypes/real4.rb +51 -0
  37. data/lib/gdsii/record/datatypes/real8.rb +120 -0
  38. data/lib/gdsii/sref.rb +61 -0
  39. data/lib/gdsii/strans.rb +133 -0
  40. data/lib/gdsii/structure.rb +352 -0
  41. data/lib/gdsii/text.rb +203 -0
  42. data/pkg/ruby-gdsii.gem +46 -0
  43. data/samples/hello.gds +0 -0
  44. data/samples/hello.out.rb +84 -0
  45. data/samples/hello.rb +94 -0
  46. data/test/baseline/dcp1.gds +0 -0
  47. data/test/baseline/h_write.gds +0 -0
  48. data/test/h_pthru.rb +22 -0
  49. data/test/h_write.rb +117 -0
  50. data/test/hs_pthru.rb +31 -0
  51. data/test/l_pthru.rb +23 -0
  52. data/test/test_gds_group.rb +379 -0
  53. data/test/test_gds_record.rb +99 -0
  54. 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