@@ -573,14 +573,14 @@ function test_parse_S()
573
573
io,
574
574
"""
575
575
S0 8 zork
576
- 02
577
- 16
578
- 27
579
- 38
580
- 49
581
- 53
582
- 65
583
- 84
576
+ 0 2
577
+ 1 6
578
+ 2 7
579
+ 3 8
580
+ 4 9
581
+ 5 3
582
+ 6 5
583
+ 8 4
584
584
""" ,
585
585
)
586
586
seekstart (io)
@@ -592,6 +592,32 @@ function test_parse_S()
592
592
return
593
593
end
594
594
595
+ function test_parse_S_Float64 ()
596
+ model = NL. _CacheModel ()
597
+ io = IOBuffer ()
598
+ write (
599
+ io,
600
+ """
601
+ S4 8 zork
602
+ 0 2.0
603
+ 1 6.0
604
+ 2 7.0
605
+ 3 8.0
606
+ 4 9.0
607
+ 5 3.0
608
+ 6 5.0
609
+ 8 4.0
610
+ """ ,
611
+ )
612
+ seekstart (io)
613
+ @test_logs (
614
+ (:warn , " Skipping suffix: `S4 8 zork`" ),
615
+ NL. _parse_section (io, model),
616
+ )
617
+ @test eof (io)
618
+ return
619
+ end
620
+
595
621
function test_hs071 ()
596
622
model = NL. Model ()
597
623
open (joinpath (@__DIR__ , " data" , " hs071.nl" ), " r" ) do io
@@ -880,14 +906,14 @@ function test_binary_parse_O()
880
906
model. is_binary = true
881
907
NL. _resize_variables (model, 4 )
882
908
io = IOBuffer ()
883
- write (io, Char (' O' ), Int32 (0 ), Int32 (0 ))
884
- write (io, Char (' o' ), Int32 (2 ))
885
- write (io, Char (' v' ), Int32 (0 ))
886
- write (io, Char (' o' ), Int32 (2 ))
887
- write (io, Char (' v' ), Int32 (2 ))
888
- write (io, Char (' o' ), Int32 (2 ))
889
- write (io, Char (' v' ), Int32 (3 ))
890
- write (io, Char (' v' ), Int32 (1 ))
909
+ write (io, Cchar (' O' ), Int32 (0 ), Int32 (0 ))
910
+ write (io, Cchar (' o' ), Int32 (2 ))
911
+ write (io, Cchar (' v' ), Int32 (0 ))
912
+ write (io, Cchar (' o' ), Int32 (2 ))
913
+ write (io, Cchar (' v' ), Int32 (2 ))
914
+ write (io, Cchar (' o' ), Int32 (2 ))
915
+ write (io, Cchar (' v' ), Int32 (3 ))
916
+ write (io, Cchar (' v' ), Int32 (1 ))
891
917
seekstart (io)
892
918
NL. _parse_section (io, model)
893
919
@test eof (io)
@@ -902,7 +928,7 @@ function test_binary_parse_O_max()
902
928
model. is_binary = true
903
929
NL. _resize_variables (model, 4 )
904
930
io = IOBuffer ()
905
- write (io, Char (' O' ), Int32 (0 ), Int32 (1 ), Char (' v' ), Int32 (0 ))
931
+ write (io, Cchar (' O' ), Int32 (0 ), Int32 (1 ), Cchar (' v' ), Int32 (0 ))
906
932
seekstart (io)
907
933
NL. _parse_section (io, model)
908
934
@test eof (io)
@@ -917,7 +943,7 @@ function test_binary_parse_x()
917
943
model. is_binary = true
918
944
NL. _resize_variables (model, 5 )
919
945
io = IOBuffer ()
920
- write (io, Char (' x' ), Int32 (3 ))
946
+ write (io, Cchar (' x' ), Int32 (3 ))
921
947
write (io, Int32 (0 ), 1.1 )
922
948
write (io, Int32 (3 ), 2.2 )
923
949
write (io, Int32 (2 ), 3.3 )
@@ -932,7 +958,7 @@ function test_parse_d()
932
958
model = NL. _CacheModel ()
933
959
model. is_binary = true
934
960
io = IOBuffer ()
935
- write (io, Char (' d' ), Int32 (3 ))
961
+ write (io, Cchar (' d' ), Int32 (3 ))
936
962
write (io, Int32 (0 ), 1.1 )
937
963
write (io, Int32 (3 ), 2.2 )
938
964
write (io, Int32 (2 ), 3.3 )
@@ -947,7 +973,7 @@ function test_binary_parse_r()
947
973
model. is_binary = true
948
974
NL. _resize_constraints (model, 5 )
949
975
io = IOBuffer ()
950
- write (io, Char (' r' ))
976
+ write (io, Cchar (' r' ))
951
977
write (io, Cchar (' 1' ), 3.3 )
952
978
write (io, Cchar (' 3' ))
953
979
write (io, Cchar (' 0' ), 1.1 , 2.2 )
@@ -966,7 +992,7 @@ function test_binary_parse_b()
966
992
model. is_binary = true
967
993
NL. _resize_variables (model, 5 )
968
994
io = IOBuffer ()
969
- write (io, Char (' b' ))
995
+ write (io, Cchar (' b' ))
970
996
write (io, Cchar (' 1' ), 3.3 )
971
997
write (io, Cchar (' 3' ))
972
998
write (io, Cchar (' 0' ), 1.1 , 2.2 )
@@ -985,7 +1011,7 @@ function test_binary_parse_k()
985
1011
model. is_binary = true
986
1012
NL. _resize_variables (model, 3 )
987
1013
io = IOBuffer ()
988
- write (io, Char (' k' ), Int32 (2 ))
1014
+ write (io, Cchar (' k' ), Int32 (2 ))
989
1015
write (io, Int32 (2 ))
990
1016
write (io, Int32 (4 ))
991
1017
seekstart (io)
@@ -994,6 +1020,52 @@ function test_binary_parse_k()
994
1020
return
995
1021
end
996
1022
1023
+ function test_binary_parse_S ()
1024
+ model = NL. _CacheModel ()
1025
+ model. is_binary = true
1026
+ io = IOBuffer ()
1027
+ write (io, Cchar (' S' ), Int32 (0 ), Int32 (8 ))
1028
+ write (io, Int32 (4 ), Cchar (' z' ), Cchar (' o' ), Cchar (' r' ), Cchar (' k' ))
1029
+ write (io, Int32 (0 ), Int32 (2 ))
1030
+ write (io, Int32 (1 ), Int32 (6 ))
1031
+ write (io, Int32 (2 ), Int32 (7 ))
1032
+ write (io, Int32 (3 ), Int32 (8 ))
1033
+ write (io, Int32 (4 ), Int32 (9 ))
1034
+ write (io, Int32 (5 ), Int32 (3 ))
1035
+ write (io, Int32 (6 ), Int32 (5 ))
1036
+ write (io, Int32 (8 ), Int32 (4 ))
1037
+ seekstart (io)
1038
+ @test_logs (
1039
+ (:warn , " Skipping suffix: `S0 8 zork`" ),
1040
+ NL. _parse_section (io, model),
1041
+ )
1042
+ @test eof (io)
1043
+ return
1044
+ end
1045
+
1046
+ function test_binary_parse_S_Float64 ()
1047
+ model = NL. _CacheModel ()
1048
+ model. is_binary = true
1049
+ io = IOBuffer ()
1050
+ write (io, Cchar (' S' ), Int32 (4 ), Int32 (8 ))
1051
+ write (io, Int32 (4 ), Cchar (' z' ), Cchar (' o' ), Cchar (' r' ), Cchar (' k' ))
1052
+ write (io, Int32 (0 ), 2.1 )
1053
+ write (io, Int32 (1 ), 6.1 )
1054
+ write (io, Int32 (2 ), 7.1 )
1055
+ write (io, Int32 (3 ), 8.1 )
1056
+ write (io, Int32 (4 ), 9.1 )
1057
+ write (io, Int32 (5 ), 3.1 )
1058
+ write (io, Int32 (6 ), 5.1 )
1059
+ write (io, Int32 (8 ), 4.1 )
1060
+ seekstart (io)
1061
+ @test_logs (
1062
+ (:warn , " Skipping suffix: `S4 8 zork`" ),
1063
+ NL. _parse_section (io, model),
1064
+ )
1065
+ @test eof (io)
1066
+ return
1067
+ end
1068
+
997
1069
end
998
1070
999
1071
TestNonlinearRead. runtests ()
0 commit comments