瀏覽代碼

finished the lengthy lab

thulasi 6 年之前
父節點
當前提交
852c1ebf23

+ 210
- 194
.idea/workspace.xml 查看文件

@@ -2,15 +2,19 @@
2 2
 <project version="4">
3 3
   <component name="ChangeListManager">
4 4
     <list default="true" id="83fe4019-40e6-4a60-8c3f-69ab963507a0" name="Default Changelist" comment="">
5
-      <change afterPath="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Instructors.java" afterDir="false" />
6
-      <change afterPath="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Students.java" afterDir="false" />
7
-      <change afterPath="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/ZipCodeWilmington.java" afterDir="false" />
8
-      <change afterPath="$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/InstructorsTest.java" afterDir="false" />
9
-      <change afterPath="$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/ZipCodeWilmingtonTest.java" afterDir="false" />
5
+      <change afterPath="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Educator.java" afterDir="false" />
6
+      <change afterPath="$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/TestEducator.java" afterDir="false" />
10 7
       <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
8
+      <change beforePath="$PROJECT_DIR$/README.md" beforeDir="false" afterPath="$PROJECT_DIR$/README.md" afterDir="false" />
11 9
       <change beforePath="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Instructor.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Instructor.java" afterDir="false" />
10
+      <change beforePath="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Instructors.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Instructors.java" afterDir="false" />
11
+      <change beforePath="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/People.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/People.java" afterDir="false" />
12
+      <change beforePath="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Person.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Person.java" afterDir="false" />
12 13
       <change beforePath="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Student.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Student.java" afterDir="false" />
13
-      <change beforePath="$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/StudentsTest.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/StudentsTest.java" afterDir="false" />
14
+      <change beforePath="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Students.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Students.java" afterDir="false" />
15
+      <change beforePath="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/ZipCodeWilmington.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/ZipCodeWilmington.java" afterDir="false" />
16
+      <change beforePath="$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/PeopleTest.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/PeopleTest.java" afterDir="false" />
17
+      <change beforePath="$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/ZipCodeWilmingtonTest.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/ZipCodeWilmingtonTest.java" afterDir="false" />
14 18
     </list>
15 19
     <ignored path="$PROJECT_DIR$/target/" />
16 20
     <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
@@ -23,34 +27,37 @@
23 27
     <session id="-1577179945">
24 28
       <usages-collector id="statistics.lifecycle.project">
25 29
         <counts>
26
-          <entry key="project.closed" value="3" />
30
+          <entry key="project.closed" value="5" />
27 31
           <entry key="project.open.time.0" value="1" />
28
-          <entry key="project.open.time.1" value="1" />
32
+          <entry key="project.open.time.1" value="2" />
33
+          <entry key="project.open.time.10" value="1" />
29 34
           <entry key="project.open.time.2" value="1" />
30 35
           <entry key="project.open.time.3" value="1" />
31
-          <entry key="project.opened" value="4" />
36
+          <entry key="project.opened" value="6" />
32 37
         </counts>
33 38
       </usages-collector>
34 39
       <usages-collector id="statistics.file.extensions.open">
35 40
         <counts>
36
-          <entry key="java" value="23" />
41
+          <entry key="java" value="53" />
42
+          <entry key="md" value="3" />
37 43
           <entry key="xml" value="1" />
38 44
         </counts>
39 45
       </usages-collector>
40 46
       <usages-collector id="statistics.file.types.open">
41 47
         <counts>
42
-          <entry key="JAVA" value="23" />
48
+          <entry key="JAVA" value="53" />
49
+          <entry key="Markdown" value="3" />
43 50
           <entry key="XML" value="1" />
44 51
         </counts>
45 52
       </usages-collector>
46 53
       <usages-collector id="statistics.file.extensions.edit">
47 54
         <counts>
48
-          <entry key="java" value="4694" />
55
+          <entry key="java" value="6066" />
49 56
         </counts>
50 57
       </usages-collector>
51 58
       <usages-collector id="statistics.file.types.edit">
52 59
         <counts>
53
-          <entry key="JAVA" value="4694" />
60
+          <entry key="JAVA" value="6066" />
54 61
         </counts>
55 62
       </usages-collector>
56 63
     </session>
@@ -58,19 +65,22 @@
58 65
   <component name="FileEditorManager">
59 66
     <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
60 67
       <file pinned="false" current-in-tab="false">
61
-        <entry file="file://$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Students.java">
62
-          <provider selected="true" editor-type-id="text-editor">
63
-            <state relative-caret-position="435">
64
-              <caret line="65" column="24" lean-forward="true" selection-start-line="61" selection-start-column="7" selection-end-line="65" selection-end-column="24" />
68
+        <entry file="file://$PROJECT_DIR$/README.md">
69
+          <provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
70
+            <state split_layout="SPLIT">
71
+              <first_editor relative-caret-position="379">
72
+                <caret line="170" lean-forward="true" selection-start-line="170" selection-end-line="170" />
73
+              </first_editor>
74
+              <second_editor />
65 75
             </state>
66 76
           </provider>
67 77
         </entry>
68 78
       </file>
69
-      <file pinned="false" current-in-tab="false">
70
-        <entry file="file://$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/InstructorsTest.java">
79
+      <file pinned="false" current-in-tab="true">
80
+        <entry file="file://$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/TestEducator.java">
71 81
           <provider selected="true" editor-type-id="text-editor">
72
-            <state relative-caret-position="135">
73
-              <caret line="9" column="14" lean-forward="true" selection-start-line="9" selection-start-column="14" selection-end-line="9" selection-end-column="14" />
82
+            <state relative-caret-position="215">
83
+              <caret line="33" column="16" selection-start-line="33" selection-start-column="16" selection-end-line="33" selection-end-column="16" />
74 84
               <folding>
75 85
                 <element signature="imports" expanded="true" />
76 86
               </folding>
@@ -79,32 +89,19 @@
79 89
         </entry>
80 90
       </file>
81 91
       <file pinned="false" current-in-tab="false">
82
-        <entry file="file://$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Instructors.java">
92
+        <entry file="file://$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/InstructorsTest.java">
83 93
           <provider selected="true" editor-type-id="text-editor">
84
-            <state relative-caret-position="210">
85
-              <caret line="15" column="49" lean-forward="true" selection-start-line="15" selection-start-column="49" selection-end-line="15" selection-end-column="49" />
86
-              <folding>
87
-                <element signature="e#268#269#0" expanded="true" />
88
-                <element signature="e#298#299#0" expanded="true" />
89
-              </folding>
94
+            <state relative-caret-position="165">
95
+              <caret line="12" column="5" lean-forward="true" selection-start-line="12" selection-start-column="5" selection-end-line="12" selection-end-column="5" />
90 96
             </state>
91 97
           </provider>
92 98
         </entry>
93 99
       </file>
94 100
       <file pinned="false" current-in-tab="false">
