@@ -607,3 +607,53 @@ def test_read_csv_agent_parameters(default_model):
607607 "share" : "agent_share_2" ,
608608 },
609609 ]
610+
611+
612+ def test_read_initial_market (default_model ):
613+ from muse .readers .csv import read_initial_market
614+ from muse .readers .toml import read_settings
615+
616+ settings = read_settings (default_model / "settings.toml" )
617+ path = default_model / "input" / "Projections.csv"
618+ data = read_initial_market (path , timeslices = settings .timeslices )
619+
620+ assert isinstance (data , xr .Dataset )
621+ assert set (data .dims ) == {"region" , "year" , "commodity" , "timeslice" }
622+ assert dict (data .dtypes ) == dict (
623+ prices = np .float64 ,
624+ exports = np .float64 ,
625+ imports = np .float64 ,
626+ static_trade = np .float64 ,
627+ )
628+ assert list (data .coords ["region" ].values ) == ["R1" ]
629+ assert list (data .coords ["year" ].values ) == list (range (2010 , 2105 , 5 ))
630+ assert list (data .coords ["commodity" ].values ) == [
631+ "electricity" ,
632+ "gas" ,
633+ "heat" ,
634+ "CO2f" ,
635+ "wind" ,
636+ ]
637+ assert (
638+ list (data .coords ["units_prices" ].values )
639+ == ["MUS$2010/PJ" ] * 3 + ["MUS$2010/kt" ] * 2
640+ )
641+ month_values = ["all-year" ] * 6
642+ day_values = ["all-week" ] * 6
643+ hour_values = [
644+ "night" ,
645+ "morning" ,
646+ "afternoon" ,
647+ "early-peak" ,
648+ "late-peak" ,
649+ "evening" ,
650+ ]
651+
652+ assert list (data .coords ["timeslice" ].values ) == list (
653+ zip (month_values , day_values , hour_values )
654+ )
655+ assert list (data .coords ["month" ]) == month_values
656+ assert list (data .coords ["day" ]) == day_values
657+ assert list (data .coords ["hour" ]) == hour_values
658+
659+ assert all (var .coords .equals (data .coords ) for var in data .data_vars .values ())
0 commit comments