コード例 #1
0
def test_apply_factors_single_parameter2():
    
    factors = {
        'January': 1.5,
        'February': 2.0,
        'March': 2.5,
        'April': 3.0,
        'May': 3.5,
        'June': 4.0,
        'July': 4.5,
        'August': 5.5,
        'September': 6.0,
        'October': 6.5,
        'November': 7.0,
        'December': 7.5
    }     

    dates = np.array([datetime.datetime(2014, 04, 01, 0, 0), 
                      datetime.datetime(2014, 04, 02, 0, 0), 
                      datetime.datetime(2014, 04, 03, 0, 0)
    ])
   
    updated_discharge_data = np.array([5, 9, 13])  
 
    expected = {
        "user": "******",
        "date_created": "4/9/2014 15:50:47 PM",
        "stationid": "012345",
        "column_names": ['Discharge (cfs)', 'Subsurface Flow (mm/day)', 'Impervious Flow (mm/day)', 'Infiltration Excess (mm/day)', 'Initial Abstracted Flow (mm/day)', 'Overland Flow (mm/day)', 'PET (mm/day)', 'AET(mm/day)', 'Average Soil Root zone (mm)', 'Average Soil Unsaturated Zone (mm)', 'Snow Pack (mm)', 'Precipitation (mm/day)', 'Storage Deficit (mm/day)', 'Return Flow (mm/day)'],
        "dates": dates,
        "parameters": [
            {"name": "Discharge (cfs)",
            "index": 0,
            "data": updated_discharge_data,
            "mean": np.mean(updated_discharge_data),
            "max": np.max(updated_discharge_data),
            "min": np.min(updated_discharge_data)
            }]
    }

    actual = watertxt.apply_factors(watertxt_data = fixture["sample_data_dict"], name = "Discharge", factors = factors, is_additive = True)    
    
    nose.tools.assert_equals(expected["parameters"][0]["name"], actual["parameters"][0]["name"])
    nose.tools.assert_equals(expected["parameters"][0]["index"], actual["parameters"][0]["index"])
    
    nose.tools.assert_almost_equals(actual["parameters"][0]["data"].all(), expected["parameters"][0]["data"].all())
       
    nose.tools.assert_almost_equals(actual["parameters"][0]["mean"], expected["parameters"][0]["mean"])
    nose.tools.assert_almost_equals(actual["parameters"][0]["max"], expected["parameters"][0]["max"])
    nose.tools.assert_almost_equals(actual["parameters"][0]["min"], expected["parameters"][0]["min"])
コード例 #2
0
def test_apply_factors_multi_parameters():
    
    factors = {
        "January": 1.5,
        "February": 2.0,
        "March": 2.5,
        "April": 3.0,
        "May": 3.5,
        "June": 4.0,
        "July": 4.5,
        "August": 5.5,
        "September": 6.0,
        "October": 6.5,
        "November": 7.0,
        "December": 7.5
    }     

    dates = np.array([datetime.datetime(2014, 1, 1, 0, 0), 
                      datetime.datetime(2014, 2, 1, 0, 0), 
                      datetime.datetime(2014, 3, 1, 0, 0),
                      datetime.datetime(2014, 4, 1, 0, 0), 
                      datetime.datetime(2014, 5, 1, 0, 0), 
                      datetime.datetime(2014, 6, 1, 0, 0),
                      datetime.datetime(2014, 7, 1, 0, 0), 
                      datetime.datetime(2014, 8, 1, 0, 0), 
                      datetime.datetime(2014, 9, 1, 0, 0),
                      datetime.datetime(2014, 10, 1, 0, 0), 
                      datetime.datetime(2014, 11, 1, 0, 0), 
                      datetime.datetime(2014, 12, 1, 0, 0)]
    )

    discharge_data_all_months = np.array([4.5, 12, 25, 36, 52.5, 64, 81, 82.5, 66, 45.5, 35, 15])
    subsurface_data_all_months = np.array([75, 110, 112.5, 120, 122.5, 120, 112.5, 110, 90, 130, 175, 225])
      
    expected = {
        "user": "******",
        "date_created": "4/9/2014 15:50:47 PM",
        "stationid": "012345",
        "column_names": ['Discharge (cfs)', 'Subsurface Flow (mm/day)', 'Impervious Flow (mm/day)', 'Infiltration Excess (mm/day)', 'Initial Abstracted Flow (mm/day)', 'Overland Flow (mm/day)', 'PET (mm/day)', 'AET(mm/day)', 'Average Soil Root zone (mm)', 'Average Soil Unsaturated Zone (mm)', 'Snow Pack (mm)', 'Precipitation (mm/day)', 'Storage Deficit (mm/day)', 'Return Flow (mm/day)'],
        "dates": dates,
        "parameters": [
            {"name": "Discharge (cfs)",
            "index": 0,
            "data": discharge_data_all_months,
            "mean": np.mean(discharge_data_all_months),
            "max": np.max(discharge_data_all_months),
            "min": np.min(discharge_data_all_months)
            },
            {"name": "Subsurface Flow (mm/day)",
            "index": 1,
            "data": subsurface_data_all_months,
            "mean": np.mean(subsurface_data_all_months),
            "max": np.max(subsurface_data_all_months),
            "min": np.min(subsurface_data_all_months)
            }
        ],  
    }  

    actual_q = watertxt.apply_factors(watertxt_data = fixture["sample_data_dict_all_months"], name = "Discharge", factors = factors)    
    actual_s = watertxt.apply_factors(watertxt_data = fixture["sample_data_dict_all_months"], name = "Subsurface Flow", factors = factors)
    
    nose.tools.assert_equals(actual_q["parameters"][0]["name"], expected["parameters"][0]["name"])
    nose.tools.assert_equals(actual_q["parameters"][0]["index"], expected["parameters"][0]["index"])    
    nose.tools.assert_equals(actual_s["parameters"][1]["name"], expected["parameters"][1]["name"])
    nose.tools.assert_equals(actual_s["parameters"][1]["index"], expected["parameters"][1]["index"])
    
    nose.tools.assert_almost_equals(actual_q["parameters"][0]["data"].all(), expected["parameters"][0]["data"].all())
    nose.tools.assert_almost_equals(actual_s["parameters"][1]["data"].all(), expected["parameters"][1]["data"].all())
       
    nose.tools.assert_almost_equals(actual_q["parameters"][0]["mean"], expected["parameters"][0]["mean"])
    nose.tools.assert_almost_equals(actual_q["parameters"][0]["max"], expected["parameters"][0]["max"])
    nose.tools.assert_almost_equals(actual_q["parameters"][0]["min"], expected["parameters"][0]["min"])               
    nose.tools.assert_almost_equals(actual_s["parameters"][1]["mean"], expected["parameters"][1]["mean"])
    nose.tools.assert_almost_equals(actual_s["parameters"][1]["max"], expected["parameters"][1]["max"])
    nose.tools.assert_almost_equals(actual_s["parameters"][1]["min"], expected["parameters"][1]["min"])