95
-        <entry file="file://$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Instructor.java">
96
-          <provider selected="true" editor-type-id="text-editor">
97
-            <state relative-caret-position="270">
98
-              <caret line="20" column="62" selection-start-line="20" selection-start-column="62" selection-end-line="20" selection-end-column="62" />
99
-            </state>
100
-          </provider>
101
-        </entry>
102
-      </file>
103
-      <file pinned="false" current-in-tab="true">
104
-        <entry file="file://$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/ZipCodeWilmingtonTest.java">
101
+        <entry file="file://$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/InstructorTest.java">
105 102
           <provider selected="true" editor-type-id="text-editor">
106
-            <state relative-caret-position="172">
107
-              <caret line="13" column="44" lean-forward="true" selection-start-line="13" selection-start-column="44" selection-end-line="13" selection-end-column="44" />
103
+            <state relative-caret-position="269">
104
+              <caret line="46" column="46" lean-forward="true" selection-start-line="37" selection-start-column="8" selection-end-line="46" selection-end-column="46" />
108 105
               <folding>
109 106
                 <element signature="imports" expanded="true" />
110 107
               </folding>
@@ -113,13 +110,19 @@
113 110
         </entry>
114 111
       </file>
115 112
       <file pinned="false" current-in-tab="false">
116
-        <entry file="file://$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/ZipCodeWilmington.java">
113
+        <entry file="file://$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Educator.java">
117 114
           <provider selected="true" editor-type-id="text-editor">
118
-            <state relative-caret-position="232">
119
-              <caret line="26" column="5" lean-forward="true" selection-start-line="26" selection-start-column="5" selection-end-line="26" selection-end-column="5" />
115
+            <state relative-caret-position="666">
116
+              <caret line="45" column="5" lean-forward="true" selection-start-line="45" selection-start-column="5" selection-end-line="45" selection-end-column="5" />
120 117
               <folding>
121
-                <element signature="e#312#313#0" expanded="true" />
122
-                <element signature="e#342#343#0" expanded="true" />
118
+                <element signature="e#629#630#0" expanded="true" />
119
+                <element signature="e#662#663#0" expanded="true" />
120
+                <element signature="e#714#715#0" expanded="true" />
121
+                <element signature="e#758#759#0" expanded="true" />
122
+                <element signature="e#1119#1120#0" expanded="true" />
123
+                <element signature="e#1144#1145#0" expanded="true" />
124
+                <element signature="e#1175#1176#0" expanded="true" />
125
+                <element signature="e#1202#1203#0" expanded="true" />
123 126
               </folding>
124 127
             </state>
125 128
           </provider>
@@ -131,6 +134,7 @@
131 134
     <option name="RECENT_TEMPLATES">
132 135
       <list>
133 136
         <option value="Interface" />
137
+        <option value="Enum" />
134 138
         <option value="Class" />
135 139
       </list>
136 140
     </option>
@@ -154,20 +158,23 @@
154 158
         <option value="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/TestStudent.java" />
155 159
         <option value="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Teacher.java" />
156 160
         <option value="$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/InstructorTest.java" />
157
-        <option value="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Person.java" />
158
-        <option value="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/People.java" />
159
-        <option value="$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/PeopleTest.java" />
160
-        <option value="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Student.java" />
161
-        <option value="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Students.java" />
162 161
         <option value="$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/StudentsTest.java" />
163 162
         <option value="$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/InstructorsTest.java" />
164
-        <option value="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Instructors.java" />
165
-        <option value="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Instructor.java" />
166 163
         <option value="$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/ZipcodeTes.java" />
167 164
         <option value="$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/ZipcodeTest.java" />
168 165
         <option value="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/ZipcodeWilmington.java" />
169 166
         <option value="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/ZipCodeWilmington.java" />
167
+        <option value="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Person.java" />
168
+        <option value="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Instructor.java" />
169
+        <option value="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Student.java" />
170 170
         <option value="$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/ZipCodeWilmingtonTest.java" />
171
+        <option value="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/People.java" />
172
+        <option value="$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/PeopleTest.java" />
173
+        <option value="$PROJECT_DIR$/README.md" />
174
+        <option value="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Students.java" />
175
+        <option value="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Instructors.java" />
176
+        <option value="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Educator.java" />
177
+        <option value="$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/TestEducator.java" />
171 178
       </list>
172 179
     </option>
173 180
   </component>
@@ -188,23 +195,6 @@
188 195
       <foldersAlwaysOnTop value="true" />
189 196
     </navigator>
190 197
     <panes>
191
-      <pane id="PackagesPane">
192
-        <subPane>
193
-          <expand>
194
-            <path>
195
-              <item name="interfaces-1" type="58d84e3e:PackageViewProjectNode" />
196
-              <item name="interfaces-1" type="616d4139:PackageViewModuleNode" />
197
-            </path>
198
-            <path>
199
-              <item name="interfaces-1" type="58d84e3e:PackageViewProjectNode" />
200
-              <item name="interfaces-1" type="616d4139:PackageViewModuleNode" />
201
-              <item name="io.zipcoder.interfaces" type="1f31426a:PackageElementNode" />
202
-            </path>
203
-          </expand>
204
-          <select />
205
-        </subPane>
206
-      </pane>
207
-      <pane id="ProjectPane" />
208 198
       <pane id="Scope">
209 199
         <subPane subId="Scope 'Project Files'; set:Project Files; class com.intellij.psi.search.scope.ProjectFilesScope">
210 200
           <expand>
@@ -301,18 +291,35 @@
301 291
           <select />
302 292
         </subPane>
303 293
       </pane>
294
+      <pane id="PackagesPane">
295
+        <subPane>
296
+          <expand>
297
+            <path>
298
+              <item name="interfaces-1" type="58d84e3e:PackageViewProjectNode" />
299
+              <item name="interfaces-1" type="616d4139:PackageViewModuleNode" />
300
+            </path>
301
+            <path>
302
+              <item name="interfaces-1" type="58d84e3e:PackageViewProjectNode" />
303
+              <item name="interfaces-1" type="616d4139:PackageViewModuleNode" />
304
+              <item name="io.zipcoder.interfaces" type="1f31426a:PackageElementNode" />
305
+            </path>
306
+          </expand>
307
+          <select />
308
+        </subPane>
309
+      </pane>
310
+      <pane id="ProjectPane" />
304 311
     </panes>
305 312
   </component>
306 313
   <component name="PropertiesComponent">
307 314
     <property name="WebServerToolWindowFactoryState" value="false" />
308 315
     <property name="aspect.path.notification.shown" value="true" />
309
-    <property name="com.android.tools.idea.instantapp.provision.ProvisionBeforeRunTaskProvider.myTimeStamp" value="1541301176729" />
316
+    <property name="com.android.tools.idea.instantapp.provision.ProvisionBeforeRunTaskProvider.myTimeStamp" value="1541563367948" />
310 317
     <property name="last_directory_selection" value="$PROJECT_DIR$/src/test/java" />
311 318
     <property name="last_opened_file_path" value="$PROJECT_DIR$" />
312 319
     <property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" />
313 320
     <property name="nodejs_npm_path_reset_for_default_project" value="true" />
314 321
     <property name="project.structure.last.edited" value="Project" />
315
-    <property name="project.structure.proportion" value="0.0" />
322
+    <property name="project.structure.proportion" value="0.15" />
316 323
     <property name="project.structure.side.proportion" value="0.0" />
