@@ -363,21 +363,48 @@ def test_accessor(setup_pandas_accessors):
363363 )
364364
365365 update_sources = {
366+ # callables single source
366367 "vv" : ("variable" , lambda x : x .replace ("v" , "vv" )),
367368 "unit" : ("unit" , lambda x : x .replace ("kg" , "g" ).replace ("m" , "km" )),
369+ # callables multi source
370+ "y-label" : (("variable" , "unit" ), lambda x : f"{ x [0 ]} ({ x [1 ]} )" ),
371+ # dict
372+ "title" : ("scenario" , {"sa" : "Scenario A" , "sb" : "Delta" }),
373+ # pd.Series
374+ "Source" : (
375+ ("scenario" , "variable" ),
376+ pd .Series (
377+ ["Internal" , "External" , "External" ],
378+ index = pd .MultiIndex .from_tuples (
379+ [("sa" , "va" ), ("sb" , "vb" ), ("sa" , "vb" )],
380+ names = ["scenario" , "variable" ],
381+ ),
382+ ),
383+ ),
368384 }
369385
370386 exp = pd .DataFrame (
371387 start .values ,
372388 columns = start .columns ,
373389 index = pd .MultiIndex .from_tuples (
374390 [
375- ("sa" , "va" , "g" , 0 , "vva" ),
376- ("sb" , "vb" , "km" , - 1 , "vvb" ),
377- ("sa" , "va" , "g" , - 2 , "vva" ),
378- ("sa" , "vb" , "g" , 2 , "vvb" ),
391+ # Updates not done sequentially
392+ # hence y-label uses units from original data
393+ ("sa" , "va" , "g" , 0 , "vva" , "va (kg)" , "Scenario A" , "Internal" ),
394+ ("sb" , "vb" , "km" , - 1 , "vvb" , "vb (m)" , "Delta" , "External" ),
395+ ("sa" , "va" , "g" , - 2 , "vva" , "va (kg)" , "Scenario A" , "Internal" ),
396+ ("sa" , "vb" , "g" , 2 , "vvb" , "vb (kg)" , "Scenario A" , "External" ),
397+ ],
398+ names = [
399+ "scenario" ,
400+ "variable" ,
401+ "unit" ,
402+ "run_id" ,
403+ "vv" ,
404+ "y-label" ,
405+ "title" ,
406+ "Source" ,
379407 ],
380- names = ["scenario" , "variable" , "unit" , "run_id" , "vv" ],
381408 ),
382409 )
383410
0 commit comments