@@ -17,7 +17,7 @@ const IS = InfrastructureSystems
1717 StepRange (
1818 DateTime (" 2024-01-01T00:00:00" ),
1919 Millisecond (3600000 ),
20- DateTime (" 2024-01-01T01 :00:00" ),
20+ DateTime (" 2024-01-01T03 :00:00" ),
2121 )
2222 timestamp_vec = collect (timestamp_range)
2323 data = IS. SystemData ()
@@ -27,16 +27,16 @@ const IS = InfrastructureSystems
2727 @test IS. Optimization. convert_result_to_natural_units (MockVariable2)
2828 var_key1 = VariableKey (MockVariable, IS. TestComponent)
2929 var_key2 = VariableKey (MockVariable2, IS. TestComponent)
30- vals = [1.0 , 2.0 , 3.0 , 4.0 ]
30+ vals = [1.0 , 2.0 , 3.0 , 4.0 , 5.0 , 6.0 , 7.0 , 8.0 ]
3131 variable_values = Dict (
3232 var_key1 => DataFrame (
33- " time_index" => [1 , 2 , 1 , 2 ],
34- " name" => [" c1" , " c1" , " c2" , " c2" ],
33+ " time_index" => [1 , 2 , 3 , 4 , 1 , 2 , 3 , 4 ],
34+ " name" => [" c1" , " c1" , " c1 " , " c1 " , " c2 " , " c2 " , " c2" , " c2" ],
3535 " value" => vals,
3636 ),
3737 var_key2 => DataFrame (
38- " time_index" => [1 , 2 , 1 , 2 ],
39- " name" => [" c1" , " c1" , " c2" , " c2" ],
38+ " time_index" => [1 , 2 , 3 , 4 , 1 , 2 , 3 , 4 ],
39+ " name" => [" c1" , " c1" , " c1 " , " c1 " , " c2 " , " c2 " , " c2" , " c2" ],
4040 " value" => vals,
4141 ),
4242 )
@@ -49,13 +49,13 @@ const IS = InfrastructureSystems
4949 # Expression only 1 time-step
5050 expression_values = Dict (
5151 exp_key1 => DataFrame (
52- " time_index" => [1 , 2 , 1 , 2 ],
53- " name" => [" c1" , " c1" , " c2" , " c2" ],
52+ " time_index" => [1 , 2 , 3 , 4 , 1 , 2 , 3 , 4 ],
53+ " name" => [" c1" , " c1" , " c1 " , " c1 " , " c2 " , " c2 " , " c2" , " c2" ],
5454 " value" => vals,
5555 ),
5656 exp_key2 => DataFrame (
57- " time_index" => [1 , 2 , 1 , 2 ],
58- " custom_name" => [" c1" , " c1" , " c2" , " c2" ],
57+ " time_index" => [1 , 2 , 3 , 4 , 1 , 2 , 3 , 4 ],
58+ " custom_name" => [" c1" , " c1" , " c1 " , " c1 " , " c2 " , " c2 " , " c2" , " c2" ],
5959 " value" => vals,
6060 ),
6161 )
@@ -95,11 +95,9 @@ const IS = InfrastructureSystems
9595 mktempdir (),
9696 mktempdir (),
9797 )
98- timestamp_vec2 = deepcopy (timestamp_vec)
99- pop! (timestamp_vec2)
10098 opt_res3 = OptimizationProblemResults (
10199 base_power,
102- timestamp_vec2 ,
100+ [timestamp_vec[ 1 ]] ,
103101 data,
104102 uuid,
105103 aux_variable_values,
@@ -116,26 +114,45 @@ const IS = InfrastructureSystems
116114
117115 var_res = read_variable (opt_res1, var_key1)
118116 @test sort! (unique (var_res. DateTime)) == timestamp_vec
119- @test @rsubset (var_res, :name == " c1" )[! , :value ] == [1.0 , 2.0 ]
120- @test @rsubset (var_res, :name == " c2" )[! , :value ] == [3 .0 , 4 .0 ]
117+ @test @rsubset (var_res, :name == " c1" )[! , :value ] == [1.0 , 2.0 , 3.0 , 4.0 ]
118+ @test @rsubset (var_res, :name == " c2" )[! , :value ] == [5 .0 , 6.0 , 7.0 , 8 .0 ]
121119
122120 var_res = read_variable (opt_res1, var_key2)
123- @test @rsubset (var_res, :name == " c1" )[! , :value ] == [10.0 , 20.0 ]
124- @test @rsubset (var_res, :name == " c2" )[! , :value ] == [30.0 , 40.0 ]
121+ @test @rsubset (var_res, :name == " c1" )[! , :value ] == [10.0 , 20.0 , 30.0 , 40.0 ]
122+ @test @rsubset (var_res, :name == " c2" )[! , :value ] == [50.0 , 60.0 , 70.0 , 80.0 ]
123+
124+ var_res2 = read_variable (
125+ opt_res1,
126+ var_key1;
127+ start_time = DateTime (" 2024-01-01T01:00:00" ),
128+ len = 2 ,
129+ )
130+ @test @rsubset (var_res2, :name == " c1" )[! , :value ] == [2.0 , 3.0 ]
131+ @test @rsubset (var_res2, :name == " c2" )[! , :value ] == [6.0 , 7.0 ]
132+
133+ var_res2 = read_variable (
134+ opt_res1,
135+ var_key2;
136+ start_time = DateTime (" 2024-01-01T01:00:00" ),
137+ len = 2 ,
138+ )
139+ @test @rsubset (var_res2, :name == " c1" )[! , :value ] == [20.0 , 30.0 ]
140+ @test @rsubset (var_res2, :name == " c2" )[! , :value ] == [60.0 , 70.0 ]
125141
126142 var_res = read_variable (opt_res1, var_key2; table_format = IS. TableFormat. WIDE)
127- @test var_res[! , :c1 ] == [10.0 , 20.0 ]
128- @test var_res[! , :c2 ] == [30 .0 , 40 .0 ]
143+ @test var_res[! , :c1 ] == [10.0 , 20.0 , 30.0 , 40.0 ]
144+ @test var_res[! , :c2 ] == [50 .0 , 60.0 , 70.0 , 80 .0 ]
129145
130146 exp_res = read_expression (opt_res2, exp_key1)
131- @test @rsubset (exp_res, :name == " c1" )[! , :value ] == [1.0 , 2.0 ]
132- @test @rsubset (exp_res, :name == " c2" )[! , :value ] == [3 .0 , 4 .0 ]
147+ @test @rsubset (exp_res, :name == " c1" )[! , :value ] == [1.0 , 2.0 , 3.0 , 4.0 ]
148+ @test @rsubset (exp_res, :name == " c2" )[! , :value ] == [5 .0 , 6.0 , 7.0 , 8 .0 ]
133149 exp_res = read_expression (opt_res2, exp_key2)
134- @test @rsubset (exp_res, :custom_name == " c1" )[! , :value ] == [10.0 , 20.0 ]
135- @test @rsubset (exp_res, :custom_name == " c2" )[! , :value ] == [30 .0 , 40 .0 ]
150+ @test @rsubset (exp_res, :custom_name == " c1" )[! , :value ] == [10.0 , 20.0 , 30.0 , 40.0 ]
151+ @test @rsubset (exp_res, :custom_name == " c2" )[! , :value ] == [50 .0 , 60.0 , 70.0 , 80 .0 ]
136152
137153 @test IS. Optimization. get_resolution (opt_res1) == Millisecond (3600000 )
138154 @test IS. Optimization. get_resolution (opt_res2) == Millisecond (3600000 )
155+ @show IS. Optimization. get_resolution (opt_res3)
139156 @test isnothing (IS. Optimization. get_resolution (opt_res3))
140157end
141158
0 commit comments