317 324
     <property name="settings.editor.selected.configurable" value="reference.projectsettings.compiler.javacompiler" />
318 325
   </component>
@@ -336,7 +343,7 @@
336 343
       </list>
337 344
     </option>
338 345
   </component>
339
-  <component name="RunManager" selected="JUnit.ZipCodeWilmingtonTest.testHostLecture">
346
+  <component name="RunManager" selected="JUnit.TestEducator.setGetTimeWorkedout">
340 347
     <configuration name="InstructorsTest" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
341 348
       <module name="interfaces-1" />
342 349
       <extension name="coverage">
@@ -351,7 +358,7 @@
351 358
         <option name="Make" enabled="true" />
352 359
       </method>
353 360
     </configuration>
354
-    <configuration name="StudentsTest" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
361
+    <configuration name="TestEducator.setGetTimeWorkedout" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
355 362
       <module name="interfaces-1" />
356 363
       <extension name="coverage">
357 364
         <pattern>
@@ -360,12 +367,14 @@
360 367
         </pattern>
361 368
       </extension>
362 369
       <option name="PACKAGE_NAME" value="io.zipcoder.interfaces" />
363
-      <option name="MAIN_CLASS_NAME" value="io.zipcoder.interfaces.StudentsTest" />
370
+      <option name="MAIN_CLASS_NAME" value="io.zipcoder.interfaces.TestEducator" />
371
+      <option name="METHOD_NAME" value="setGetTimeWorkedout" />
372
+      <option name="TEST_OBJECT" value="method" />
364 373
       <method v="2">
365 374
         <option name="Make" enabled="true" />
366 375
       </method>
367 376
     </configuration>
368
-    <configuration name="StudentsTest.testInitializationSetupStudents" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
377
+    <configuration name="TestEducator.testImplementation" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
369 378
       <module name="interfaces-1" />
370 379
       <extension name="coverage">
371 380
         <pattern>
@@ -374,14 +383,14 @@
374 383
         </pattern>
375 384
       </extension>
376 385
       <option name="PACKAGE_NAME" value="io.zipcoder.interfaces" />
377
-      <option name="MAIN_CLASS_NAME" value="io.zipcoder.interfaces.StudentsTest" />
378
-      <option name="METHOD_NAME" value="testInitializationSetupStudents" />
386
+      <option name="MAIN_CLASS_NAME" value="io.zipcoder.interfaces.TestEducator" />
387
+      <option name="METHOD_NAME" value="testImplementation" />
379 388
       <option name="TEST_OBJECT" value="method" />
380 389
       <method v="2">
381 390
         <option name="Make" enabled="true" />
382 391
       </method>
383 392
     </configuration>
384
-    <configuration name="StudentsTest.testSingletonInstance" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
393
+    <configuration name="TestEducator.testLecture" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
385 394
       <module name="interfaces-1" />
386 395
       <extension name="coverage">
387 396
         <pattern>
@@ -390,14 +399,14 @@
390 399
         </pattern>
391 400
       </extension>
392 401
       <option name="PACKAGE_NAME" value="io.zipcoder.interfaces" />
393
-      <option name="MAIN_CLASS_NAME" value="io.zipcoder.interfaces.StudentsTest" />
394
-      <option name="METHOD_NAME" value="testSingletonInstance" />
402
+      <option name="MAIN_CLASS_NAME" value="io.zipcoder.interfaces.TestEducator" />
403
+      <option name="METHOD_NAME" value="testLecture" />
395 404
       <option name="TEST_OBJECT" value="method" />
396 405
       <method v="2">
397 406
         <option name="Make" enabled="true" />
398 407
       </method>
399 408
     </configuration>
400
-    <configuration name="ZipCodeWilmingtonTest.testHostLecture" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
409
+    <configuration name="TestEducator.testTeach" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
401 410
       <module name="interfaces-1" />
402 411
       <extension name="coverage">
403 412
         <pattern>
@@ -406,27 +415,27 @@
406 415
         </pattern>
407 416
       </extension>
408 417
       <option name="PACKAGE_NAME" value="io.zipcoder.interfaces" />
409
-      <option name="MAIN_CLASS_NAME" value="io.zipcoder.interfaces.ZipCodeWilmingtonTest" />
410
-      <option name="METHOD_NAME" value="testHostLecture" />
418
+      <option name="MAIN_CLASS_NAME" value="io.zipcoder.interfaces.TestEducator" />
419
+      <option name="METHOD_NAME" value="testTeach" />
411 420
       <option name="TEST_OBJECT" value="method" />
412 421
       <method v="2">
413 422
         <option name="Make" enabled="true" />
414 423
       </method>
415 424
     </configuration>
416 425
     <list>
417
-      <item itemvalue="JUnit.StudentsTest.testSingletonInstance" />
418
-      <item itemvalue="JUnit.StudentsTest" />
419
-      <item itemvalue="JUnit.StudentsTest.testInitializationSetupStudents" />
420 426
       <item itemvalue="JUnit.InstructorsTest" />
421
-      <item itemvalue="JUnit.ZipCodeWilmingtonTest.testHostLecture" />
427
+      <item itemvalue="JUnit.TestEducator.testImplementation" />
428
+      <item itemvalue="JUnit.TestEducator.testTeach" />
429
+      <item itemvalue="JUnit.TestEducator.testLecture" />
430
+      <item itemvalue="JUnit.TestEducator.setGetTimeWorkedout" />
422 431
     </list>
423 432
     <recent_temporary>
424 433
       <list>
425
-        <item itemvalue="JUnit.ZipCodeWilmingtonTest.testHostLecture" />
434
+        <item itemvalue="JUnit.TestEducator.setGetTimeWorkedout" />
435
+        <item itemvalue="JUnit.TestEducator.testLecture" />
436
+        <item itemvalue="JUnit.TestEducator.testTeach" />
437
+        <item itemvalue="JUnit.TestEducator.testImplementation" />
426 438
         <item itemvalue="JUnit.InstructorsTest" />
427
-        <item itemvalue="JUnit.StudentsTest.testInitializationSetupStudents" />
428
-        <item itemvalue="JUnit.StudentsTest.testSingletonInstance" />
429
-        <item itemvalue="JUnit.StudentsTest" />
430 439
       </list>
431 440
     </recent_temporary>
432 441
   </component>
@@ -443,50 +452,61 @@
443 452
       <workItem from="1541270014828" duration="11000" />
444 453
       <workItem from="1541270109939" duration="23000" />
445 454
       <workItem from="1541270169117" duration="8035000" />
446
-      <workItem from="1541289104921" duration="9133000" />
455
+      <workItem from="1541289104921" duration="9456000" />
456
+      <workItem from="1541424585540" duration="225000" />
457
+      <workItem from="1541461683103" duration="18492000" />
447 458
     </task>
448 459
     <servers />
449 460
   </component>
450 461
   <component name="TestHistory">
451
-    <history-entry file="PeopleTest_testFindById - 2018.11.03 at 16h 34m 14s.xml">
452
-      <configuration name="PeopleTest.testFindById" configurationId="JUnit" />
462
+    <history-entry file="PeopleTest - 2018.11.06 at 22h 04m 06s.xml">
463
+      <configuration name="PeopleTest" configurationId="JUnit" />
453 464
     </history-entry>
