RAMP-project/RAMP

Add more tests/checks in RAMP

Opened this issue · 0 comments

This is an exhaustive list of test ideas/suggestions that could be implemented prepared by @dhungelgd

  • Test rand_total_time_of_use:

    • Test when the randomised time is lesser than the sum of all the total spaces available in the windows
    • Test when the randomised time is greater than the sum of all the total spaces available in the windows (should return – randomised time = sum of the available time spaces within all the windows)
  • Test_switch_on:

    • Test for num_windows = 1, 2 and 3 windows separately
      For num_windows = 1
      • Test if the switch on is within the random window 1
        For num_windows = 2
      • Test if the switch on falls within the boundaries of randomised windows 1 & 2
        For num_windows = 3
      • Test if the switch on falls within the boundaries of randomised windows 1 & 2 &3
  • Test calc_indexes_for_rand_switch_on:

    • Test for the upper limit value when
      The difference between the switch ons is greater than the func_cycle value
      The difference between the switch ons is lesser than the func_cycle value ( i.e there is an overlap between two switch ons)
      There are no other switch-on events after the current one
    • Test for the indexes value when upper limit is greater than func_cycle
    • Test for index when the upper limit is less than the func_cycle value of the appliance
  • Test calc_coincident_switch_on:

    • Test when self.fixed = yes – i.e all the apps are switched on together (should return the total number of apps)
    • Test when self.fixed= no and the index value lies in peak_time_range (test whether the coincidence values are normally distributed or not)
    • Test when self.fixed = no and the index value lies in off peak time (test whether the coincidence values are uniformly distributed or not)
  • Test update_daily_use:

    • Test when evaluate (mean of the indexes) is within 1st duty cycle
    • Test when evaluate (mean of the indexes) is within 2nd duty cycle
    • Test when evaluate (mean of the indexes) is within 3rd duty cycle
    • Test for the case where no duty cycles are specified
  • Test calc_rand_window:
    Check that the window boundaries are within the random_var

    • Test overflow
      Check for window behaviour when the input time is greater than the sum of the time space available within the windows
      Also for when func_time < sum of the available time spaces in all windows
  • Test for different values of r_w

  • Test assign_random_cycles:

    • Test when fixed_cycle = 1
    • Test for number of fixed_cycle = 2
    • Test for number of fixed_cycle = 3
  • Test that the new power values assigned to each cycles are within the range of the thermal_P_var

  • Test generate_load_profile:

    • Test for indexes is None
  • Test maximum_profile:

    • Test that maximum_profile == App.daily_use * np.mean (App.power) * App.number
  • Test generate_single_load_profile:

    • Test for different occassional use
    • Test for different weekend weekday behaviour
    • Test for different pref_index
  • Test for flat appliances – test that if an app is flat, the power is calculated without further stochasticity

    • Test for non-flat appliances
  • Test generate_aggregate_load_profile:

    • Test the value of aggregated load for all users
  • Test calc_peak_time_range:

    • Test user with single app with single window of one point (or more)
      Then test for peak_enlarge = 0
      And peak_enlarge = 0.15