File tree Expand file tree Collapse file tree 3 files changed +35
-15
lines changed Expand file tree Collapse file tree 3 files changed +35
-15
lines changed Original file line number Diff line number Diff line change @@ -1134,7 +1134,7 @@ function Base.read!(io::IO, model::Model)
1134
1134
# TODO : split into hard fields based on column indices.
1135
1135
items = line_to_items (line)
1136
1136
if header == HEADER_NAME
1137
- parse_name_line (data, items )
1137
+ parse_name_line (data, line )
1138
1138
elseif header == HEADER_OBJSENSE
1139
1139
@assert length (items) == 1
1140
1140
sense = uppercase (items[1 ])
@@ -1314,15 +1314,12 @@ end
1314
1314
# NAME
1315
1315
# ==============================================================================
1316
1316
1317
- function parse_name_line (data:: TempMPSModel , items:: Vector{String} )
1318
- if ! (1 <= length (items) <= 2 ) || uppercase (items[1 ]) != " NAME"
1319
- error (" Malformed NAME line: $(join (items, " " )) " )
1320
- end
1321
- if length (items) == 2
1322
- data. name = items[2 ]
1323
- elseif length (items) == 1
1324
- data. name = " "
1317
+ function parse_name_line (data:: TempMPSModel , line:: String )
1318
+ m = match (r" ^\s *NAME(.*)" i , line)
1319
+ if m === nothing
1320
+ error (" Malformed NAME line: " , line)
1325
1321
end
1322
+ data. name = strip (m[1 ])
1326
1323
return
1327
1324
end
1328
1325
Original file line number Diff line number Diff line change @@ -1036,6 +1036,35 @@ function test_objsense_next_line()
1036
1036
return
1037
1037
end
1038
1038
1039
+ function test_parse_name_line ()
1040
+ data = MPS. TempMPSModel ()
1041
+ for (line, name) in (
1042
+ " NAME" => " " ,
1043
+ " NAME " => " " ,
1044
+ " NAME \n " => " " ,
1045
+ " NAmE" => " " ,
1046
+ " NaME " => " " ,
1047
+ " name \n " => " " ,
1048
+ " name abc" => " abc" ,
1049
+ " NAME PILOTNOV (PILOTS) INTEGRATED MODEL -- NOVEMBER 1979" => " PILOTNOV (PILOTS) INTEGRATED MODEL -- NOVEMBER 1979" ,
1050
+ " Na d" => nothing ,
1051
+ " the name" => nothing ,
1052
+ " NAME" => " " ,
1053
+ " NAME foo" => " foo" ,
1054
+ " " => nothing ,
1055
+ )
1056
+ data. name = " _"
1057
+ if name === nothing
1058
+ err = ErrorException (" Malformed NAME line: $line " )
1059
+ @test_throws err MPS. parse_name_line (data, line)
1060
+ else
1061
+ MPS. parse_name_line (data, line)
1062
+ @test data. name == name
1063
+ end
1064
+ end
1065
+ return
1066
+ end
1067
+
1039
1068
function runtests ()
1040
1069
for name in names (@__MODULE__ , all = true )
1041
1070
if startswith (" $(name) " , " test_" )
Load Diff This file was deleted.
You can’t perform that action at this time.
0 commit comments