finitio 0.7.0.pre.rc4 → 0.10.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (103) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +42 -0
  3. data/Gemfile +1 -11
  4. data/Gemfile.lock +101 -54
  5. data/README.md +89 -13
  6. data/finitio.gemspec +9 -157
  7. data/lib/finitio.rb +7 -5
  8. data/lib/finitio/generation.rb +106 -0
  9. data/lib/finitio/generation/ad_type.rb +10 -0
  10. data/lib/finitio/generation/alias_type.rb +9 -0
  11. data/lib/finitio/generation/any_type.rb +11 -0
  12. data/lib/finitio/generation/builtin_type.rb +9 -0
  13. data/lib/finitio/generation/hash_based_type.rb +15 -0
  14. data/lib/finitio/generation/heuristic.rb +8 -0
  15. data/lib/finitio/generation/heuristic/constant.rb +30 -0
  16. data/lib/finitio/generation/heuristic/random.rb +52 -0
  17. data/lib/finitio/generation/rel_based_type.rb +13 -0
  18. data/lib/finitio/generation/seq_type.rb +13 -0
  19. data/lib/finitio/generation/set_type.rb +13 -0
  20. data/lib/finitio/generation/sub_type.rb +9 -0
  21. data/lib/finitio/generation/union_type.rb +10 -0
  22. data/lib/finitio/inference.rb +51 -0
  23. data/lib/finitio/json_schema.rb +16 -0
  24. data/lib/finitio/json_schema/ad_type.rb +11 -0
  25. data/lib/finitio/json_schema/alias_type.rb +9 -0
  26. data/lib/finitio/json_schema/any_type.rb +9 -0
  27. data/lib/finitio/json_schema/builtin_type.rb +27 -0
  28. data/lib/finitio/json_schema/hash_based_type.rb +25 -0
  29. data/lib/finitio/json_schema/rel_based_type.rb +13 -0
  30. data/lib/finitio/json_schema/seq_type.rb +12 -0
  31. data/lib/finitio/json_schema/set_type.rb +13 -0
  32. data/lib/finitio/json_schema/struct_type.rb +12 -0
  33. data/lib/finitio/json_schema/sub_type.rb +10 -0
  34. data/lib/finitio/json_schema/union_type.rb +11 -0
  35. data/lib/finitio/support.rb +18 -0
  36. data/lib/finitio/support/attribute.rb +8 -0
  37. data/lib/finitio/support/compilation.rb +18 -18
  38. data/lib/finitio/support/contract.rb +10 -2
  39. data/lib/finitio/support/fetch_scope.rb +19 -0
  40. data/lib/finitio/support/heading.rb +42 -1
  41. data/lib/finitio/syntax.rb +1 -1
  42. data/lib/finitio/syntax/lexer.citrus +1 -1
  43. data/lib/finitio/syntax/type.rb +2 -0
  44. data/lib/finitio/syntax/type/high_order_type_instantiation.rb +29 -0
  45. data/lib/finitio/syntax/type/high_order_vars.rb +16 -0
  46. data/lib/finitio/syntax/type/type_def.rb +11 -1
  47. data/lib/finitio/syntax/types.citrus +14 -1
  48. data/lib/finitio/system.rb +18 -4
  49. data/lib/finitio/type.rb +19 -0
  50. data/lib/finitio/type/ad_type.rb +9 -1
  51. data/lib/finitio/type/alias_type.rb +8 -0
  52. data/lib/finitio/type/any_type.rb +12 -0
  53. data/lib/finitio/type/builtin_type.rb +4 -0
  54. data/lib/finitio/type/collection_type.rb +15 -0
  55. data/lib/finitio/type/heading_based_type.rb +17 -0
  56. data/lib/finitio/type/high_order_type.rb +39 -0
  57. data/lib/finitio/type/multi_relation_type.rb +4 -0
  58. data/lib/finitio/type/multi_tuple_type.rb +4 -0
  59. data/lib/finitio/type/proxy_type.rb +10 -20
  60. data/lib/finitio/type/relation_type.rb +4 -0
  61. data/lib/finitio/type/seq_type.rb +1 -1
  62. data/lib/finitio/type/struct_type.rb +8 -0
  63. data/lib/finitio/type/sub_type.rb +8 -0
  64. data/lib/finitio/type/tuple_type.rb +4 -0
  65. data/lib/finitio/type/union_type.rb +19 -0
  66. data/lib/finitio/version.rb +2 -2
  67. data/spec/finitio/test_system.rb +0 -11
  68. data/spec/generation/test_generation.rb +169 -0
  69. data/spec/heading/test_looks_similar.rb +45 -0
  70. data/spec/heading/test_suppremum.rb +56 -0
  71. data/spec/inference/test_inference.rb +42 -0
  72. data/spec/json_schema/test_ad_type.rb +20 -0
  73. data/spec/json_schema/test_alias_type.rb +15 -0
  74. data/spec/json_schema/test_any_type.rb +11 -0
  75. data/spec/json_schema/test_builtin_type.rb +51 -0
  76. data/spec/json_schema/test_multi_relation_type.rb +58 -0
  77. data/spec/json_schema/test_multi_tuple_type.rb +50 -0
  78. data/spec/json_schema/test_relation_type.rb +30 -0
  79. data/spec/json_schema/test_seq_type.rb +18 -0
  80. data/spec/json_schema/test_set_type.rb +19 -0
  81. data/spec/json_schema/test_struct_type.rb +18 -0
  82. data/spec/json_schema/test_sub_type.rb +17 -0
  83. data/spec/json_schema/test_tuple_type.rb +26 -0
  84. data/spec/json_schema/test_union_type.rb +17 -0
  85. data/spec/regression/test_heading_extra_are_proxy_resolved.rb +41 -0
  86. data/spec/spec_helper.rb +32 -6
  87. data/spec/support/test_compare_attrs.rb +67 -0
  88. data/spec/syntax/test_compile.rb +57 -0
  89. data/spec/system/fixtures/system.fio +2 -0
  90. data/spec/{finitio → system/fixtures}/with-duplicates.fio +2 -1
  91. data/spec/system/test_check_and_warn.rb +55 -0
  92. data/spec/type/ad_type/test_initialize.rb +1 -8
  93. data/spec/type/relation_type/test_suppremum.rb +104 -0
  94. data/spec/type/seq_type/test_suppremum.rb +54 -0
  95. data/spec/type/set_type/test_suppremum.rb +54 -0
  96. data/spec/type/test_suppremum.rb +49 -0
  97. data/spec/type/test_unconstrained.rb +150 -0
  98. data/spec/type/tuple_type/test_suppremum.rb +119 -0
  99. data/spec/type/union_type/test_suppremum.rb +51 -0
  100. data/tasks/test.rake +1 -1
  101. metadata +203 -17
  102. data/spec/type/proxy_type/test_delegation.rb +0 -37
  103. data/spec/type/proxy_type/test_resolve.rb +0 -29
