From 7b1dad1fadd2ef623ce735bfaa6cdae2d0b45958 Mon Sep 17 00:00:00 2001 From: Bella Date: Mon, 27 Mar 2023 11:54:16 -0700 Subject: [PATCH 1/9] init --- tests/test_wave_01.py | 22 +++++++++++----------- viewing_party/party.py | 16 ++++++++++++++-- 2 files changed, 25 insertions(+), 13 deletions(-) diff --git a/tests/test_wave_01.py b/tests/test_wave_01.py index 669efee6a..3c7982151 100644 --- a/tests/test_wave_01.py +++ b/tests/test_wave_01.py @@ -4,7 +4,7 @@ from viewing_party.party import * from tests.test_constants import * -@pytest.mark.skip() +# @pytest.mark.skip() def test_create_successful_movie(): # Arrange movie_title = MOVIE_TITLE_1 @@ -19,7 +19,7 @@ def test_create_successful_movie(): assert new_movie["genre"] == GENRE_1 assert new_movie["rating"] == pytest.approx(RATING_1) -@pytest.mark.skip() +# @pytest.mark.skip() def test_create_no_title_movie(): # Arrange movie_title = None @@ -32,7 +32,7 @@ def test_create_no_title_movie(): # Assert assert new_movie is None -@pytest.mark.skip() +# @pytest.mark.skip() def test_create_no_genre_movie(): # Arrange movie_title = "Title A" @@ -45,7 +45,7 @@ def test_create_no_genre_movie(): # Assert assert new_movie is None -@pytest.mark.skip() +# @pytest.mark.skip() def test_create_no_rating_movie(): # Arrange movie_title = "Title A" @@ -58,7 +58,7 @@ def test_create_no_rating_movie(): # Assert assert new_movie is None -@pytest.mark.skip() +# @pytest.mark.skip() def test_adds_movie_to_user_watched(): # Arrange movie = { @@ -79,7 +79,7 @@ def test_adds_movie_to_user_watched(): assert updated_data["watched"][0]["genre"] == GENRE_1 assert updated_data["watched"][0]["rating"] == RATING_1 -@pytest.mark.skip() +# @pytest.mark.skip() def test_adds_movie_to_non_empty_user_watched(): # Arrange movie = { @@ -99,7 +99,7 @@ def test_adds_movie_to_non_empty_user_watched(): assert movie in updated_data["watched"] assert FANTASY_2 in updated_data["watched"] -@pytest.mark.skip() +# @pytest.mark.skip() def test_adds_movie_to_user_watchlist(): # Arrange movie = { @@ -120,7 +120,7 @@ def test_adds_movie_to_user_watchlist(): assert updated_data["watchlist"][0]["genre"] == GENRE_1 assert updated_data["watchlist"][0]["rating"] == RATING_1 -@pytest.mark.skip() +# @pytest.mark.skip() def test_adds_movie_to_non_empty_user_watchlist(): # Arrange movie = { @@ -140,7 +140,7 @@ def test_adds_movie_to_non_empty_user_watchlist(): assert movie in updated_data["watchlist"] assert FANTASY_2 in updated_data["watchlist"] -@pytest.mark.skip() +# @pytest.mark.skip() def test_moves_movie_from_watchlist_to_empty_watched(): # Arrange janes_data = { @@ -164,7 +164,7 @@ def test_moves_movie_from_watchlist_to_empty_watched(): # ****** Add assertions here to test that the correct movie was added to "watched" ********** # ******************************************************************************************* -@pytest.mark.skip() +# @pytest.mark.skip() def test_moves_movie_from_watchlist_to_watched(): # Arrange movie_to_watch = HORROR_1 @@ -188,7 +188,7 @@ def test_moves_movie_from_watchlist_to_watched(): # ****** Add assertions here to test that the correct movie was added to "watched" ********** # ******************************************************************************************* -@pytest.mark.skip() +# @pytest.mark.skip() def test_does_nothing_if_movie_not_in_watchlist(): # Arrange movie_to_watch = HORROR_1 diff --git a/viewing_party/party.py b/viewing_party/party.py index 6d34a6b5f..6683dc6ba 100644 --- a/viewing_party/party.py +++ b/viewing_party/party.py @@ -1,7 +1,19 @@ # ------------- WAVE 1 -------------------- - +# - take three parameters: `title`, `genre`, `rating` +# - If those three attributes are truthy, then return a dictionary. This dictionary should... +# - Have three key-value pairs, with specific keys +# - The three keys should be `"title"`, `"genre"`, and `"rating"` +# - The values of these key-value pairs should be appropriate values +# - If `title` is falsy, `genre` is falsy, or `rating` is falsy, this function should return `None` def create_movie(title, genre, rating): - pass + movies_info = {} + movies_info['title'] = title + movies_info['genre'] = genre + movies_info['rating'] = rating + + if not 'title' or not 'genre' or not 'rating': + return None + return movies_info # ----------------------------------------- # ------------- WAVE 2 -------------------- From 0c78a106151c67978f08c9f6e233ae5d0f48972a Mon Sep 17 00:00:00 2001 From: Bella Date: Mon, 27 Mar 2023 12:45:14 -0700 Subject: [PATCH 2/9] init --- viewing_party/party.py | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/viewing_party/party.py b/viewing_party/party.py index 6683dc6ba..635389493 100644 --- a/viewing_party/party.py +++ b/viewing_party/party.py @@ -1,17 +1,10 @@ # ------------- WAVE 1 -------------------- -# - take three parameters: `title`, `genre`, `rating` -# - If those three attributes are truthy, then return a dictionary. This dictionary should... -# - Have three key-value pairs, with specific keys -# - The three keys should be `"title"`, `"genre"`, and `"rating"` -# - The values of these key-value pairs should be appropriate values -# - If `title` is falsy, `genre` is falsy, or `rating` is falsy, this function should return `None` def create_movie(title, genre, rating): movies_info = {} movies_info['title'] = title movies_info['genre'] = genre movies_info['rating'] = rating - - if not 'title' or not 'genre' or not 'rating': + if not movies_info['title']or not movies_info['genre'] or not movies_info['rating']: return None return movies_info From f72fcab28da9f0a63f1575582766501dd8fd9226 Mon Sep 17 00:00:00 2001 From: Bella Date: Tue, 28 Mar 2023 14:47:52 -0700 Subject: [PATCH 3/9] 2nd --- viewing_party/party.py | 72 ++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 70 insertions(+), 2 deletions(-) diff --git a/viewing_party/party.py b/viewing_party/party.py index 635389493..b3b2abf86 100644 --- a/viewing_party/party.py +++ b/viewing_party/party.py @@ -4,20 +4,88 @@ def create_movie(title, genre, rating): movies_info['title'] = title movies_info['genre'] = genre movies_info['rating'] = rating - if not movies_info['title']or not movies_info['genre'] or not movies_info['rating']: + if not title or not genre or not rating: return None return movies_info +def add_to_watched(user_data, movie): + user_data['watched'].append(movie) + return user_data + + +def add_to_watchlist(user_data, movie): + user_data['watchlist'].append(movie) + return user_data + +def watch_movie(user_data, title): + for movie in user_data['watchlist']: + if movie['title'] == title: + user_data['watchlist'].remove(movie) + user_data['watched'].append(movie) + # return user_data + # If the movie is not found in the watchlist or the watchlist is empty, return the original user_data + return user_data + + + # ----------------------------------------- # ------------- WAVE 2 -------------------- # ----------------------------------------- +def get_watched_avg_rating(user_data): + watched_movies = user_data.get("watched", []) + if not watched_movies: + return 0.0 + ratings_sum = 0.0 + for movie_dict in watched_movies: + ratings_sum += movie_dict.get('rating', 0.0) + return ratings_sum / len(watched_movies) + +def get_most_watched_genre(user_data): + genre_occur = {} + if not user_data["watched"]: + return None + for movie_dict in user_data["watched"]: + genre_occur[movie_dict["genre"]] = genre_occur.get(movie_dict["genre"], 0) + 1 + return max(genre_occur, key=genre_occur.get) + + + + # ----------------------------------------- # ------------- WAVE 3 -------------------- # ----------------------------------------- +# Create a function named `get_unique_watched`. This function should... + +# - take one parameter: `user_data` +# - the value of `user_data` will be a dictionary with a `"watched"` list of movie dictionaries, and a `"friends"` +# - This represents that the user has a list of watched movies and a list of friends +# - The value of `"friends"` is a list +# - Each item in `"friends"` is a dictionary. This dictionary has a key `"watched"`, which has a list of movie dictionaries. +# - Each movie dictionary has a `"title"`. +# - Consider the movies that the user has watched, and consider the movies that their friends have watched. Determine which movies the user has watched, but none of their friends have watched. +# - Return a list of dictionaries, that represents a list of movies + +def get_unique_watched(user_data): + user_watched = set() + user_watched_dict = {} + for movie in user_data['watched']: + user_watched.add(movie['title']) + user_watched_dict[movie['title']] = movie + friends_watched = set() + for friend in user_data['friends']: + for movie in friend['watched']: + friends_watched.add(movie['title']) + user_unique_watched = [] + for title in user_watched.difference(friends_watched): + if title in user_watched_dict: + user_unique_watched.append(user_watched_dict[title]) + return user_unique_watched + + - + # ----------------------------------------- # ------------- WAVE 4 -------------------- # ----------------------------------------- From ebc1a4a8f3761ca633965285184775b005758ee7 Mon Sep 17 00:00:00 2001 From: Bella Date: Wed, 29 Mar 2023 08:41:55 -0700 Subject: [PATCH 4/9] 3rd wave --- viewing_party/party.py | 40 ++++++++++++++++++++++++++++------------ 1 file changed, 28 insertions(+), 12 deletions(-) diff --git a/viewing_party/party.py b/viewing_party/party.py index b3b2abf86..8e945dc25 100644 --- a/viewing_party/party.py +++ b/viewing_party/party.py @@ -56,16 +56,6 @@ def get_most_watched_genre(user_data): # ----------------------------------------- # ------------- WAVE 3 -------------------- # ----------------------------------------- -# Create a function named `get_unique_watched`. This function should... - -# - take one parameter: `user_data` -# - the value of `user_data` will be a dictionary with a `"watched"` list of movie dictionaries, and a `"friends"` -# - This represents that the user has a list of watched movies and a list of friends -# - The value of `"friends"` is a list -# - Each item in `"friends"` is a dictionary. This dictionary has a key `"watched"`, which has a list of movie dictionaries. -# - Each movie dictionary has a `"title"`. -# - Consider the movies that the user has watched, and consider the movies that their friends have watched. Determine which movies the user has watched, but none of their friends have watched. -# - Return a list of dictionaries, that represents a list of movies def get_unique_watched(user_data): user_watched = set() @@ -73,23 +63,49 @@ def get_unique_watched(user_data): for movie in user_data['watched']: user_watched.add(movie['title']) user_watched_dict[movie['title']] = movie - friends_watched = set() + friends_watched = set() for friend in user_data['friends']: for movie in friend['watched']: friends_watched.add(movie['title']) user_unique_watched = [] for title in user_watched.difference(friends_watched): if title in user_watched_dict: - user_unique_watched.append(user_watched_dict[title]) + user_unique_watched.append(user_watched_dict[title]) return user_unique_watched +def get_friends_unique_watched(user_data): + user_watched = [] + for movie in user_data['watched']: + user_watched.append(movie['title']) + friends_watched = [] + friends_watched_titles = [] + for friend in user_data['friends']: + for movie in friend['watched']: + title = movie['title'] + if title not in user_watched and title not in friends_watched_titles: + friends_watched.append(movie) + friends_watched_titles.append(title) + + friends_unique_watched = friends_watched + return friends_unique_watched + # ----------------------------------------- # ------------- WAVE 4 -------------------- # ----------------------------------------- +# Create a function named `get_available_recs`. This function should... +# - take one parameter: `user_data` +# - `user_data` will have a field `"subscriptions"`. The value of `"subscriptions"` is a list of strings +# - This represents the names of streaming services that the user has access to +# - Each friend in `"friends"` has a watched list. Each movie in the watched list has a `"host"`, which is a string that says what streaming service it's hosted on +# - Determine a list of recommended movies. A movie should be added to this list if and only if: +# - The user has not watched it +# - At least one of the user's friends has watched +# - The `"host"` of the movie is a service that is in the user's `"subscriptions"` +# - Return the list of recommended movies # ----------------------------------------- # ------------- WAVE 5 -------------------- # ----------------------------------------- From 0e45b431f7a728f0ac5b4a6115369bb846808c5d Mon Sep 17 00:00:00 2001 From: Bella Date: Wed, 29 Mar 2023 12:53:29 -0700 Subject: [PATCH 5/9] 4th wave --- viewing_party/party.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/viewing_party/party.py b/viewing_party/party.py index 8e945dc25..f08fd3866 100644 --- a/viewing_party/party.py +++ b/viewing_party/party.py @@ -106,6 +106,15 @@ def get_friends_unique_watched(user_data): # - At least one of the user's friends has watched # - The `"host"` of the movie is a service that is in the user's `"subscriptions"` # - Return the list of recommended movies +def get_available_recs(user_data): + friends_unique_watched = get_friends_unique_watched(user_data) + recommended_list=[] + for dict in friends_unique_watched: + if dict["host"] in user_data["subscriptions"]: + recommended_list.append(dict) + return recommended_list + + # ----------------------------------------- # ------------- WAVE 5 -------------------- # ----------------------------------------- From 7880ef70c5ce314526190c00ab70614c36dd3da3 Mon Sep 17 00:00:00 2001 From: Bella Date: Wed, 29 Mar 2023 15:32:20 -0700 Subject: [PATCH 6/9] 3rd wave test --- tests/test_wave_01.py | 9 +++++---- tests/test_wave_02.py | 10 +++++----- tests/test_wave_03.py | 19 ++++++++++++------- tests/test_wave_04.py | 6 +++--- 4 files changed, 25 insertions(+), 19 deletions(-) diff --git a/tests/test_wave_01.py b/tests/test_wave_01.py index 3c7982151..311c6b925 100644 --- a/tests/test_wave_01.py +++ b/tests/test_wave_01.py @@ -158,8 +158,8 @@ def test_moves_movie_from_watchlist_to_empty_watched(): # Assert assert len(updated_data["watchlist"]) == 0 assert len(updated_data["watched"]) == 1 - - raise Exception("Test needs to be completed.") + assert updated_data["watched"][0]["title"] == MOVIE_TITLE_1 + # raise Exception("Test needs to be completed.") # ******************************************************************************************* # ****** Add assertions here to test that the correct movie was added to "watched" ********** # ******************************************************************************************* @@ -182,8 +182,9 @@ def test_moves_movie_from_watchlist_to_watched(): # Assert assert len(updated_data["watchlist"]) == 1 assert len(updated_data["watched"]) == 2 - - raise Exception("Test needs to be completed.") + assert updated_data["watched"][0] == FANTASY_2 + assert updated_data["watched"][1] == HORROR_1 + # raise Exception("Test needs to be completed.") # ******************************************************************************************* # ****** Add assertions here to test that the correct movie was added to "watched" ********** # ******************************************************************************************* diff --git a/tests/test_wave_02.py b/tests/test_wave_02.py index 19f045c79..64b62729d 100644 --- a/tests/test_wave_02.py +++ b/tests/test_wave_02.py @@ -2,7 +2,7 @@ from viewing_party.party import * from tests.test_constants import * -@pytest.mark.skip() +# @pytest.mark.skip() def test_calculates_watched_average_rating(): # Arrange janes_data = clean_wave_2_data() @@ -14,7 +14,7 @@ def test_calculates_watched_average_rating(): assert average == pytest.approx(3.58333) assert janes_data == clean_wave_2_data() -@pytest.mark.skip() +# @pytest.mark.skip() def test_empty_watched_average_rating_is_zero(): # Arrange janes_data = { @@ -27,7 +27,7 @@ def test_empty_watched_average_rating_is_zero(): # Assert assert average == pytest.approx(0.0) -@pytest.mark.skip() +# @pytest.mark.skip() def test_most_watched_genre(): # Arrange janes_data = clean_wave_2_data() @@ -39,7 +39,7 @@ def test_most_watched_genre(): assert popular_genre == "Fantasy" assert janes_data == clean_wave_2_data() -@pytest.mark.skip() +# @pytest.mark.skip() def test_most_watched_genre_order_mixed(): # Arrange janes_data = clean_wave_2b_data() @@ -51,7 +51,7 @@ def test_most_watched_genre_order_mixed(): assert popular_genre == "Fantasy" assert janes_data == clean_wave_2b_data() -@pytest.mark.skip() +# @pytest.mark.skip() def test_genre_is_None_if_empty_watched(): # Arrange janes_data = { diff --git a/tests/test_wave_03.py b/tests/test_wave_03.py index 046429360..037bf0bdc 100644 --- a/tests/test_wave_03.py +++ b/tests/test_wave_03.py @@ -2,7 +2,7 @@ from viewing_party.party import * from tests.test_constants import * -@pytest.mark.skip() +# @pytest.mark.skip() def test_my_unique_movies(): # Arrange amandas_data = clean_wave_3_data() @@ -16,7 +16,7 @@ def test_my_unique_movies(): assert INTRIGUE_2 in amandas_unique_movies assert amandas_data == clean_wave_3_data() -@pytest.mark.skip() +# @pytest.mark.skip() def test_my_not_unique_movies(): # Arrange amandas_data = clean_wave_3_data() @@ -28,7 +28,7 @@ def test_my_not_unique_movies(): # Assert assert len(amandas_unique_movies) == 0 -@pytest.mark.skip() +# @pytest.mark.skip() def test_friends_unique_movies(): # Arrange amandas_data = clean_wave_3_data() @@ -43,24 +43,29 @@ def test_friends_unique_movies(): assert FANTASY_4 in friends_unique_movies assert amandas_data == clean_wave_3_data() -@pytest.mark.skip() +# @pytest.mark.skip() def test_friends_unique_movies_not_duplicated(): # Arrange amandas_data = clean_wave_3_data() amandas_data["friends"][0]["watched"].append(INTRIGUE_3) + # Act friends_unique_movies = get_friends_unique_watched(amandas_data) # Assert assert len(friends_unique_movies) == 3 - - raise Exception("Test needs to be completed.") + assert INTRIGUE_3 in friends_unique_movies + assert HORROR_1 in friends_unique_movies + assert FANTASY_4 in friends_unique_movies + assert friends_unique_movies.count(INTRIGUE_3) == 1 + + # raise Exception("Test needs to be completed.") # ************************************************************************************************* # ****** Add assertions here to test that the correct movies are in friends_unique_movies ********** # ************************************************************************************************** -@pytest.mark.skip() +# @pytest.mark.skip() def test_friends_not_unique_movies(): # Arrange amandas_data = { diff --git a/tests/test_wave_04.py b/tests/test_wave_04.py index 499669077..0b0b3c7e2 100644 --- a/tests/test_wave_04.py +++ b/tests/test_wave_04.py @@ -2,7 +2,7 @@ from viewing_party.party import * from tests.test_constants import * -@pytest.mark.skip() +# @pytest.mark.skip() def test_get_available_friend_rec(): # Arrange amandas_data = clean_wave_4_data() @@ -16,7 +16,7 @@ def test_get_available_friend_rec(): assert FANTASY_4b in recommendations assert amandas_data == clean_wave_4_data() -@pytest.mark.skip() +# @pytest.mark.skip() def test_no_available_friend_recs(): # Arrange amandas_data = { @@ -38,7 +38,7 @@ def test_no_available_friend_recs(): # Assert assert len(recommendations) == 0 -@pytest.mark.skip() +# @pytest.mark.skip() def test_no_available_friend_recs_watched_all(): # Arrange amandas_data = { From 732f3c0a842142618bf206aad8b1b15f547edf0f Mon Sep 17 00:00:00 2001 From: Bella Date: Wed, 29 Mar 2023 22:36:16 -0700 Subject: [PATCH 7/9] 5th wave --- viewing_party/party.py | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/viewing_party/party.py b/viewing_party/party.py index f08fd3866..05552345a 100644 --- a/viewing_party/party.py +++ b/viewing_party/party.py @@ -51,8 +51,6 @@ def get_most_watched_genre(user_data): - - # ----------------------------------------- # ------------- WAVE 3 -------------------- # ----------------------------------------- @@ -90,22 +88,11 @@ def get_friends_unique_watched(user_data): friends_unique_watched = friends_watched return friends_unique_watched - # ----------------------------------------- # ------------- WAVE 4 -------------------- # ----------------------------------------- -# Create a function named `get_available_recs`. This function should... - -# - take one parameter: `user_data` -# - `user_data` will have a field `"subscriptions"`. The value of `"subscriptions"` is a list of strings -# - This represents the names of streaming services that the user has access to -# - Each friend in `"friends"` has a watched list. Each movie in the watched list has a `"host"`, which is a string that says what streaming service it's hosted on -# - Determine a list of recommended movies. A movie should be added to this list if and only if: -# - The user has not watched it -# - At least one of the user's friends has watched -# - The `"host"` of the movie is a service that is in the user's `"subscriptions"` -# - Return the list of recommended movies + def get_available_recs(user_data): friends_unique_watched = get_friends_unique_watched(user_data) recommended_list=[] @@ -119,3 +106,20 @@ def get_available_recs(user_data): # ------------- WAVE 5 -------------------- # ----------------------------------------- +def get_new_rec_by_genre(user_data): + user_fav_genre = get_most_watched_genre(user_data) + friends_unique_watched = get_friends_unique_watched(user_data) + rec_by_genre = [] + for dict in friends_unique_watched: + if user_fav_genre == dict["genre"]: + rec_by_genre.append(dict) + return rec_by_genre + + +def get_rec_from_favorites(user_data): + rec_list = [] + friends_not_watched = get_unique_watched(user_data) + for dict in user_data["favorites"]: + if dict in friends_not_watched: + rec_list.append(dict) + return rec_list \ No newline at end of file From d87c3792b76b64d65934c4a5b9e168894e48b4c2 Mon Sep 17 00:00:00 2001 From: Bella Date: Thu, 30 Mar 2023 15:13:14 -0700 Subject: [PATCH 8/9] ReadMe and tests --- tests/test_wave_05.py | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/tests/test_wave_05.py b/tests/test_wave_05.py index b2ba9ad33..25ce80b9b 100644 --- a/tests/test_wave_05.py +++ b/tests/test_wave_05.py @@ -2,7 +2,7 @@ from viewing_party.party import * from tests.test_constants import * -@pytest.mark.skip() +# @pytest.mark.skip() def test_new_genre_rec(): # Arrange sonyas_data = clean_wave_5_data() @@ -17,7 +17,7 @@ def test_new_genre_rec(): assert FANTASY_4b in recommendations assert sonyas_data == clean_wave_5_data() -@pytest.mark.skip() +# @pytest.mark.skip() def test_new_genre_rec_from_empty_watched(): # Arrange sonyas_data = { @@ -38,7 +38,7 @@ def test_new_genre_rec_from_empty_watched(): # Assert assert len(recommendations) == 0 -@pytest.mark.skip() +# @pytest.mark.skip() def test_new_genre_rec_from_empty_friends(): # Arrange sonyas_data = { @@ -52,13 +52,18 @@ def test_new_genre_rec_from_empty_friends(): } ] } + # Act + recommendations = get_new_rec_by_genre(sonyas_data) - raise Exception("Test needs to be completed.") + # Assert + assert len(recommendations) == 0 + + # raise Exception("Test needs to be completed.") # ********************************************************************* # ****** Complete the Act and Assert Portions of these tests ********** # ********************************************************************* -@pytest.mark.skip() +# @pytest.mark.skip() def test_unique_rec_from_favorites(): # Arrange sonyas_data = clean_wave_5_data() @@ -72,7 +77,7 @@ def test_unique_rec_from_favorites(): assert INTRIGUE_2b in recommendations assert sonyas_data == clean_wave_5_data() -@pytest.mark.skip() +# @pytest.mark.skip() def test_unique_from_empty_favorites(): # Arrange sonyas_data = { @@ -94,7 +99,7 @@ def test_unique_from_empty_favorites(): # Assert assert len(recommendations) == 0 -@pytest.mark.skip() +# @pytest.mark.skip() def test_new_rec_from_empty_friends(): # Arrange sonyas_data = { From eabf21bc7478465daf2c07e8c051ed267098779c Mon Sep 17 00:00:00 2001 From: Bella Date: Thu, 30 Mar 2023 15:17:53 -0700 Subject: [PATCH 9/9] readme --- README.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/README.md b/README.md index ba28bf2ab..147fd1d29 100644 --- a/README.md +++ b/README.md @@ -222,6 +222,19 @@ We will note that much of the test data for this project is provided by the file For the time being, we need to make sure that the data provided to each test is clean and free of any changes that running another test may have introduced. Recall the *Modifying Mutable Objects* section of the *Variables Are References lesson.* To ensure that the data for each test is storied in a unique place in memory, there are functions implemented in `test_constants.py` that provide clean test data (i.e. `clean_wave_3_data`) by using `copy.deepcopy`. ## Project Directions +Plan of action +learning style: + meet in quiet isolated room or on zoom + visualize input/output +Communication goal: + ask questions about expectation + check in often daily +Skills to improve: + set a plan from the beginning + if it does not work change it + being more direct about their expectations + asking help from peers + ### Set Up a Pair Plan