454
-    <history-entry file="PeopleTest_testGetArray - 2018.11.03 at 16h 53m 49s.xml">
455
-      <configuration name="PeopleTest.testGetArray" configurationId="JUnit" />
465
+    <history-entry file="PeopleTest - 2018.11.06 at 22h 05m 12s.xml">
466
+      <configuration name="PeopleTest" configurationId="JUnit" />
456 467
     </history-entry>
457
-    <history-entry file="PeopleTest_testRemoveAll - 2018.11.03 at 16h 57m 53s.xml">
458
-      <configuration name="PeopleTest.testRemoveAll" configurationId="JUnit" />
468
+    <history-entry file="PeopleTest - 2018.11.06 at 22h 12m 39s.xml">
469
+      <configuration name="PeopleTest" configurationId="JUnit" />
459 470
     </history-entry>
460
-    <history-entry file="StudentsTest_testSingletonInstance - 2018.11.03 at 21h 24m 50s.xml">
461
-      <configuration name="StudentsTest.testSingletonInstance" configurationId="JUnit" />
462
-    </history-entry>
463
-    <history-entry file="StudentsTest - 2018.11.03 at 21h 28m 03s.xml">
471
+    <history-entry file="StudentsTest - 2018.11.06 at 22h 19m 04s.xml">
464 472
       <configuration name="StudentsTest" configurationId="JUnit" />
465 473
     </history-entry>
466
-    <history-entry file="StudentsTest - 2018.11.03 at 21h 28m 35s.xml">
467
-      <configuration name="StudentsTest" configurationId="JUnit" />
474
+    <history-entry file="InstructorsTest - 2018.11.06 at 22h 19m 22s.xml">
475
+      <configuration name="InstructorsTest" configurationId="JUnit" />
468 476
     </history-entry>
469
-    <history-entry file="StudentsTest_testSingletonInstance - 2018.11.03 at 21h 34m 14s.xml">
470
-      <configuration name="StudentsTest.testSingletonInstance" configurationId="JUnit" />
477
+    <history-entry file="ZipCodeWilmingtonTest - 2018.11.06 at 22h 19m 31s.xml">
478
+      <configuration name="ZipCodeWilmingtonTest" configurationId="JUnit" />
471 479
     </history-entry>
472
-    <history-entry file="StudentsTest_testInitializationSetupStudents - 2018.11.03 at 21h 55m 38s.xml">
473
-      <configuration name="StudentsTest.testInitializationSetupStudents" configurationId="JUnit" />
480
+    <history-entry file="InstructorsTest - 2018.11.06 at 22h 41m 55s.xml">
481
+      <configuration name="InstructorsTest" configurationId="JUnit" />
474 482
     </history-entry>
475
-    <history-entry file="InstructorsTest - 2018.11.03 at 22h 02m 25s.xml">
483
+    <history-entry file="InstructorsTest - 2018.11.06 at 22h 47m 39s.xml">
476 484
       <configuration name="InstructorsTest" configurationId="JUnit" />
477 485
     </history-entry>
478
-    <history-entry file="ZipCodeWilmingtonTest_testHostLecture - 2018.11.03 at 22h 58m 17s.xml">
479
-      <configuration name="ZipCodeWilmingtonTest.testHostLecture" configurationId="JUnit" />
486
+    <history-entry file="TestEducator_testImplementation - 2018.11.06 at 22h 56m 41s.xml">
487
+      <configuration name="TestEducator.testImplementation" configurationId="JUnit" />
488
+    </history-entry>
489
+    <history-entry file="TestEducator_testTeach - 2018.11.06 at 22h 59m 15s.xml">
490
+      <configuration name="TestEducator.testTeach" configurationId="JUnit" />
480 491
     </history-entry>
481 492
   </component>
482 493
   <component name="TimeTrackingManager">
483
-    <option name="totallyTimeSpent" value="17202000" />
494
+    <option name="totallyTimeSpent" value="36242000" />
495
+  </component>
496
+  <component name="TodoView">
497
+    <todo-panel id="selected-file">
498
+      <is-autoscroll-to-source value="true" />
499
+    </todo-panel>
500
+    <todo-panel id="all">
501
+      <are-packages-shown value="true" />
502
+      <is-autoscroll-to-source value="true" />
503
+    </todo-panel>
484 504
   </component>
485 505
   <component name="ToolWindowManager">
486
-    <frame x="0" y="23" width="1280" height="709" extended-state="6" />
506
+    <frame x="0" y="23" width="1280" height="709" extended-state="0" />
487 507
     <editor active="true" />
488 508
     <layout>
489
-      <window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.25767368" />
509
+      <window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.10016155" />
490 510
       <window_info id="Structure" order="1" side_tool="true" weight="0.25" />
491 511
       <window_info id="Image Layers" order="2" />
492 512
       <window_info id="Designer" order="3" />
@@ -495,14 +515,14 @@
495 515
       <window_info id="Favorites" order="6" side_tool="true" />
496 516
       <window_info anchor="bottom" id="Message" order="0" />
497 517
       <window_info anchor="bottom" id="Find" order="1" />
498
-      <window_info active="true" anchor="bottom" id="Run" order="2" visible="true" weight="0.32901135" />
518
+      <window_info active="true" anchor="bottom" id="Run" order="2" sideWeight="0.49919224" visible="true" weight="0.32901135" />
499 519
       <window_info anchor="bottom" id="Debug" order="3" weight="0.3987034" />
500 520
       <window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
501 521
       <window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
502
-      <window_info anchor="bottom" id="TODO" order="6" />
522
+      <window_info anchor="bottom" id="TODO" order="6" sideWeight="0.49919224" weight="0.32901135" />
503 523
       <window_info anchor="bottom" id="Database Changes" order="7" show_stripe_button="false" />
504
-      <window_info anchor="bottom" id="Terminal" order="8" weight="0.32901135" />
505
-      <window_info anchor="bottom" id="Event Log" order="9" side_tool="true" />
524
+      <window_info anchor="bottom" id="Terminal" order="8" sideWeight="0.4983845" weight="0.32901135" />
525
+      <window_info anchor="bottom" id="Event Log" order="9" sideWeight="0.5016155" side_tool="true" weight="0.32901135" />
506 526
       <window_info anchor="bottom" id="Version Control" order="10" show_stripe_button="false" />
507 527
       <window_info anchor="bottom" id="Messages" order="11" weight="0.32901135" />
508 528
       <window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
@@ -516,7 +536,7 @@
516 536
       <window_info anchor="right" id="Maven Projects" order="8" />
517 537
     </layout>
518 538
     <layout-to-restore>
519
-      <window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.25767368" />
539
+      <window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.12520194" />
520 540
       <window_info id="Structure" order="1" side_tool="true" weight="0.25" />
521 541
       <window_info id="Image Layers" order="2" />
522 542
       <window_info id="Designer" order="3" />
@@ -525,14 +545,14 @@
525 545
       <window_info id="Favorites" order="6" side_tool="true" />