@@ -0,0 +1,119 @@
1
+ require 'spec_helper'
2
+ module Finitio
3
+ describe TupleType, "suppremum" do
4
+
5
+ subject{
6
+ left.suppremum(right)
7
+ }
8
+
9
+ let(:heading){
10
+ Heading.new([Attribute.new(:a, intType),
11
+ Attribute.new(:b, stringType)])
12
+ }
13
+
14
+ let(:left){
15
+ TupleType.new(heading)
16
+ }
17
+
18
+ context 'when right is not a tuple type' do
19
+ let(:right){
20
+ stringType
21
+ }
22
+
23
+ it 'builds a union type' do
24
+ expect(subject).to be_a(UnionType)
25
+ expect(subject.candidates).to eql([left, right])
26
+ end
27
+ end
28
+
29
+ context 'when right is an equal tuple type' do
30
+ let(:h2){
31
+ Heading.new([Attribute.new(:c, intType),
32
+ Attribute.new(:d, stringType)])
33
+ }
34
+ let(:right) {
35
+ TupleType.new(h2)
36
+ }
37
+
38
+ it 'builds a union type' do
39
+ expect(subject).to be_a(UnionType)
40
+ expect(subject.candidates).to eql([left, right])
41
+ end
42
+ end
43
+
44
+ context 'when right is a completely different tuple type' do
45
+ let(:right){
46
+ TupleType.new(heading)
47
+ }
48
+
49
+ it 'keeps left' do
50
+ expect(subject).to be(left)
51
+ end
52
+ end
53
+
54
+ context 'when right is an non-equal tuple type but compatible with TupleType' do
55
+ let(:heading2){
56
+ Heading.new([Attribute.new(:a, nilType),
57
+ Attribute.new(:b, stringType)])
58
+ }
59
+
60
+ let(:right){
61
+ TupleType.new(heading2)
62
+ }
63
+
64
+ it 'builds the suppremum as expected' do
65
+ expect(subject).to be_a(TupleType)
66
+ expect(subject.heading[:a].type).to eql(UnionType.new [intType,nilType])
67
+ expect(subject.heading[:b].type).to eql(stringType)
68
+ end
69
+ end
70
+
71
+ context 'when right is an non-equal tuple type yielding a MultiTupleType' do
72
+ let(:heading2){
73
+ Heading.new([Attribute.new(:c, nilType),
74
+ Attribute.new(:b, stringType)])
75
+ }
76
+
77
+ let(:right){
78
+ TupleType.new(heading2)
79
+ }
80
+
81
+ it 'builds the suppremum as expected' do
82
+ expect(subject).to be_a(MultiTupleType)
83
+ expect(subject.heading[:a].type).to eql(intType)
84
+ expect(subject.heading[:a].required).to eql(false)
85
+ expect(subject.heading[:b].type).to eql(stringType)
86
+ expect(subject.heading[:b].required).to eql(true)
87
+ expect(subject.heading[:c].type).to eql(nilType)
88
+ expect(subject.heading[:c].required).to eql(false)
89
+ end
90
+ end
91
+
92
+ context 'when right is an non-equal tuple type yielding a MultiTupleType II' do
93
+ let(:heading2){
94
+ Heading.new([Attribute.new(:a, nilType, false),
95
+ Attribute.new(:b, stringType)])
96
+ }
97
+
98
+ let(:right){
99
+ MultiTupleType.new(heading2)
100
+ }
101
+
102
+ it 'builds the suppremum as expected' do
103
+ expect(subject).to be_a(MultiTupleType)
104
+ expect(subject.heading[:a].type).to eql(UnionType.new [intType,nilType])
105
+ expect(subject.heading[:a].required).to eql(false)
106
+ expect(subject.heading[:b].type).to eql(stringType)
107
+ end
108
+
109
+ it 'works the other way round too' do
110
+ subject = right.suppremum(left)
111
+ expect(subject).to be_a(MultiTupleType)
112
+ expect(subject.heading[:a].type).to eql(UnionType.new [intType,nilType])
113
+ expect(subject.heading[:a].required).to eql(false)
114
+ expect(subject.heading[:b].type).to eql(stringType)
115
+ end
116
+ end
117
+
118
+ end
119
+ end
@@ -0,0 +1,51 @@
1
+ require 'spec_helper'
2
+ module Finitio
3
+ describe UnionType, "suppremum" do
4
+
5
+ subject{
6
+ left.suppremum(right)
7
+ }
8
+
9
+ let(:left){
10
+ UnionType.new([intType, nilType])
11
+ }
12
+
13
+ context 'when right is not a union type' do
14
+ let(:right){
15
+ stringType
16
+ }
17
+
18
+ it 'works' do
19
+ expect(subject).to be_a(UnionType)
20
+ expect(subject.candidates).to eql(left.candidates + [right])
21
+ end
22
+ end
23
+
24
+ context 'when right is a union type' do
25
+ let(:right){
26
+ UnionType.new([stringType, nilType])
27
+ }
28
+
29
+ it 'works' do
30
+ expect(subject).to be_a(UnionType)
31
+ expect(subject.candidates).to eql([intType, nilType, stringType])
32
+ end
33
+ end
34
+
35
+ context 'when union type is on the right' do
36
+ let(:left){
37
+ stringType
38
+ }
39
+
40
+ let(:right){
41
+ UnionType.new([intType, nilType])
42
+ }
43
+
44
+ it 'works' do
45
+ expect(subject).to be_a(UnionType)
46
+ expect(subject.candidates).to eql([intType, nilType, stringType])
47
+ end
48
+ end
49
+
50
+ end
51
+ end
@@ -18,7 +18,7 @@ namespace :test do
18
18
  require 'cucumber/rake/task'
