jfreeze-ruby-gdsii 1.0.1

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