526 546
       <window_info anchor="bottom" id="Message" order="0" />
527 547
       <window_info anchor="bottom" id="Find" order="1" />
528
-      <window_info active="true" anchor="bottom" id="Run" order="2" visible="true" weight="0.32901135" />
548
+      <window_info active="true" anchor="bottom" id="Run" order="2" sideWeight="0.49919224" visible="true" weight="0.32901135" />
529 549
       <window_info anchor="bottom" id="Debug" order="3" weight="0.3987034" />
530 550
       <window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
531 551
       <window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
532
-      <window_info anchor="bottom" id="TODO" order="6" />
552
+      <window_info anchor="bottom" id="TODO" order="6" sideWeight="0.49919224" weight="0.32901135" />
533 553
       <window_info anchor="bottom" id="Database Changes" order="7" show_stripe_button="false" />
534
-      <window_info anchor="bottom" id="Terminal" order="8" weight="0.32901135" />
535
-      <window_info anchor="bottom" id="Event Log" order="9" side_tool="true" />
554
+      <window_info anchor="bottom" id="Terminal" order="8" sideWeight="0.4983845" weight="0.32901135" />
555
+      <window_info anchor="bottom" id="Event Log" order="9" sideWeight="0.5016155" side_tool="true" weight="0.32901135" />
536 556
       <window_info anchor="bottom" id="Version Control" order="10" show_stripe_button="false" />
537 557
       <window_info anchor="bottom" id="Messages" order="11" weight="0.32901135" />
538 558
       <window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
@@ -564,11 +584,6 @@
564 584
       <provider selected="true" editor-type-id="text-editor">
565 585
         <state relative-caret-position="60">
566 586
           <caret line="4" column="22" selection-start-line="2" selection-end-line="4" selection-end-column="22" />
567
-          <folding>
568
-            <element signature="imports" expanded="true" />
569
-            <element signature="e#187#188#0" expanded="true" />
570
-            <element signature="e#223#224#0" expanded="true" />
571
-          </folding>
572 587
         </state>
573 588
       </provider>
574 589
     </entry>
@@ -579,13 +594,15 @@
579 594
         </state>
580 595
       </provider>
581 596
     </entry>
582
-    <entry file="file://$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Person.java">
597
+    <entry file="file://$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/TestStudent.java">
583 598
       <provider selected="true" editor-type-id="text-editor">
584
-        <state relative-caret-position="120">
585
-          <caret line="12" column="5" selection-start-line="12" selection-start-column="5" selection-end-line="12" selection-end-column="5" />
599
+        <state relative-caret-position="360">
600
+          <caret line="26" column="17" selection-start-line="26" selection-start-column="17" selection-end-line="26" selection-end-column="17" />
586 601
         </state>
587 602
       </provider>
588 603
     </entry>
604
+    <entry file="file://$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/ZipcodeTes.java" />
605
+    <entry file="file://$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/ZipcodeTest.java" />
589 606
     <entry file="file://$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Teacher.java">
590 607
       <provider selected="true" editor-type-id="text-editor">
591 608
         <state relative-caret-position="60">
@@ -593,48 +610,43 @@
593 610
         </state>
594 611
       </provider>
595 612
     </entry>
596
-    <entry file="file://$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/InstructorTest.java">
613
+    <entry file="file://$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Person.java">
597 614
       <provider selected="true" editor-type-id="text-editor">
598
-        <state relative-caret-position="600">
599
-          <caret line="42" column="43" selection-start-line="42" selection-start-column="43" selection-end-line="42" selection-end-column="43" />
600
-          <folding>
601
-            <element signature="imports" expanded="true" />
602
-          </folding>
615
+        <state relative-caret-position="45">
616
+          <caret line="3" column="12" selection-start-line="3" selection-start-column="12" selection-end-line="3" selection-end-column="12" />
603 617
         </state>
604 618
       </provider>
605 619
     </entry>
606
-    <entry file="file://$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/People.java">
620
+    <entry file="file://$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Instructor.java">
607 621
       <provider selected="true" editor-type-id="text-editor">
608
-        <state relative-caret-position="915">
609
-          <caret line="63" column="50" selection-start-line="63" selection-start-column="50" selection-end-line="63" selection-end-column="50" />
610
-          <folding>
611
-            <element signature="e#139#140#0" expanded="true" />
612
-            <element signature="e#191#192#0" expanded="true" />
613
-            <element signature="e#230#231#0" expanded="true" />
614
-            <element signature="e#268#269#0" expanded="true" />
615
-            <element signature="e#1219#1220#0" expanded="true" />
616
-            <element signature="e#1276#1277#0" expanded="true" />
617
-          </folding>
622
+        <state relative-caret-position="165">
623
+          <caret line="11" column="24" lean-forward="true" selection-start-line="11" selection-start-column="24" selection-end-line="11" selection-end-column="24" />
618 624
         </state>
619 625
       </provider>
620 626
     </entry>
621
-    <entry file="file://$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/TestStudent.java">
627
+    <entry file="file://$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Student.java">
622 628
       <provider selected="true" editor-type-id="text-editor">
623
-        <state relative-caret-position="360">
624
-          <caret line="26" column="17" selection-start-line="26" selection-start-column="17" selection-end-line="26" selection-end-column="17" />
629
+        <state relative-caret-position="345">
630
+          <caret line="27" column="55" selection-start-line="27" selection-start-column="55" selection-end-line="27" selection-end-column="55" />
625 631
           <folding>
626
-            <element signature="imports" expanded="true" />
632
+            <element signature="e#191#192#0" expanded="true" />
633
+            <element signature="e#225#226#0" expanded="true" />
634
+            <element signature="e#654#655#0" expanded="true" />
627 635
           </folding>
628 636
         </state>
629 637
       </provider>
630 638
     </entry>
631 639
     <entry file="file://$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/PeopleTest.java">
632 640
       <provider selected="true" editor-type-id="text-editor">
633
-        <state relative-caret-position="247">
634
-          <caret line="77" column="5" selection-start-line="77" selection-start-column="5" selection-end-line="77" selection-end-column="5" />
635
-          <folding>
636
-            <element signature="imports" expanded="true" />
637
-          </folding>
641
+        <state relative-caret-position="60">
642
+          <caret line="4" column="22" lean-forward="true" selection-start-line="4" selection-start-column="22" selection-end-line="4" selection-end-column="22" />
643
+        </state>
644
+      </provider>
645
+    </entry>
646
+    <entry file="file://$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Students.java">
647
+      <provider selected="true" editor-type-id="text-editor">
648
+        <state relative-caret-position="60">
649
+          <caret line="4" column="51" selection-start-line="4" selection-start-column="51" selection-end-line="4" selection-end-column="51" />
638 650
         </state>
639 651
       </provider>
640 652
     </entry>
@@ -648,81 +660,85 @@
648 660
         </state>
649 661
       </provider>
650 662
     </entry>
651
-    <entry file="file://$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Student.java">
663
+    <entry file="file://$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/ZipCodeWilmingtonTest.java">
652 664
       <provider selected="true" editor-type-id="text-editor">