19
19
 
20
20
  Cucumber::Rake::Task.new(:cucumber) do |t|
21
- t.cucumber_opts = "features --format pretty"
21
+ t.cucumber_opts = "features --format progress"
22
22
  end
23
23
  rescue LoadError => ex
24
24
  task :unit do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: finitio
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0.pre.rc4
4
+ version: 0.10.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bernard Lambeau
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-02-27 00:00:00.000000000 Z
11
+ date: 2021-01-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: citrus
@@ -16,7 +16,7 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '2.4'
19
+ version: '3.0'
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
22
  version: '4.0'
@@ -26,10 +26,114 @@ dependencies:
26
26
  requirements:
27
27
  - - ">="
28
28
  - !ruby/object:Gem::Version
29
- version: '2.4'
29
+ version: '3.0'
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
32
  version: '4.0'
33
+ - !ruby/object:Gem::Dependency
34
+ name: rake
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '13.0'
40
+ type: :development
41
+ prerelease: false
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: '13.0'
47
+ - !ruby/object:Gem::Dependency
48
+ name: rspec
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: '3.0'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: '3.0'
61
+ - !ruby/object:Gem::Dependency
62
+ name: cucumber
63
+ requirement: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - "~>"
66
+ - !ruby/object:Gem::Version
67
+ version: '4.1'
68
+ type: :development
69
+ prerelease: false
70
+ version_requirements: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - "~>"
73
+ - !ruby/object:Gem::Version
74
+ version: '4.1'
75
+ - !ruby/object:Gem::Dependency
76
+ name: path
77
+ requirement: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - ">="
80
+ - !ruby/object:Gem::Version
81
+ version: '2.0'
82
+ - - "<"
83
+ - !ruby/object:Gem::Version
84
+ version: '3.0'
85
+ type: :development
86
+ prerelease: false
87
+ version_requirements: !ruby/object:Gem::Requirement
88
+ requirements:
89
+ - - ">="
90
+ - !ruby/object:Gem::Version
91
+ version: '2.0'
92
+ - - "<"
93
+ - !ruby/object:Gem::Version
94
+ version: '3.0'
95
+ - !ruby/object:Gem::Dependency
96
+ name: awesome_print
97
+ requirement: !ruby/object:Gem::Requirement
98
+ requirements:
99
+ - - "~>"
100
+ - !ruby/object:Gem::Version
101
+ version: '1.8'
102
+ type: :development
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ requirements:
106
+ - - "~>"
107
+ - !ruby/object:Gem::Version
108
+ version: '1.8'
109
+ - !ruby/object:Gem::Dependency
110
+ name: coveralls
111
+ requirement: !ruby/object:Gem::Requirement
112
+ requirements:
113
+ - - "~>"
114
+ - !ruby/object:Gem::Version
115
+ version: '0.8'
116
+ type: :development
117
+ prerelease: false
118
+ version_requirements: !ruby/object:Gem::Requirement
119
+ requirements:
120
+ - - "~>"
121
+ - !ruby/object:Gem::Version
122
+ version: '0.8'
123
+ - !ruby/object:Gem::Dependency
124
+ name: multi_json
125
+ requirement: !ruby/object:Gem::Requirement
126
+ requirements:
127
+ - - "~>"
128
+ - !ruby/object:Gem::Version
129
+ version: '1.15'
130
+ type: :development
131
+ prerelease: false
132
+ version_requirements: !ruby/object:Gem::Requirement
133
+ requirements:
134
+ - - "~>"
135
+ - !ruby/object:Gem::Version
136
+ version: '1.15'
33
137
  description: Implements the Finitio information language in Ruby.
