Skip to content

Commit

Permalink
Merge pull request #157 from RAMP-project/fix/seed-initialization
Browse files Browse the repository at this point in the history
Fix/seed initialization
  • Loading branch information
Bachibouzouk authored Jul 10, 2024
2 parents 0c427d6 + 3035226 commit f6256f2
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 3 deletions.
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@ Release History
0.5.3 (dev)
-----------

**|fixed|** Random seed behavior if both date_start and date_end are provided to UseCase instance (issue #156)


0.5.2 (2024-06-07)
------------------

Expand Down
5 changes: 3 additions & 2 deletions ramp/core/core.py
Original file line number Diff line number Diff line change
Expand Up @@ -105,13 +105,14 @@ def __init__(
self.add_user(users)

self.collect_appliances_from_users()
if self.date_start is not None and self.date_end is not None:
self.initialize()

# Set global random seed if it is specified
if self.random_seed:
random.seed(self.random_seed)

if self.date_start is not None and self.date_end is not None:
self.initialize()

@property
def date_start(self):
"""Start date of the daily profiles generated by the UseCase instance"""
Expand Down
26 changes: 25 additions & 1 deletion tests/test_object_creation.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
import pytest

from ramp import User, Appliance
from ramp import UseCase, User, Appliance
from ramp.example.input_file_1 import User_list
from copy import deepcopy


@pytest.fixture
Expand Down Expand Up @@ -42,3 +44,25 @@ def test_skip_add_existing_appliances_to_user(test_user):
test_user.add_appliance(appliance1)

assert len(test_user.App_list) == 1


def test_random_seed_initialization():
# Build use case 2 and fixed random seed
uc_1 = UseCase(
users=deepcopy(User_list),
random_seed=1,
date_start="2020-01-01",
date_end="2020-01-01",
)
# Initialize and generate load profile
uc_1.initialize(peak_enlarge=0.15, num_days=1)
uc_1_lp = uc_1.generate_daily_load_profiles()

# Build use case 2 and same fixed random seed as uc_1
uc_2 = UseCase(users=deepcopy(User_list), random_seed=1)

# Initialize and generate load profile
uc_2.initialize(peak_enlarge=0.15, num_days=1)
uc_2_lp = uc_2.generate_daily_load_profiles()

assert (uc_1_lp - uc_1_lp == 0).all()

0 comments on commit f6256f2

Please sign in to comment.