653
-        <state>
654
-          <caret column="31" lean-forward="true" selection-start-column="31" selection-end-column="31" />
665
+        <state relative-caret-position="210">
666
+          <caret line="14" column="13" lean-forward="true" selection-start-line="14" selection-start-column="13" selection-end-line="14" selection-end-column="13" />
655 667
           <folding>
656
-            <element signature="e#145#146#0" expanded="true" />
657
-            <element signature="e#179#180#0" expanded="true" />
668
+            <element signature="imports" expanded="true" />
658 669
           </folding>
659 670
         </state>
660 671
       </provider>
661 672
     </entry>
662
-    <entry file="file://$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/InstructorsTest.java">
673
+    <entry file="file://$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Instructors.java">
663 674
       <provider selected="true" editor-type-id="text-editor">
664
-        <state relative-caret-position="135">
665
-          <caret line="9" column="14" lean-forward="true" selection-start-line="9" selection-start-column="14" selection-end-line="9" selection-end-column="14" />
666
-          <folding>
667
-            <element signature="imports" expanded="true" />
668
-          </folding>
675
+        <state relative-caret-position="150">
676
+          <caret line="10" column="37" lean-forward="true" selection-start-line="10" selection-start-column="37" selection-end-line="10" selection-end-column="37" />
669 677
         </state>
670 678
       </provider>
671 679
     </entry>
672
-    <entry file="file://$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Students.java">
673
-      <provider selected="true" editor-type-id="text-editor">
674
-        <state relative-caret-position="435">
675
-          <caret line="65" column="24" lean-forward="true" selection-start-line="61" selection-start-column="7" selection-end-line="65" selection-end-column="24" />
680
+    <entry file="file://$PROJECT_DIR$/README.md">
681
+      <provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
682
+        <state split_layout="SPLIT">
683
+          <first_editor relative-caret-position="379">
684
+            <caret line="170" lean-forward="true" selection-start-line="170" selection-end-line="170" />
685
+          </first_editor>
686
+          <second_editor />
676 687
         </state>
677 688
       </provider>
678 689
     </entry>
679
-    <entry file="file://$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/ZipcodeTes.java">
690
+    <entry file="file://$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/ZipCodeWilmington.java">
680 691
       <provider selected="true" editor-type-id="text-editor">
681
-        <state relative-caret-position="30">
682
-          <caret line="2" column="25" lean-forward="true" selection-start-line="2" selection-start-column="25" selection-end-line="2" selection-end-column="25" />
692
+        <state relative-caret-position="315">
693
+          <caret line="23" column="49" selection-start-line="23" selection-start-column="49" selection-end-line="23" selection-end-column="49" />
683 694
         </state>
684 695
       </provider>
685 696
     </entry>
686
-    <entry file="file://$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/ZipcodeTest.java">
697
+    <entry file="file://$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/People.java">
687 698
       <provider selected="true" editor-type-id="text-editor">
688
-        <state relative-caret-position="60">
689
-          <caret line="4" column="4" selection-start-line="4" selection-start-column="4" selection-end-line="4" selection-end-column="4" />
699
+        <state relative-caret-position="233">
700
+          <caret line="76" column="19" selection-start-line="76" selection-start-column="19" selection-end-line="76" selection-end-column="19" />
690 701
         </state>
691 702
       </provider>
692 703
     </entry>
693
-    <entry file="file://$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Instructor.java">
704
+    <entry file="file://$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/InstructorsTest.java">
694 705
       <provider selected="true" editor-type-id="text-editor">
695
-        <state relative-caret-position="270">
696
-          <caret line="20" column="62" selection-start-line="20" selection-start-column="62" selection-end-line="20" selection-end-column="62" />
706
+        <state relative-caret-position="165">
707
+          <caret line="12" column="5" lean-forward="true" selection-start-line="12" selection-start-column="5" selection-end-line="12" selection-end-column="5" />
697 708
         </state>
698 709
       </provider>
699 710
     </entry>
700
-    <entry file="file://$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Instructors.java">
711
+    <entry file="file://$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Educator.java">
701 712
       <provider selected="true" editor-type-id="text-editor">
702
-        <state relative-caret-position="210">
703
-          <caret line="15" column="49" lean-forward="true" selection-start-line="15" selection-start-column="49" selection-end-line="15" selection-end-column="49" />
713
+        <state relative-caret-position="666">
714
+          <caret line="45" column="5" lean-forward="true" selection-start-line="45" selection-start-column="5" selection-end-line="45" selection-end-column="5" />
704 715
           <folding>
705
-            <element signature="e#268#269#0" expanded="true" />
706
-            <element signature="e#298#299#0" expanded="true" />
716
+            <element signature="e#629#630#0" expanded="true" />
717
+            <element signature="e#662#663#0" expanded="true" />
718
+            <element signature="e#714#715#0" expanded="true" />
719
+            <element signature="e#758#759#0" expanded="true" />
720
+            <element signature="e#1119#1120#0" expanded="true" />
721
+            <element signature="e#1144#1145#0" expanded="true" />
722
+            <element signature="e#1175#1176#0" expanded="true" />
723
+            <element signature="e#1202#1203#0" expanded="true" />
707 724
           </folding>
708 725
         </state>
709 726
       </provider>
710 727
     </entry>
711
-    <entry file="file://$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/ZipCodeWilmington.java">
728
+    <entry file="file://$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/InstructorTest.java">
712 729
       <provider selected="true" editor-type-id="text-editor">
713
-        <state relative-caret-position="232">
714
-          <caret line="26" column="5" lean-forward="true" selection-start-line="26" selection-start-column="5" selection-end-line="26" selection-end-column="5" />
730
+        <state relative-caret-position="269">
731
+          <caret line="46" column="46" lean-forward="true" selection-start-line="37" selection-start-column="8" selection-end-line="46" selection-end-column="46" />
715 732
           <folding>
716
-            <element signature="e#312#313#0" expanded="true" />
717
-            <element signature="e#342#343#0" expanded="true" />
733
+            <element signature="imports" expanded="true" />
718 734
           </folding>
719 735
         </state>
720 736
       </provider>
721 737
     </entry>
722
-    <entry file="file://$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/ZipCodeWilmingtonTest.java">
738
+    <entry file="file://$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/TestEducator.java">
723 739
       <provider selected="true" editor-type-id="text-editor">
724
-        <state relative-caret-position="172">
725
-          <caret line="13" column="44" lean-forward="true" selection-start-line="13" selection-start-column="44" selection-end-line="13" selection-end-column="44" />
740
+        <state relative-caret-position="215">
741
+          <caret line="33" column="16" selection-start-line="33" selection-start-column="16" selection-end-line="33" selection-end-column="16" />
726 742
           <folding>
727 743
             <element signature="imports" expanded="true" />
728 744
           </folding>

+ 1
- 1
README.md 查看文件

@@ -147,7 +147,7 @@
147 147
 ### Part 10.3 - Refactor `ZipCodeWilmington` class
148 148
 * Refactor the `hostLecture` method in the `ZipCodeWilmington` class by removing any intermediate _casting trick(s)_.
149 149
 
150
--
150
+-E[] array = (E[]) Array.newInstance(Student[].class.getComponentType(), list.size());
151 151
 ### Part 10.4 - Test refactored classes.