34
138
  email:
35
139
  - blambeau@gmail.com
@@ -50,6 +154,33 @@ files:
50
154
  - finitio.gemspec
51
155
  - lib/finitio.rb
52
156
  - lib/finitio/errors.rb
157
+ - lib/finitio/generation.rb
158
+ - lib/finitio/generation/ad_type.rb
159
+ - lib/finitio/generation/alias_type.rb
160
+ - lib/finitio/generation/any_type.rb
161
+ - lib/finitio/generation/builtin_type.rb
162
+ - lib/finitio/generation/hash_based_type.rb
163
+ - lib/finitio/generation/heuristic.rb
164
+ - lib/finitio/generation/heuristic/constant.rb
165
+ - lib/finitio/generation/heuristic/random.rb
166
+ - lib/finitio/generation/rel_based_type.rb
167
+ - lib/finitio/generation/seq_type.rb
168
+ - lib/finitio/generation/set_type.rb
169
+ - lib/finitio/generation/sub_type.rb
170
+ - lib/finitio/generation/union_type.rb
171
+ - lib/finitio/inference.rb
172
+ - lib/finitio/json_schema.rb
173
+ - lib/finitio/json_schema/ad_type.rb
174
+ - lib/finitio/json_schema/alias_type.rb
175
+ - lib/finitio/json_schema/any_type.rb
176
+ - lib/finitio/json_schema/builtin_type.rb
177
+ - lib/finitio/json_schema/hash_based_type.rb
178
+ - lib/finitio/json_schema/rel_based_type.rb
179
+ - lib/finitio/json_schema/seq_type.rb
180
+ - lib/finitio/json_schema/set_type.rb
181
+ - lib/finitio/json_schema/struct_type.rb
182
+ - lib/finitio/json_schema/sub_type.rb
183
+ - lib/finitio/json_schema/union_type.rb
53
184
  - lib/finitio/stdlib/finitio/data.fio
