mbt-gen 0.0.13 → 0.0.13.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.
- checksums.yaml +4 -4
- data/lib/mbt-gen.rb +15 -15
- data/lib/regexp-to-smtlib.rb +3 -3
- data/lib/solver-lib.rb +4 -4
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: a735505ef6ca3f6784860c7a01aa8abafdcfed996095718d94ed2caeee517c6a
|
|
4
|
+
data.tar.gz: 1822f83dfae7c22337e3754fe204955b02861a33f13558034a331092235d2c06
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 36a74c094e81a175ecc802dcd93f5da64660ff84712672752b95d139f17985945814b6ce84e7910f286c1b2f229cdb8a026b8c42049ef4779f5b36af9c47d465
|
|
7
|
+
data.tar.gz: 98307fab8e79ca0df312ff6a6375cc02c103c025e0bde84cc3fbf350e88b1062ffe93603bba0212344d51025ef839602d12e4389ea4f94f31a3c29208cc5f63b
|
data/lib/mbt-gen.rb
CHANGED
|
@@ -628,7 +628,7 @@ def translate_validation_rule_to_SMTLIB(rule, context_struct, prefix, config, op
|
|
|
628
628
|
raise RuntimeError.new("could not parse LIST_VALUE_FIRST_ELEMENT[...]: #{m.inspect} in validation rule #{rule_name}")
|
|
629
629
|
end
|
|
630
630
|
xpath = $1
|
|
631
|
-
index = Integer($2)
|
|
631
|
+
index = Integer($2, 10)
|
|
632
632
|
l = resolve_field_path(xpath, context_struct, prefix)
|
|
633
633
|
value_var_for_list(l, index)
|
|
634
634
|
end
|
|
@@ -724,7 +724,7 @@ def translate_validation_rule_to_SMTLIB(rule, context_struct, prefix, config, op
|
|
|
724
724
|
end
|
|
725
725
|
elsif fdef[:datatype] == :int then
|
|
726
726
|
terms = values.filter{|l| !l.start_with?("#")}.map do |val|
|
|
727
|
-
"(= #{value_var_for_field(fpath)} #{Integer(val)})"
|
|
727
|
+
"(= #{value_var_for_field(fpath)} #{Integer(val, 10)})"
|
|
728
728
|
end
|
|
729
729
|
else
|
|
730
730
|
raise RuntimeError.new("FIELD_IN_QUERY[] was applied to a field of datatype #{fdef[:datatype].inspect}. However, it can only be applied to fields of datatype string or int.")
|
|
@@ -793,7 +793,7 @@ def parse_field_value(fielddef, value)
|
|
|
793
793
|
datatype = fielddef[:datatype]
|
|
794
794
|
case datatype
|
|
795
795
|
when :int
|
|
796
|
-
return Integer(value)
|
|
796
|
+
return Integer(value, 10)
|
|
797
797
|
when :string
|
|
798
798
|
return solver_value_to_string(value)
|
|
799
799
|
when :enum
|
|
@@ -878,8 +878,8 @@ def add_max_struct_to_doc(progress, struct, doc, prefix = nil)
|
|
|
878
878
|
node = node.first
|
|
879
879
|
end
|
|
880
880
|
xpath_element = value[:xpath_element]
|
|
881
|
-
if Integer(value[:model_maxLength]) > 0 then
|
|
882
|
-
Integer(value[:model_maxLength]).times do |i|
|
|
881
|
+
if Integer(value[:model_maxLength], 10) > 0 then
|
|
882
|
+
Integer(value[:model_maxLength], 10).times do |i|
|
|
883
883
|
node.add_child("<#{xpath_element}>#{format_solver_value(value, pick_solver_value_for_field(value))}</#{xpath_element}>")
|
|
884
884
|
end
|
|
885
885
|
end
|
|
@@ -941,8 +941,8 @@ def add_model_struct_to_doc(progress, struct, doc, model, prefix = nil)
|
|
|
941
941
|
node = node.first
|
|
942
942
|
end
|
|
943
943
|
xpath_element = value[:xpath_element]
|
|
944
|
-
if Integer(model_value[:size]) > 0 then
|
|
945
|
-
model_value[:value].slice(0, Integer(model_value[:size])).each do |mvalue|
|
|
944
|
+
if Integer(model_value[:size], 10) > 0 then
|
|
945
|
+
model_value[:value].slice(0, Integer(model_value[:size], 10)).each do |mvalue|
|
|
946
946
|
node.add_child("<#{xpath_element}>#{solver_value_to_string(mvalue)}</#{xpath_element}>")
|
|
947
947
|
end
|
|
948
948
|
end
|
|
@@ -952,7 +952,7 @@ def add_model_struct_to_doc(progress, struct, doc, model, prefix = nil)
|
|
|
952
952
|
node = node.first
|
|
953
953
|
end
|
|
954
954
|
xpath_element = value[:xpath_element]
|
|
955
|
-
if Integer(model_value[:size]) > 0 then
|
|
955
|
+
if Integer(model_value[:size], 10) > 0 then
|
|
956
956
|
model_value[:size].times do |index|
|
|
957
957
|
cnode = node.add_child("<#{xpath_element}></#{xpath_element}>")
|
|
958
958
|
if cnode.is_a?(Nokogiri::XML::NodeSet) then
|
|
@@ -1328,7 +1328,7 @@ def z3ValueToRubyValue(value)
|
|
|
1328
1328
|
if value =~ /\"(.*)\"/ then # string
|
|
1329
1329
|
return $1
|
|
1330
1330
|
elsif value =~ /\d+/ then # int
|
|
1331
|
-
return Integer(value)
|
|
1331
|
+
return Integer(value, 10)
|
|
1332
1332
|
elsif value == "true"
|
|
1333
1333
|
return true
|
|
1334
1334
|
elsif value == "false" then
|
|
@@ -1596,7 +1596,7 @@ def default_parser_for_type(value_str, datatype)
|
|
|
1596
1596
|
if datatype == :string or datatype == :enum then
|
|
1597
1597
|
value_str
|
|
1598
1598
|
elsif datatype == :int then
|
|
1599
|
-
Integer(value_str)
|
|
1599
|
+
Integer(value_str, 10)
|
|
1600
1600
|
elsif datatype == :date then
|
|
1601
1601
|
Date.parse(value_str)
|
|
1602
1602
|
elsif datatype == :timestamp then
|
|
@@ -1819,12 +1819,12 @@ class CoreEnumerationAlgo
|
|
|
1819
1819
|
|
|
1820
1820
|
def self.parse_continuation_point(line)
|
|
1821
1821
|
split = line.split(";")
|
|
1822
|
-
doc_number = Integer(split[0])
|
|
1823
|
-
num_docs = Integer(split[1])
|
|
1822
|
+
doc_number = Integer(split[0], 10)
|
|
1823
|
+
num_docs = Integer(split[1], 10)
|
|
1824
1824
|
state = CoreEnumerationAlgo.parse_state(split[2])
|
|
1825
1825
|
assignment = CoreEnumerationAlgo.parse_assignment(split[3])
|
|
1826
1826
|
new_assignment = CoreEnumerationAlgo.parse_assignment(split[4])
|
|
1827
|
-
processessing_time = Integer(split[5])
|
|
1827
|
+
processessing_time = Integer(split[5], 10)
|
|
1828
1828
|
return [doc_number, num_docs, state, assignment, new_assignment, processessing_time]
|
|
1829
1829
|
end
|
|
1830
1830
|
|
|
@@ -2523,7 +2523,7 @@ def generate(message, argv, message_config_filename = nil)
|
|
|
2523
2523
|
elsif opt == "-generate-docs-from" then
|
|
2524
2524
|
options[:combination_source] = argv.shift
|
|
2525
2525
|
elsif opt == "-skip" then
|
|
2526
|
-
options[:skip] = Integer(argv.shift)
|
|
2526
|
+
options[:skip] = Integer(argv.shift, 10)
|
|
2527
2527
|
elsif opt == "-generate-docs-for-key" then
|
|
2528
2528
|
options[:docs_for_key] = argv.shift
|
|
2529
2529
|
elsif opt == "-count-docs-for-key" then
|
|
@@ -2531,7 +2531,7 @@ def generate(message, argv, message_config_filename = nil)
|
|
|
2531
2531
|
elsif opt == "-continue" then
|
|
2532
2532
|
options[:continue] = true
|
|
2533
2533
|
elsif opt == "-max-num-docs" then
|
|
2534
|
-
options[:max_num_docs] = Integer(argv.shift)
|
|
2534
|
+
options[:max_num_docs] = Integer(argv.shift, 10)
|
|
2535
2535
|
puts "flag -max-num-docs used. Will stop after generating #{options[:max_num_docs]} documents."
|
|
2536
2536
|
elsif opt == "-validate" then
|
|
2537
2537
|
if options.has_key?(:validate_files) then
|
data/lib/regexp-to-smtlib.rb
CHANGED
|
@@ -84,8 +84,8 @@ class Regexp_to_SMTLIB
|
|
|
84
84
|
return "(re.opt #{expr})"
|
|
85
85
|
elsif multiplicator =~ /\{(\d+),(\d+)\}/ then
|
|
86
86
|
begin
|
|
87
|
-
lower = Integer($1)
|
|
88
|
-
upper = Integer($2)
|
|
87
|
+
lower = Integer($1, 10)
|
|
88
|
+
upper = Integer($2, 10)
|
|
89
89
|
rescue TypeError => e
|
|
90
90
|
raise RuntimeError.new("cannot parse regexp (#{$1} or #{$2} is no Integer)")
|
|
91
91
|
end
|
|
@@ -117,4 +117,4 @@ class Regexp_to_SMTLIB
|
|
|
117
117
|
end
|
|
118
118
|
|
|
119
119
|
|
|
120
|
-
end
|
|
120
|
+
end
|
data/lib/solver-lib.rb
CHANGED
|
@@ -337,7 +337,7 @@ class SolverFactory
|
|
|
337
337
|
unless varname =~ /-index-(\d+)-value$/
|
|
338
338
|
raise RuntimeError.new("inconsistent model: xpath #{xpath} is a list value and hence its varname should end like -index-X-value, not #{varname.inspect}.")
|
|
339
339
|
end
|
|
340
|
-
index = Integer($1)
|
|
340
|
+
index = Integer($1, 10)
|
|
341
341
|
model[xpath][:xpath_element] = info[:xpath_element]
|
|
342
342
|
if model[xpath].has_key?(:value) then
|
|
343
343
|
val = convert_solver_value(info[:type], info[:datatype], value, xpath)
|
|
@@ -354,7 +354,7 @@ class SolverFactory
|
|
|
354
354
|
if model[xpath][:type] == :field then
|
|
355
355
|
model[xpath][:type] = :list
|
|
356
356
|
end
|
|
357
|
-
model[xpath][:size] = Integer(value)
|
|
357
|
+
model[xpath][:size] = Integer(value, 10)
|
|
358
358
|
elsif varname.start_with?("struct-") && varname.end_with?("-exists") then
|
|
359
359
|
unless model[xpath][:type] == :struct then
|
|
360
360
|
raise RuntimeError.new("inconsistent model: xpath #{xpath} should be a struct, not a #{model[xpath][:type]}.")
|
|
@@ -403,9 +403,9 @@ class SolverFactory
|
|
|
403
403
|
def convert_solver_value(type, datatype, value, xpath)
|
|
404
404
|
check_type(type, value, xpath)
|
|
405
405
|
if datatype == :date then
|
|
406
|
-
return (Time.at(0).to_date + Integer(value)).to_s
|
|
406
|
+
return (Time.at(0).to_date + Integer(value, 10)).to_s
|
|
407
407
|
elsif datatype == :timestamp then
|
|
408
|
-
return Time.at(Integer(value)).to_s
|
|
408
|
+
return Time.at(Integer(value, 10)).to_s
|
|
409
409
|
else
|
|
410
410
|
return value
|
|
411
411
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: mbt-gen
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.13
|
|
4
|
+
version: 0.0.13.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- FM-enthusiast
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-11-
|
|
11
|
+
date: 2026-11-05 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: nokogiri
|