152 152
 * Ensure that the `StudentsTest`, `InstructorsTest`, `PeopleTest`, `ZipCodeWilmingtonTest` classes were not affected by the refactor.
153 153
 

+ 51
- 0
src/main/java/io/zipcoder/interfaces/Educator.java 查看文件

@@ -0,0 +1,51 @@
1
+package io.zipcoder.interfaces;
2
+
3
+public enum Educator implements Teacher{
4
+        KRIS(40,"Kris Younger"),
5
+        FROILAN(41, "Froilan"),
6
+        DOLIO(42, "Dolio"),
7
+        LEON(43, "Leon"),
8
+        WILLHEM(44, "Willhem"),
9
+        NHYU(45, "Nhyu");
10
+
11
+    private int id;
12
+    private String name;
13
+    private double timeWorked;
14
+
15
+    Educator(int id, String name){
16
+        this.id = id;
17
+        this.name = name;
18
+        this.timeWorked = 0;
19
+    }
20
+
21
+    public void teach(Learner learner, double numberOfHours) {
22
+        learner.learn(numberOfHours);
23
+        setTimeWorked(getTimeWorked() + numberOfHours);
24
+    }
25
+
26
+    public void lecture(Learner[] learners, double numberOfHours) {
27
+
28
+        for (Learner learner : learners) {
29
+            double numberOfHoursPerLearner = (numberOfHours / learners.length);
30
+            learner.learn(numberOfHoursPerLearner);
31
+        }
32
+        setTimeWorked(getTimeWorked() + numberOfHours);
33
+
34
+    }
35
+
36
+    public double getTimeWorked() {
37
+        return timeWorked;
38
+    }
39
+
40
+    public void setTimeWorked(double timeWorked) {
41
+        this.timeWorked = timeWorked;
42
+    }
43
+
44
+    public int getId() {
45
+        return id;
46
+    }
47
+
48
+    public String getName() {
49
+        return name;
50
+    }
51
+}

+ 5
- 4
src/main/java/io/zipcoder/interfaces/Instructor.java 查看文件

@@ -2,15 +2,16 @@ package io.zipcoder.interfaces;
2 2
 