54
185
  - lib/finitio/support.rb
55
186
  - lib/finitio/support/attribute.rb
@@ -57,6 +188,7 @@ files:
57
188
  - lib/finitio/support/constraint.rb
58
189
  - lib/finitio/support/contract.rb
59
190
  - lib/finitio/support/dress_helper.rb
191
+ - lib/finitio/support/fetch_scope.rb
60
192
  - lib/finitio/support/heading.rb
61
193
  - lib/finitio/support/metadata.rb
62
194
  - lib/finitio/support/proc_with_code.rb
@@ -100,6 +232,8 @@ files:
100
232
  - lib/finitio/syntax/type/external_pair.rb
101
233
  - lib/finitio/syntax/type/heading.rb
102
234
  - lib/finitio/syntax/type/heading_extra.rb
235
+ - lib/finitio/syntax/type/high_order_type_instantiation.rb
236
+ - lib/finitio/syntax/type/high_order_vars.rb
103
237
  - lib/finitio/syntax/type/inline_pair.rb
104
238
  - lib/finitio/syntax/type/lambda_expr.rb
105
239
  - lib/finitio/syntax/type/main_type.rb
@@ -126,6 +260,7 @@ files:
126
260
  - lib/finitio/type/collection_type.rb
127
261
  - lib/finitio/type/hash_based_type.rb
128
262
  - lib/finitio/type/heading_based_type.rb
263
+ - lib/finitio/type/high_order_type.rb
129
264
  - lib/finitio/type/multi_relation_type.rb
130
265
  - lib/finitio/type/multi_tuple_type.rb
131
266
  - lib/finitio/type/proxy_type.rb
@@ -154,17 +289,35 @@ files:
154
289
  - spec/finitio/test_parse.rb
155
290
  - spec/finitio/test_stdlib_memoization.rb
156
291
  - spec/finitio/test_system.rb
157
- - spec/finitio/with-duplicates.fio
292
+ - spec/generation/test_generation.rb
158
293
  - spec/heading/test_allow_extra.rb
159
294
  - spec/heading/test_each.rb
160
295
  - spec/heading/test_equality.rb
161
296
  - spec/heading/test_hash.rb
162
297
  - spec/heading/test_hash_get.rb
163
298
  - spec/heading/test_initialize.rb
299
+ - spec/heading/test_looks_similar.rb
164
300
  - spec/heading/test_multi.rb
165
301
  - spec/heading/test_size.rb
302
+ - spec/heading/test_suppremum.rb
166
303
  - spec/heading/test_to_name.rb
304
+ - spec/inference/test_inference.rb
305
+ - spec/json_schema/test_ad_type.rb
306
+ - spec/json_schema/test_alias_type.rb
307
+ - spec/json_schema/test_any_type.rb
308
+ - spec/json_schema/test_builtin_type.rb
309
+ - spec/json_schema/test_multi_relation_type.rb
310
+ - spec/json_schema/test_multi_tuple_type.rb
311
+ - spec/json_schema/test_relation_type.rb
312
+ - spec/json_schema/test_seq_type.rb
313
+ - spec/json_schema/test_set_type.rb
314
+ - spec/json_schema/test_struct_type.rb
315
+ - spec/json_schema/test_sub_type.rb
316
+ - spec/json_schema/test_tuple_type.rb
317
+ - spec/json_schema/test_union_type.rb
318
+ - spec/regression/test_heading_extra_are_proxy_resolved.rb
167
319
  - spec/spec_helper.rb
320
+ - spec/support/test_compare_attrs.rb
168
321
  - spec/support/test_proc_with_code.rb
169
322
  - spec/syntax/expr/test_free_variables.rb
170
323
  - spec/syntax/expr/test_to_proc_source.rb
@@ -196,7 +349,10 @@ files:
196
349
  - spec/syntax/nodes/test_unnamed_constraint.rb
197
350
  - spec/syntax/test_compile.rb
198
351
  - spec/syntax/test_compile_type.rb
352
+ - spec/system/fixtures/system.fio
353
+ - spec/system/fixtures/with-duplicates.fio
199
354
  - spec/system/test_add_type.rb
355
+ - spec/system/test_check_and_warn.rb
200
356
  - spec/system/test_dsl.rb
201
357
  - spec/system/test_dup.rb
202
358
  - spec/system/test_fetch.rb
@@ -235,26 +391,27 @@ files:
235
391
  - spec/type/multi_tuple_type/test_include.rb
236
392
  - spec/type/multi_tuple_type/test_initialize.rb
237
393
  - spec/type/multi_tuple_type/test_name.rb
238
- - spec/type/proxy_type/test_delegation.rb
239
- - spec/type/proxy_type/test_resolve.rb
240
394
  - spec/type/relation_type/test_default_name.rb
241
395
  - spec/type/relation_type/test_dress.rb
242
396
  - spec/type/relation_type/test_equality.rb
243
397
  - spec/type/relation_type/test_include.rb
244
398
  - spec/type/relation_type/test_initialize.rb
245
399
  - spec/type/relation_type/test_name.rb
400
+ - spec/type/relation_type/test_suppremum.rb
246
401
  - spec/type/seq_type/test_default_name.rb
247
402
  - spec/type/seq_type/test_dress.rb
248
403
  - spec/type/seq_type/test_equality.rb
249
404
  - spec/type/seq_type/test_include.rb
250
405
  - spec/type/seq_type/test_initialize.rb
251
406
  - spec/type/seq_type/test_name.rb
407
+ - spec/type/seq_type/test_suppremum.rb
252
408
  - spec/type/set_type/test_default_name.rb
253
409
  - spec/type/set_type/test_dress.rb
254
410
  - spec/type/set_type/test_equality.rb
255
411
  - spec/type/set_type/test_include.rb
256
412
  - spec/type/set_type/test_initialize.rb
257
413
  - spec/type/set_type/test_name.rb
414
+ - spec/type/set_type/test_suppremum.rb
258
415
  - spec/type/struct_type/test_default_name.rb
259
416
  - spec/type/struct_type/test_dress.rb
260
417
  - spec/type/struct_type/test_equality.rb
@@ -267,18 +424,22 @@ files:
267
424
  - spec/type/sub_type/test_include.rb
268
425
  - spec/type/sub_type/test_initialize.rb
269
426
  - spec/type/sub_type/test_name.rb
427
+ - spec/type/test_suppremum.rb
428
+ - spec/type/test_unconstrained.rb
270
429
  - spec/type/tuple_type/test_default_name.rb
271
430
  - spec/type/tuple_type/test_dress.rb