3 3
 public class Instructor extends Person implements Teacher {
4 4
 
5
-    private int id;
5
+    private long id;
6 6
 
7 7
     public Instructor() {
8 8
 
9 9
     }
10 10
 
11
-    public Instructor(int id, String name) {
12
-        this.id = id;
13
-        this.name = name;
11
+    public Instructor(long id, String name) {
12
+        super(id, name);
13
+//        this.id = id;
14
+//        this.name = name;
14 15
     }
15 16
 
16 17
     public void teach(Learner learner, double numberOfHours) {

+ 1
- 1
src/main/java/io/zipcoder/interfaces/Instructors.java 查看文件

@@ -2,7 +2,7 @@ package io.zipcoder.interfaces;
2 2
 
3 3
 import java.util.ArrayList;
4 4
 
5
-public final class Instructors {
5
+public final class Instructors extends People<Instructor>{
6 6
 
7 7
     private static final Instructors instance;
8 8
     private ArrayList<Instructor> instructorsList;

+ 27
- 11
src/main/java/io/zipcoder/interfaces/People.java 查看文件

@@ -2,24 +2,25 @@ package io.zipcoder.interfaces;
2 2
 
3 3
 import java.util.ArrayList;
4 4
 
5
-public class People {
6
-    ArrayList<Person> personList;
5
+public abstract class People <E extends Person>{
6
+
7
+    ArrayList<E> personList;
7 8
 
8 9
     public People() {
9
-        personList = new ArrayList<Person>();
10
+        personList = new ArrayList<E>();
10 11
     }
11 12
 
12 13
 
13
-    public void add(Person person) {
14
+    public void add(E person) {
14 15
         personList.add(person);
15 16
     }
16 17
 
17
-    public ArrayList<Person> getPersonList() {
18
+    public ArrayList<E> getPersonList() {
18 19
         return this.personList;
19 20
     }
20 21
 
21 22
     public void remove(Person person) {
22
-        for(Person p : personList){
23
+        for(E p : personList){
23 24
             if(!p.equals(person))
24 25
             {
25 26
             }
@@ -29,8 +30,8 @@ public class People {
29 30
 
30 31
     public void removeById(long id){
31 32
 
32
-        Person person = null;
33
-        for(Person p : personList){
33
+        E person = null;
34
+        for(E p : personList){
34 35
             person = p;
35 36
             if(p.getId() != id)
36 37
             {
@@ -43,6 +44,7 @@ public class People {
43 44
     public Person findById(int id) {
44 45
 
45 46
         for(Person p : personList){
47
+
46 48
             if(p.getId() == id)
47 49
             {
48 50
                 return p;
@@ -52,15 +54,29 @@ public class People {
52 54
     }
53 55
 
54 56
 
55
-    public Person[] getArray() {
57
+    public abstract E[] getArray(); /*{
56 58
         Person[] people = new Person[20];
57 59
         for(int i =0;i<personList.size();i++){
58 60
             people[i]= personList.get(i);
59 61
         }
60 62
         return people;
61
-    }
63
+    }*/
62 64
 
63 65
     public void removeAll() {
64
-        this.personList = new ArrayList<Person>();
66
+        this.personList = new ArrayList<E>();
65 67
     }
68
+
69
+    public static class subClass extends People{
70
+
71
+
72
+        public Person[] getArray() {
73
+            Person[] people = new Person[20];
74
+            for(int i =0;i<personList.size();i++){
75
+                people[i]= (Person)personList.get(i);
76
+            }
77
+            return people;
78
+
79
+        }
80
+    }
81
+
66 82
 }

+ 8
- 3
src/main/java/io/zipcoder/interfaces/Person.java 查看文件

@@ -1,11 +1,16 @@
1 1
 package io.zipcoder.interfaces;
2 2
 
3 3
 public class Person {
4
-    private static long id = 0;
4
+    private long id;
5 5
     String name;
6 6
 
7
-    public Person() {
8
-        this.id += 1;
7
+    public Person(){
8
+
9
+    }
10
+
11
+    public Person(long id, String name) {
12
+        this.id = id;
13
+        this.name = name;
9 14
     }
10 15
 
11 16
     public long getId() {

+ 7
- 2
src/main/java/io/zipcoder/interfaces/Student.java 查看文件

@@ -3,16 +3,17 @@ package io.zipcoder.interfaces;
3 3
 public class Student extends Person implements Learner {
4 4
 
5 5
     private int totalStudyTime;
6
-    private int id;
6
+    private long id;
7 7
     private String name;
8 8
 
9 9
     public Student() {
10 10
         totalStudyTime = 0;
11 11
     }
12 12
 
13
-    public Student(int id, String name) {
13
+    public Student(long id, String name) {
14 14
         this.id = id;
15 15
         this.name = name;
16
+        totalStudyTime = 0;
16 17
     }
17 18
 
18 19
     public void learn(double numberOfHours) {
@@ -24,6 +25,10 @@ public class Student extends Person implements Learner {
24 25
         return this.totalStudyTime + hours;
25 26
     }
26 27
 
28
+    public void setTotalStudyTime(int totalStudyTime) {
29
+        this.totalStudyTime = totalStudyTime;
30
+    }
31
+
27 32
     public int getTotalStudyTime() {
28 33
         return this.totalStudyTime;
29 34
     }

+ 1
- 1
src/main/java/io/zipcoder/interfaces/Students.java 查看文件

@@ -2,7 +2,7 @@ package io.zipcoder.interfaces;
2 2
 
3 3
 import java.util.ArrayList;
4 4
 
5
-public final class Students {
5
+public final class Students extends People<Student>{
6 6
 
7 7
     private static final Students instance;
8 8
     private ArrayList<Student> studentList;

+ 14
- 0
src/main/java/io/zipcoder/interfaces/ZipCodeWilmington.java 查看文件

@@ -26,4 +26,18 @@ public final class ZipCodeWilmington {
26 26
         teacher.lecture(studentsArr, numberOfHours);
27 27
     }
28 28
 
29
+    public void hostLecture(long id, double numberOfHours){
30
+
31
+        Instructor[] instructorArr = instructors.getArray();
32
+
33
+        for(Instructor instructor : instructorArr){
34
+            System.out.println(instructor.getId());
35
+            System.out.println(instructor.getName());
36
+            if(instructor.getId() == id)
37
+            {
38
+                instructor.lecture(students.getArray(), numberOfHours);
39
+            }
40
+        }
41
+
42
+    }
29 43
 }

+ 8
- 7
src/test/java/io/zipcoder/interfaces/PeopleTest.java 查看文件

@@ -1,5 +1,6 @@
1 1
 package io.zipcoder.interfaces;
2 2
 
3
+import io.zipcoder.interfaces.People.subClass;
3 4
 import org.junit.Assert;
4 5
 import org.junit.Test;
5 6
 
@@ -9,7 +10,7 @@ public class PeopleTest {
9 10
 
10 11
     @Test
11 12
     public void testAdd(){
12
-        People people = new People();
13
+        People people = new subClass();
13 14
         Person person = new Person();
14 15
         people.add(person);
15 16
         ArrayList<Person> personList = people.getPersonList();
@@ -20,7 +21,7 @@ public class PeopleTest {
20 21
     @Test
21 22
     public void testRemoveByPerson(){
22 23
         Person person = new Person();
23
-        People people = new People();
24
+        People people = new subClass();
24 25
         people.add(person);
25 26
         people.remove(person);
26 27
 
@@ -30,7 +31,7 @@ public class PeopleTest {
30 31
     @Test
31 32
     public void testRemoveById(){
32 33
         Person person = new Person();
33
-        People people = new People();
34
+        People people = new subClass();
34 35
         people.add(person);
35 36
         people.removeById(1);
36 37
         Assert.assertEquals(0, people.personList.size());
@@ -38,8 +39,8 @@ public class PeopleTest {
38 39
 
39 40
     @Test
40 41
     public void testFindById(){
41
-        Person person = new Person();
42
-        People people = new People();
42
+        Person person = new Person(1,"xyz");
43
+        People people = new subClass();
43 44
         people.add(person);
44 45
         Person actualPerson = people.findById(1);
45 46
         Assert.assertEquals(person, actualPerson);
@@ -50,7 +51,7 @@ public class PeopleTest {
50 51
         boolean expected = true;
51 52
         Person person = new Person();
52 53
         Person person2 = new Person();
53
-        People people = new People();
54
+        People people = new subClass();
54 55
         people.add(person);
55 56
         people.add(person2);
56 57
         boolean actual = true;
@@ -68,7 +69,7 @@ public class PeopleTest {
68 69
     public void testRemoveAll(){
69 70
         Person person = new Person();
70 71
         Person person2 = new Person();
71
-        People people = new People();
72
+        People people = new subClass();
72 73
         people.add(person);
73 74
         people.add(person2);
74 75
 

+ 45
- 0
src/test/java/io/zipcoder/interfaces/TestEducator.java 查看文件

@@ -0,0 +1,45 @@
1
+package io.zipcoder.interfaces;
2
+
3
+import org.junit.Assert;
4
+import org.junit.Test;
5
+
6
+public class TestEducator {
7
+
8
+    @Test
9
+    public void testImplementation(){
10
+        Educator educator = Educator.DOLIO;
11
+
12
+        Assert.assertTrue(educator instanceof Teacher);
13
+    }
14
+    @Test
15
+    public void testTeach(){
16
+        Educator educator = Educator.DOLIO;
17
+        Student student = new Student();
18
+        int expected = 5;
19
+        educator.teach(student, 5);
20
+        int actual = student.getTotalStudyTime();
21
+        Assert.assertEquals(expected, actual);
22
+    }
23
+
24
+    @Test
25
+    public void testLecture(){
26
+        Educator educator = Educator.FROILAN;
27
+        int expected = 2;
28
+        Student student1 = new Student();
29
+        Student student2 = new Student();
30
+        Student student3 = new Student();
31
+
32
+        Learner[] learners = new Student[]{student1,student2,student3};
33
+
34
+        educator.lecture(learners, 6);
35
+        int actual = student1.getTotalStudyTime();
36
+        Assert.assertEquals(expected, actual);
37
+    }
38
+
39
+    @Test
40
+    public void setGetTimeWorkedout(){
41
+        Educator educator = Educator.KRIS;
42
+        educator.setTimeWorked(20.0);
43
+        Assert.assertEquals(20.0, educator.getTimeWorked(),0.5);
44
+    }
45
+}

+ 24
- 2
src/test/java/io/zipcoder/interfaces/ZipCodeWilmingtonTest.java 查看文件

@@ -10,11 +10,33 @@ public class ZipCodeWilmingtonTest {
10 10
             Students students = Students.getInstance();
11 11
             Teacher teacher = new Instructor();
12 12
             ZipCodeWilmington zipcode = ZipCodeWilmington.getInstance();
13
+            for(Student student : students.getArray()){
14
+                student.setTotalStudyTime(0);
15
+            }
13 16
 
14
-            zipcode.hostLecture(teacher, 2);
17
+            zipcode.hostLecture(teacher, 78);
15 18
 
16 19
             Student[] studentsArr = students.getArray();
17
-            Assert.assertTrue(studentsArr[0].getTotalStudyTime() == 2);
20
+            Assert.assertEquals(2,studentsArr[0].getTotalStudyTime());
21
+    }
22
+
23
+    @Test
24
+    public void testHostLecture2(){
25
+
26
+            Students students = Students.getInstance();
27
+            //Teacher teacher = new Instructor();
28
+            ZipCodeWilmington zipcode = ZipCodeWilmington.getInstance();
29
+
30
+
31
+
32
+            Student[] studentsArr = students.getArray();
33
+
34
+            /*for (Student student : studentsArr) {
35
+                System.out.println(student.getTotalStudyTime());
36
+            }*/
37
+
38
+            zipcode.hostLecture(5, 78);
39
+            Assert.assertEquals(2, studentsArr[0].getTotalStudyTime());
18 40
     }
19 41
 
20 42