272
431
  - spec/type/tuple_type/test_equality.rb
273
432
  - spec/type/tuple_type/test_include.rb
274
433
  - spec/type/tuple_type/test_initialize.rb
275
434
  - spec/type/tuple_type/test_name.rb
435
+ - spec/type/tuple_type/test_suppremum.rb
276
436
  - spec/type/union_type/test_default_name.rb
277
437
  - spec/type/union_type/test_dress.rb
278
438
  - spec/type/union_type/test_equality.rb
279
439
  - spec/type/union_type/test_include.rb
280
440
  - spec/type/union_type/test_initialize.rb
281
441
  - spec/type/union_type/test_name.rb
442
+ - spec/type/union_type/test_suppremum.rb
282
443
  - spec/type_factory/dsl/test_adt.rb
283
444
  - spec/type_factory/dsl/test_any.rb
284
445
  - spec/type_factory/dsl/test_attribute.rb
@@ -304,7 +465,7 @@ files:
304
465
  homepage: https://github.com/blambeau/finitio
305
466
  licenses: []
306
467
  metadata: {}
307
- post_install_message:
468
+ post_install_message:
308
469
  rdoc_options: []
309
470
  require_paths:
310
471
  - lib
@@ -315,13 +476,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
315
476
  version: '0'
316
477
  required_rubygems_version: !ruby/object:Gem::Requirement
317
478
  requirements:
318
- - - ">"
479
+ - - ">="
319
480
  - !ruby/object:Gem::Version
320
- version: 1.3.1
481
+ version: '0'
321
482
  requirements: []
322
- rubyforge_project:
323
- rubygems_version: 2.5.2
324
- signing_key:
483
+ rubygems_version: 3.1.4
484
+ signing_key:
325
485
  specification_version: 4
326
486
  summary: Finitio - in Ruby
327
487
  test_files:
@@ -352,18 +512,32 @@ test_files:
352
512
  - spec/attribute/test_fetch_on.rb
353
513
  - spec/attribute/test_optional.rb
354
514
  - spec/attribute/test_required.rb
515
+ - spec/json_schema/test_tuple_type.rb
516
+ - spec/json_schema/test_set_type.rb
517
+ - spec/json_schema/test_union_type.rb
518
+ - spec/json_schema/test_multi_relation_type.rb
519
+ - spec/json_schema/test_builtin_type.rb
520
+ - spec/json_schema/test_alias_type.rb
521
+ - spec/json_schema/test_multi_tuple_type.rb
522
+ - spec/json_schema/test_struct_type.rb
523
+ - spec/json_schema/test_sub_type.rb
524
+ - spec/json_schema/test_any_type.rb
525
+ - spec/json_schema/test_ad_type.rb
526
+ - spec/json_schema/test_relation_type.rb
527
+ - spec/json_schema/test_seq_type.rb
355
528
  - spec/heading/test_hash_get.rb
356
529
  - spec/heading/test_initialize.rb
357
530
  - spec/heading/test_equality.rb
358
531
  - spec/heading/test_to_name.rb
359
532
  - spec/heading/test_multi.rb
360
533
  - spec/heading/test_hash.rb
534
+ - spec/heading/test_suppremum.rb
361
535
  - spec/heading/test_allow_extra.rb
362
536
  - spec/heading/test_size.rb
537
+ - spec/heading/test_looks_similar.rb
363
538
  - spec/heading/test_each.rb
364
539
  - spec/test_finitio.rb
365
540
  - spec/finitio/test_ast.rb
366
- - spec/finitio/with-duplicates.fio
367
541
  - spec/finitio/system.fio
368
542
  - spec/finitio/test_system.rb
369
543
  - spec/finitio/test_parse.rb
@@ -374,6 +548,9 @@ test_files:
374
548
  - spec/system/test_dup.rb
375
549
  - spec/system/test_add_type.rb
376
550
  - spec/system/test_dsl.rb
551
+ - spec/system/fixtures/with-duplicates.fio
552
+ - spec/system/fixtures/system.fio
553
+ - spec/system/test_check_and_warn.rb
377
554
  - spec/type/multi_relation_type/test_name.rb
378
555
  - spec/type/multi_relation_type/test_initialize.rb
379
556
  - spec/type/multi_relation_type/test_equality.rb
@@ -386,8 +563,8 @@ test_files:
386
563
  - spec/type/sub_type/test_include.rb
387
564
  - spec/type/sub_type/test_default_name.rb
388
565
  - spec/type/sub_type/test_dress.rb
389
- - spec/type/proxy_type/test_resolve.rb
390
- - spec/type/proxy_type/test_delegation.rb
566
+ - spec/type/test_unconstrained.rb
567
+ - spec/type/test_suppremum.rb
391
568
  - spec/type/ad_type/test_name.rb
392
569
  - spec/type/ad_type/test_initialize.rb
393
570
  - spec/type/ad_type/test_include.rb
@@ -402,12 +579,14 @@ test_files:
402
579
  - spec/type/set_type/test_name.rb
403
580
  - spec/type/set_type/test_initialize.rb
404
581
  - spec/type/set_type/test_equality.rb
582
+ - spec/type/set_type/test_suppremum.rb
405
583
  - spec/type/set_type/test_include.rb
406
584
  - spec/type/set_type/test_default_name.rb
407
585
  - spec/type/set_type/test_dress.rb
408
586
  - spec/type/relation_type/test_name.rb
409
587
  - spec/type/relation_type/test_initialize.rb
410
588
  - spec/type/relation_type/test_equality.rb
589
+ - spec/type/relation_type/test_suppremum.rb
411
590
  - spec/type/relation_type/test_include.rb
412
591
  - spec/type/relation_type/test_default_name.rb
413
592
  - spec/type/relation_type/test_dress.rb
@@ -426,12 +605,14 @@ test_files:
426
605
  - spec/type/union_type/test_name.rb
427
606
  - spec/type/union_type/test_initialize.rb
428
607
  - spec/type/union_type/test_equality.rb
608
+ - spec/type/union_type/test_suppremum.rb
429
609
  - spec/type/union_type/test_include.rb
430
610
  - spec/type/union_type/test_default_name.rb
431
611
  - spec/type/union_type/test_dress.rb
432
612
  - spec/type/tuple_type/test_name.rb
433
613
  - spec/type/tuple_type/test_initialize.rb
434
614
  - spec/type/tuple_type/test_equality.rb
615
+ - spec/type/tuple_type/test_suppremum.rb
435
616
  - spec/type/tuple_type/test_include.rb
436
617
  - spec/type/tuple_type/test_default_name.rb
437
618
  - spec/type/tuple_type/test_dress.rb
@@ -441,6 +622,7 @@ test_files:
441
622
  - spec/type/seq_type/test_name.rb
442
623
  - spec/type/seq_type/test_initialize.rb
443
624
  - spec/type/seq_type/test_equality.rb
625
+ - spec/type/seq_type/test_suppremum.rb
444
626
  - spec/type/seq_type/test_include.rb
445
627
  - spec/type/seq_type/test_default_name.rb
446
628
  - spec/type/seq_type/test_dress.rb
@@ -450,7 +632,10 @@ test_files:
450
632
  - spec/type/multi_tuple_type/test_include.rb
451
633
  - spec/type/multi_tuple_type/test_default_name.rb
452
634
  - spec/type/multi_tuple_type/test_dress.rb
635
+ - spec/support/test_compare_attrs.rb
453
636
  - spec/support/test_proc_with_code.rb
637
+ - spec/inference/test_inference.rb
638
+ - spec/regression/test_heading_extra_are_proxy_resolved.rb
454
639
  - spec/syntax/nodes/test_tuple_type.rb
455
640
  - spec/syntax/nodes/test_set_type.rb
456
641
  - spec/syntax/nodes/test_union_type.rb
@@ -481,6 +666,7 @@ test_files:
481
666
  - spec/syntax/expr/test_free_variables.rb
482
667
  - spec/syntax/test_compile.rb
483
668
  - spec/syntax/test_compile_type.rb
669
+ - spec/generation/test_generation.rb
484
670
  - spec/constraint/test_name.rb
485
671
  - spec/constraint/test_equality.rb
486
672
  - spec/constraint/test_anonymous.rb