Leon 7 years ago
parent
commit
f5b539870f

+ 348
- 130
.idea/workspace.xml View File

@@ -2,8 +2,13 @@
2 2
 <project version="4">
3 3
   <component name="ChangeListManager">
4 4
     <list default="true" id="30b7e4a0-b899-49c3-865c-0311dfadae62" name="Default" comment="">
5
-      <change type="DELETED" beforePath="$PROJECT_DIR$/Test Results - TestSuiteFullRegression.html" afterPath="" />
5
+      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/test/java/com/zipcodewilmington/streams/anthropoid/TestPersonWarehouse.java" />
6
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/target/classes/com/zipcodewilmington/streams/anthropoid/PersonWarehouse.class" afterPath="$PROJECT_DIR$/target/classes/com/zipcodewilmington/streams/anthropoid/PersonWarehouse.class" />
6 7
       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
8
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/anthropoid/PersonFactory.java" afterPath="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/anthropoid/PersonFactory.java" />
9
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/anthropoid/PersonWarehouse.java" afterPath="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/anthropoid/PersonWarehouse.java" />
10
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/target/PersonWarehouse.leonlog" afterPath="$PROJECT_DIR$/target/PersonWarehouse.leonlog" />
11
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/target/global.leonlog" afterPath="$PROJECT_DIR$/target/global.leonlog" />
7 12
     </list>
8 13
     <ignored path="$PROJECT_DIR$/out/" />
9 14
     <ignored path="$PROJECT_DIR$/target/" />
@@ -14,6 +19,28 @@
14 19
     <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
15 20
     <option name="LAST_RESOLUTION" value="IGNORE" />
16 21
   </component>
22
+  <component name="DockManager">
23
+    <window id="1">
24
+      <content type="file-editors">
25
+        <state>
26
+          <leaf>
27
+            <file leaf-file-name="TestPersonWarehouse.java" pinned="false" current-in-tab="true">
28
+              <entry file="file://$PROJECT_DIR$/src/test/java/com/zipcodewilmington/streams/anthropoid/TestPersonWarehouse.java">
29
+                <provider selected="true" editor-type-id="text-editor">
30
+                  <state relative-caret-position="485">
31
+                    <caret line="51" column="53" lean-forward="true" selection-start-line="51" selection-start-column="53" selection-end-line="51" selection-end-column="53" />
32
+                    <folding>
33
+                      <element signature="imports" expanded="true" />
34
+                    </folding>
35
+                  </state>
36
+                </provider>
37
+              </entry>
38
+            </file>
39
+          </leaf>
40
+        </state>
41
+      </content>
42
+    </window>
43
+  </component>
17 44
   <component name="ExecutionTargetManager" SELECTED_TARGET="default_target" />
18 45
   <component name="ExportTestResults" outputFolder="$PROJECT_DIR$" openResultsInEditor="true" userTempatePath="" />
19 46
   <component name="FileEditorManager">
@@ -21,33 +48,33 @@
21 48
       <file leaf-file-name="StreamFilter.java" pinned="false" current-in-tab="false">
22 49
         <entry file="file://$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/StreamFilter.java">
23 50
           <provider selected="true" editor-type-id="text-editor">
24
-            <state relative-caret-position="552">
25
-              <caret line="67" column="35" lean-forward="false" selection-start-line="67" selection-start-column="35" selection-end-line="67" selection-end-column="35" />
51
+            <state relative-caret-position="-94">
52
+              <caret line="32" column="0" lean-forward="true" selection-start-line="32" selection-start-column="0" selection-end-line="32" selection-end-column="0" />
26 53
               <folding>
27
-                <element signature="e#3278#3279#0" expanded="true" />
54
+                <element signature="e#690#691#0" expanded="true" />
55
+                <element signature="e#788#789#0" expanded="true" />
56
+                <element signature="e#988#989#0" expanded="true" />
57
+                <element signature="e#1046#1047#0" expanded="true" />
28 58
               </folding>
29 59
             </state>
30 60
           </provider>
31 61
         </entry>
32 62
       </file>
33
-      <file leaf-file-name="TestStreamFilter.java" pinned="false" current-in-tab="false">
34
-        <entry file="file://$PROJECT_DIR$/src/test/java/com/zipcodewilmington/streams/TestStreamFilter.java">
63
+      <file leaf-file-name="TestConstants.java" pinned="false" current-in-tab="false">
64
+        <entry file="file://$PROJECT_DIR$/src/test/java/com/zipcodewilmington/streams/TestConstants.java">
35 65
           <provider selected="true" editor-type-id="text-editor">
36
-            <state relative-caret-position="180">
37
-              <caret line="21" column="33" lean-forward="false" selection-start-line="21" selection-start-column="33" selection-end-line="21" selection-end-column="33" />
38
-              <folding>
39
-                <element signature="e#600#601#0" expanded="true" />
40
-                <element signature="e#649#650#0" expanded="true" />
41
-              </folding>
66
+            <state relative-caret-position="105">
67
+              <caret line="7" column="26" lean-forward="false" selection-start-line="7" selection-start-column="26" selection-end-line="7" selection-end-column="26" />
68
+              <folding />
42 69
             </state>
43 70
           </provider>
44 71
         </entry>
45 72
       </file>
46
-      <file leaf-file-name="TestConstants.java" pinned="false" current-in-tab="false">
47
-        <entry file="file://$PROJECT_DIR$/src/test/java/com/zipcodewilmington/streams/TestConstants.java">
73
+      <file leaf-file-name="TestPersonFactory.java" pinned="false" current-in-tab="false">
74
+        <entry file="file://$PROJECT_DIR$/src/test/java/com/zipcodewilmington/streams/anthropoid/TestPersonFactory.java">
48 75
           <provider selected="true" editor-type-id="text-editor">
49
-            <state relative-caret-position="105">
50
-              <caret line="7" column="26" lean-forward="false" selection-start-line="7" selection-start-column="26" selection-end-line="7" selection-end-column="26" />
76
+            <state relative-caret-position="315">
77
+              <caret line="32" column="12" lean-forward="false" selection-start-line="32" selection-start-column="12" selection-end-line="32" selection-end-column="12" />
51 78
               <folding />
52 79
             </state>
53 80
           </provider>
@@ -88,8 +115,8 @@
88 115
       <file leaf-file-name="PersonFactory.java" pinned="false" current-in-tab="true">
89 116
         <entry file="file://$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/anthropoid/PersonFactory.java">
90 117
           <provider selected="true" editor-type-id="text-editor">
91
-            <state relative-caret-position="465">
92
-              <caret line="37" column="20" lean-forward="true" selection-start-line="37" selection-start-column="20" selection-end-line="37" selection-end-column="20" />
118
+            <state relative-caret-position="250">
119
+              <caret line="23" column="90" lean-forward="false" selection-start-line="23" selection-start-column="90" selection-end-line="23" selection-end-column="90" />
93 120
               <folding />
94 121
             </state>
95 122
           </provider>
@@ -98,11 +125,13 @@
98 125
       <file leaf-file-name="PersonWarehouse.java" pinned="false" current-in-tab="false">
99 126
         <entry file="file://$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/anthropoid/PersonWarehouse.java">
100 127
           <provider selected="true" editor-type-id="text-editor">
101
-            <state relative-caret-position="493">
102
-              <caret line="69" column="0" lean-forward="false" selection-start-line="69" selection-start-column="0" selection-end-line="69" selection-end-column="0" />
128
+            <state relative-caret-position="203">
129
+              <caret line="51" column="33" lean-forward="false" selection-start-line="51" selection-start-column="33" selection-end-line="51" selection-end-column="33" />
103 130
               <folding>
104
-                <element signature="e#2001#2002#0" expanded="true" />
105
-                <element signature="e#2057#2058#0" expanded="true" />
131
+                <element signature="e#2007#2008#0" expanded="true" />
132
+                <element signature="e#2063#2064#0" expanded="true" />
133
+                <element signature="e#3120#3121#0" expanded="true" />
134
+                <element signature="e#3149#3150#0" expanded="true" />
106 135
               </folding>
107 136
             </state>
108 137
           </provider>
@@ -152,6 +181,7 @@
152 181
       <find>.stream</find>
153 182
       <find>.stream()</find>
154 183
       <find>Person</find>
184
+      <find>people.</find>
155 185
     </findStrings>
156 186
     <replaceStrings>
157 187
       <replace>public static</replace>
@@ -161,6 +191,7 @@
161 191
       <replace>private final</replace>
162 192
       <replace>.parallelStream()</replace>
163 193
       <replace>R</replace>
194
+      <replace>getPeople().</replace>
164 195
     </replaceStrings>
165 196
   </component>
166 197
   <component name="Git.Settings">
@@ -174,7 +205,6 @@
174 205
   <component name="IdeDocumentHistory">
175 206
     <option name="CHANGED_PATHS">
176 207
       <list>
177
-        <option value="$PROJECT_DIR$/src/test/java/com/zipcodewilmington/lambdas/exercises/TestListConversion.java" />
178 208
         <option value="$PROJECT_DIR$/src/test/java/com/zipcodewilmington/lambdas/exercises/TestArrayConversion.java" />
179 209
         <option value="$PROJECT_DIR$/src/test/java/com/zipcodewilmington/lambdas/exercises/TestConversionArray.java" />
180 210
         <option value="$PROJECT_DIR$/src/test/java/com/zipcodewilmington/lambdas/exercises/TestConverterArray.java" />
@@ -215,7 +245,6 @@
215 245
         <option value="$PROJECT_DIR$/src/test/java/com/zipcodewilmington/streams/anthropoid/TestPerson.java" />
216 246
         <option value="$PROJECT_DIR$/src/test/java/com/zipcodewilmington/streams/anthropoid/TestPersonFactory.java" />
217 247
         <option value="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/anthropoid/Person.java" />
218
-        <option value="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/anthropoid/PersonFactory.java" />
219 248
         <option value="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/tools/StringUtils.java" />
220 249
         <option value="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/conversions/ArrayConverter.java" />
221 250
         <option value="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/conversions/ListConverter.java" />
@@ -225,6 +254,8 @@
225 254
         <option value="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/tools/DateUtils.java" />
226 255
         <option value="$PROJECT_DIR$/src/test/java/com/zipcodewilmington/streams/conversions/TestConversionAgent.java" />
227 256
         <option value="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/anthropoid/PersonWarehouse.java" />
257
+        <option value="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/anthropoid/PersonFactory.java" />
258
+        <option value="$PROJECT_DIR$/src/test/java/com/zipcodewilmington/streams/anthropoid/TestPersonWarehouse.java" />
228 259
       </list>
229 260
     </option>
230 261
   </component>
@@ -265,6 +296,166 @@
265 296
               <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
266 297
             </PATH_ELEMENT>
267 298
           </PATH>
299
+          <PATH>
300
+            <PATH_ELEMENT>
301
+              <option name="myItemId" value="looptest" />
302
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
303
+            </PATH_ELEMENT>
304
+            <PATH_ELEMENT>
305
+              <option name="myItemId" value="looptest" />
306
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
307
+            </PATH_ELEMENT>
308
+            <PATH_ELEMENT>
309
+              <option name="myItemId" value="src" />
310
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
311
+            </PATH_ELEMENT>
312
+            <PATH_ELEMENT>
313
+              <option name="myItemId" value="test" />
314
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
315
+            </PATH_ELEMENT>
316
+            <PATH_ELEMENT>
317
+              <option name="myItemId" value="java" />
318
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
319
+            </PATH_ELEMENT>
320
+            <PATH_ELEMENT>
321
+              <option name="myItemId" value="streams" />
322
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
323
+            </PATH_ELEMENT>
324
+          </PATH>
325
+          <PATH>
326
+            <PATH_ELEMENT>
327
+              <option name="myItemId" value="looptest" />
328
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
329
+            </PATH_ELEMENT>
330
+            <PATH_ELEMENT>
331
+              <option name="myItemId" value="looptest" />
332
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
333
+            </PATH_ELEMENT>
334
+            <PATH_ELEMENT>
335
+              <option name="myItemId" value="src" />
336
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
337
+            </PATH_ELEMENT>
338
+            <PATH_ELEMENT>
339
+              <option name="myItemId" value="test" />
340
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
341
+            </PATH_ELEMENT>
342
+            <PATH_ELEMENT>
343
+              <option name="myItemId" value="java" />
344
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
345
+            </PATH_ELEMENT>
346
+            <PATH_ELEMENT>
347
+              <option name="myItemId" value="streams" />
348
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
349
+            </PATH_ELEMENT>
350
+            <PATH_ELEMENT>
351
+              <option name="myItemId" value="conversions" />
352
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
353
+            </PATH_ELEMENT>
354
+          </PATH>
355
+          <PATH>
356
+            <PATH_ELEMENT>
357
+              <option name="myItemId" value="looptest" />
358
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
359
+            </PATH_ELEMENT>
360
+            <PATH_ELEMENT>
361
+              <option name="myItemId" value="looptest" />
362
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
363
+            </PATH_ELEMENT>
364
+            <PATH_ELEMENT>
365
+              <option name="myItemId" value="src" />
366
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
367
+            </PATH_ELEMENT>
368
+            <PATH_ELEMENT>
369
+              <option name="myItemId" value="test" />
370
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
371
+            </PATH_ELEMENT>
372
+            <PATH_ELEMENT>
373
+              <option name="myItemId" value="java" />
374
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
375
+            </PATH_ELEMENT>
376
+            <PATH_ELEMENT>
377
+              <option name="myItemId" value="streams" />
378
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
379
+            </PATH_ELEMENT>
380
+            <PATH_ELEMENT>
381
+              <option name="myItemId" value="anthropoid" />
382
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
383
+            </PATH_ELEMENT>
384
+          </PATH>
385
+          <PATH>
386
+            <PATH_ELEMENT>
387
+              <option name="myItemId" value="looptest" />
388
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
389
+            </PATH_ELEMENT>
390
+            <PATH_ELEMENT>
391
+              <option name="myItemId" value="looptest" />
392
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
393
+            </PATH_ELEMENT>
394
+            <PATH_ELEMENT>
395
+              <option name="myItemId" value="src" />
396
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
397
+            </PATH_ELEMENT>
398
+            <PATH_ELEMENT>
399
+              <option name="myItemId" value="main" />
400
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
401
+            </PATH_ELEMENT>
402
+          </PATH>
403
+          <PATH>
404
+            <PATH_ELEMENT>
405
+              <option name="myItemId" value="looptest" />
406
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
407
+            </PATH_ELEMENT>
408
+            <PATH_ELEMENT>
409
+              <option name="myItemId" value="looptest" />
410
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
411
+            </PATH_ELEMENT>
412
+            <PATH_ELEMENT>
413
+              <option name="myItemId" value="src" />
414
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
415
+            </PATH_ELEMENT>
416
+            <PATH_ELEMENT>
417
+              <option name="myItemId" value="main" />
418
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
419
+            </PATH_ELEMENT>
420
+            <PATH_ELEMENT>
421
+              <option name="myItemId" value="java" />
422
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
423
+            </PATH_ELEMENT>
424
+            <PATH_ELEMENT>
425
+              <option name="myItemId" value="streams" />
426
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
427
+            </PATH_ELEMENT>
428
+          </PATH>
429
+          <PATH>
430
+            <PATH_ELEMENT>
431
+              <option name="myItemId" value="looptest" />
432
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
433
+            </PATH_ELEMENT>
434
+            <PATH_ELEMENT>
435
+              <option name="myItemId" value="looptest" />
436
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
437
+            </PATH_ELEMENT>
438
+            <PATH_ELEMENT>
439
+              <option name="myItemId" value="src" />
440
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
441
+            </PATH_ELEMENT>
442
+            <PATH_ELEMENT>
443
+              <option name="myItemId" value="main" />
444
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
445
+            </PATH_ELEMENT>
446
+            <PATH_ELEMENT>
447
+              <option name="myItemId" value="java" />
448
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
449
+            </PATH_ELEMENT>
450
+            <PATH_ELEMENT>
451
+              <option name="myItemId" value="streams" />
452
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
453
+            </PATH_ELEMENT>
454
+            <PATH_ELEMENT>
455
+              <option name="myItemId" value="anthropoid" />
456
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
457
+            </PATH_ELEMENT>
458
+          </PATH>
268 459
         </subPane>
269 460
       </pane>
270 461
     </panes>
@@ -303,7 +494,7 @@
303 494
       </list>
304 495
     </option>
305 496
   </component>
306
-  <component name="RunManager" selected="JUnit.TestSuiteFullRegression">
497
+  <component name="RunManager" selected="JUnit.TestPersonWarehouse">
307 498
     <configuration default="false" name="TestSuiteFullRegression" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
308 499
       <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea">
309 500
         <pattern>
@@ -330,46 +521,40 @@
330 521
       <patterns />
331 522
       <method />
332 523
     </configuration>
333
-    <configuration default="false" name="TestConverterArray.testCount" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
524
+    <configuration default="false" name="TestPerson" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
334 525
       <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea">
335 526
         <pattern>
336 527
           <option name="PATTERN" value="com.zipcodewilmington.streams.anthropoid.*" />
337 528
           <option name="ENABLED" value="true" />
338 529
         </pattern>
339 530
       </extension>
340
-      <module name="looptest" />
531
+      <option name="MAIN_CLASS_NAME" value="com.zipcodewilmington.streams.anthropoid.TestPerson" />
532
+      <option name="VM_PARAMETERS" />
533
+      <option name="PROGRAM_PARAMETERS" />
534
+      <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
341 535
       <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
342 536
       <option name="ALTERNATIVE_JRE_PATH" />
343
-      <option name="PACKAGE_NAME" value="com.zipcodewilmington.streams.conversions" />
344
-      <option name="MAIN_CLASS_NAME" value="com.zipcodewilmington.streams.conversions.TestConverterArray" />
345
-      <option name="METHOD_NAME" value="testCount" />
346
-      <option name="TEST_OBJECT" value="method" />
347
-      <option name="VM_PARAMETERS" value="-ea" />
348
-      <option name="PARAMETERS" />
349
-      <option name="WORKING_DIRECTORY" value="$MODULE_DIR$" />
537
+      <option name="ENABLE_SWING_INSPECTOR" value="false" />
350 538
       <option name="ENV_VARIABLES" />
351 539
       <option name="PASS_PARENT_ENVS" value="true" />
352
-      <option name="TEST_SEARCH_SCOPE">
353
-        <value defaultName="singleModule" />
354
-      </option>
540
+      <module name="looptest" />
355 541
       <envs />
356
-      <patterns />
357 542
       <method />
358 543
     </configuration>
359
-    <configuration default="false" name="TestConverterArray" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
544
+    <configuration default="false" name="TestPersonWarehouse.testAddPerson" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
360 545
       <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea">
361 546
         <pattern>
362 547
           <option name="PATTERN" value="com.zipcodewilmington.streams.anthropoid.*" />
363 548
           <option name="ENABLED" value="true" />
364 549
         </pattern>
365 550
       </extension>
366
-      <module name="looptest" />
551
+      <module name="streamdemo" />
367 552
       <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
368 553
       <option name="ALTERNATIVE_JRE_PATH" />
369
-      <option name="PACKAGE_NAME" value="com.zipcodewilmington.streams.conversions" />
370
-      <option name="MAIN_CLASS_NAME" value="com.zipcodewilmington.streams.conversions.TestConverterArray" />
371
-      <option name="METHOD_NAME" />
372
-      <option name="TEST_OBJECT" value="class" />
554
+      <option name="PACKAGE_NAME" value="com.zipcodewilmington.streams.anthropoid" />
555
+      <option name="MAIN_CLASS_NAME" value="com.zipcodewilmington.streams.anthropoid.TestPersonWarehouse" />
556
+      <option name="METHOD_NAME" value="testAddPerson" />
557
+      <option name="TEST_OBJECT" value="method" />
373 558
       <option name="VM_PARAMETERS" value="-ea" />
374 559
       <option name="PARAMETERS" />
375 560
       <option name="WORKING_DIRECTORY" value="$MODULE_DIR$" />
@@ -382,20 +567,20 @@
382 567
       <patterns />
383 568
       <method />
384 569
     </configuration>
385
-    <configuration default="false" name="TestSuiteConversionRegression" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
570
+    <configuration default="false" name="TestPersonWarehouse.testGetIdToNameMap" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
386 571
       <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea">
387 572
         <pattern>
388 573
           <option name="PATTERN" value="com.zipcodewilmington.streams.anthropoid.*" />
389 574
           <option name="ENABLED" value="true" />
390 575
         </pattern>
391 576
       </extension>
392
-      <module name="looptest" />
577
+      <module name="streamdemo" />
393 578
       <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
394 579
       <option name="ALTERNATIVE_JRE_PATH" />
395
-      <option name="PACKAGE_NAME" value="com.zipcodewilmington.streams.conversions" />
396
-      <option name="MAIN_CLASS_NAME" value="com.zipcodewilmington.streams.conversions.TestSuiteConversionRegression" />
397
-      <option name="METHOD_NAME" />
398
-      <option name="TEST_OBJECT" value="class" />
580
+      <option name="PACKAGE_NAME" value="com.zipcodewilmington.streams.anthropoid" />
581
+      <option name="MAIN_CLASS_NAME" value="com.zipcodewilmington.streams.anthropoid.TestPersonWarehouse" />
582
+      <option name="METHOD_NAME" value="testGetIdToNameMap" />
583
+      <option name="TEST_OBJECT" value="method" />
399 584
       <option name="VM_PARAMETERS" value="-ea" />
400 585
       <option name="PARAMETERS" />
401 586
       <option name="WORKING_DIRECTORY" value="$MODULE_DIR$" />
@@ -408,24 +593,30 @@
408 593
       <patterns />
409 594
       <method />
410 595
     </configuration>
411
-    <configuration default="false" name="TestPerson" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
596
+    <configuration default="false" name="TestPersonWarehouse" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
412 597
       <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea">
413 598
         <pattern>
414 599
           <option name="PATTERN" value="com.zipcodewilmington.streams.anthropoid.*" />
415 600
           <option name="ENABLED" value="true" />
416 601
         </pattern>
417 602
       </extension>
418
-      <option name="MAIN_CLASS_NAME" value="com.zipcodewilmington.streams.anthropoid.TestPerson" />
419
-      <option name="VM_PARAMETERS" />
420
-      <option name="PROGRAM_PARAMETERS" />
421
-      <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
603
+      <module name="streamdemo" />
422 604
       <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
423 605
       <option name="ALTERNATIVE_JRE_PATH" />
424
-      <option name="ENABLE_SWING_INSPECTOR" value="false" />
606
+      <option name="PACKAGE_NAME" value="com.zipcodewilmington.streams.anthropoid" />
607
+      <option name="MAIN_CLASS_NAME" value="com.zipcodewilmington.streams.anthropoid.TestPersonWarehouse" />
608
+      <option name="METHOD_NAME" />
609
+      <option name="TEST_OBJECT" value="class" />
610
+      <option name="VM_PARAMETERS" value="-ea" />
611
+      <option name="PARAMETERS" />
612
+      <option name="WORKING_DIRECTORY" value="$MODULE_DIR$" />
425 613
       <option name="ENV_VARIABLES" />
426 614
       <option name="PASS_PARENT_ENVS" value="true" />
427
-      <module name="looptest" />
615
+      <option name="TEST_SEARCH_SCOPE">
616
+        <value defaultName="singleModule" />
617
+      </option>
428 618
       <envs />
619
+      <patterns />
429 620
       <method />
430 621
     </configuration>
431 622
     <configuration default="true" type="#org.jetbrains.idea.devkit.run.PluginConfigurationType" factoryName="Plugin">
@@ -634,18 +825,18 @@
634 825
     </configuration>
635 826
     <list size="5">
636 827
       <item index="0" class="java.lang.String" itemvalue="JUnit.TestSuiteFullRegression" />
637
-      <item index="1" class="java.lang.String" itemvalue="JUnit.TestConverterArray.testCount" />
638
-      <item index="2" class="java.lang.String" itemvalue="JUnit.TestConverterArray" />
639
-      <item index="3" class="java.lang.String" itemvalue="JUnit.TestSuiteConversionRegression" />
640
-      <item index="4" class="java.lang.String" itemvalue="Application.TestPerson" />
828
+      <item index="1" class="java.lang.String" itemvalue="Application.TestPerson" />
829
+      <item index="2" class="java.lang.String" itemvalue="JUnit.TestPersonWarehouse.testAddPerson" />
830
+      <item index="3" class="java.lang.String" itemvalue="JUnit.TestPersonWarehouse.testGetIdToNameMap" />
831
+      <item index="4" class="java.lang.String" itemvalue="JUnit.TestPersonWarehouse" />
641 832
     </list>
642 833
     <recent_temporary>
643 834
       <list size="5">
644
-        <item index="0" class="java.lang.String" itemvalue="JUnit.TestSuiteFullRegression" />
645
-        <item index="1" class="java.lang.String" itemvalue="Application.TestPerson" />
646
-        <item index="2" class="java.lang.String" itemvalue="JUnit.TestSuiteConversionRegression" />
647
-        <item index="3" class="java.lang.String" itemvalue="JUnit.TestConverterArray" />
648
-        <item index="4" class="java.lang.String" itemvalue="JUnit.TestConverterArray.testCount" />
835
+        <item index="0" class="java.lang.String" itemvalue="JUnit.TestPersonWarehouse" />
836
+        <item index="1" class="java.lang.String" itemvalue="JUnit.TestPersonWarehouse.testAddPerson" />
837
+        <item index="2" class="java.lang.String" itemvalue="JUnit.TestPersonWarehouse.testGetIdToNameMap" />
838
+        <item index="3" class="java.lang.String" itemvalue="JUnit.TestSuiteFullRegression" />
839
+        <item index="4" class="java.lang.String" itemvalue="Application.TestPerson" />
649 840
       </list>
650 841
     </recent_temporary>
651 842
   </component>
@@ -666,35 +857,35 @@
666 857
     <servers />
667 858
   </component>
668 859
   <component name="TestHistory">
669
-    <history-entry file="TestSuiteFullRegression - 2017.05.30 at 16h 23m 53s.xml">
670
-      <configuration name="TestSuiteFullRegression" configurationId="JUnit" />
860
+    <history-entry file="TestPersonWarehouse - 2017.05.31 at 15h 52m 42s.xml">
861
+      <configuration name="TestPersonWarehouse" configurationId="JUnit" />
671 862
     </history-entry>
672
-    <history-entry file="TestSuiteFullRegression - 2017.05.30 at 16h 23m 58s.xml">
673
-      <configuration name="TestSuiteFullRegression" configurationId="JUnit" />
863
+    <history-entry file="TestPersonWarehouse - 2017.05.31 at 15h 52m 47s.xml">
864
+      <configuration name="TestPersonWarehouse" configurationId="JUnit" />
674 865
     </history-entry>
675
-    <history-entry file="TestSuiteFullRegression - 2017.05.30 at 16h 24m 21s.xml">
676
-      <configuration name="TestSuiteFullRegression" configurationId="JUnit" />
866
+    <history-entry file="TestPersonWarehouse - 2017.05.31 at 15h 53m 51s.xml">
867
+      <configuration name="TestPersonWarehouse" configurationId="JUnit" />
677 868
     </history-entry>
678
-    <history-entry file="TestSuiteFullRegression - 2017.05.30 at 19h 08m 54s.xml">
679
-      <configuration name="TestSuiteFullRegression" configurationId="JUnit" />
869
+    <history-entry file="TestPersonWarehouse - 2017.05.31 at 15h 53m 59s.xml">
870
+      <configuration name="TestPersonWarehouse" configurationId="JUnit" />
680 871
     </history-entry>
681
-    <history-entry file="TestSuiteFullRegression - 2017.05.30 at 19h 10m 18s.xml">
682
-      <configuration name="TestSuiteFullRegression" configurationId="JUnit" />
872
+    <history-entry file="TestPersonWarehouse - 2017.05.31 at 15h 54m 04s.xml">
873
+      <configuration name="TestPersonWarehouse" configurationId="JUnit" />
683 874
     </history-entry>
684
-    <history-entry file="TestSuiteFullRegression - 2017.05.30 at 19h 44m 08s.xml">
685
-      <configuration name="TestSuiteFullRegression" configurationId="JUnit" />
875
+    <history-entry file="TestPersonWarehouse - 2017.05.31 at 15h 54m 05s.xml">
876
+      <configuration name="TestPersonWarehouse" configurationId="JUnit" />
686 877
     </history-entry>
687
-    <history-entry file="TestSuiteFullRegression - 2017.05.31 at 07h 13m 04s.xml">
688
-      <configuration name="TestSuiteFullRegression" configurationId="JUnit" />
878
+    <history-entry file="TestPersonWarehouse - 2017.05.31 at 15h 54m 07s.xml">
879
+      <configuration name="TestPersonWarehouse" configurationId="JUnit" />
689 880
     </history-entry>
690
-    <history-entry file="TestSuiteFullRegression - 2017.05.31 at 13h 35m 34s.xml">
691
-      <configuration name="TestSuiteFullRegression" configurationId="JUnit" />
881
+    <history-entry file="TestPersonWarehouse - 2017.05.31 at 15h 54m 23s.xml">
882
+      <configuration name="TestPersonWarehouse" configurationId="JUnit" />
692 883
     </history-entry>
693
-    <history-entry file="TestSuiteFullRegression - 2017.05.31 at 13h 38m 47s.xml">
694
-      <configuration name="TestSuiteFullRegression" configurationId="JUnit" />
884
+    <history-entry file="TestPersonWarehouse - 2017.05.31 at 15h 54m 51s.xml">
885
+      <configuration name="TestPersonWarehouse" configurationId="JUnit" />
695 886
     </history-entry>
696
-    <history-entry file="TestSuiteFullRegression - 2017.05.31 at 13h 43m 04s.xml">
697
-      <configuration name="TestSuiteFullRegression" configurationId="JUnit" />
887
+    <history-entry file="TestPersonWarehouse - 2017.05.31 at 15h 55m 34s.xml">
888
+      <configuration name="TestPersonWarehouse" configurationId="JUnit" />
698 889
     </history-entry>
699 890
   </component>
700 891
   <component name="TodoView">
@@ -708,6 +899,7 @@
708 899
   </component>
709 900
   <component name="ToolWindowManager">
710 901
     <frame x="1440" y="23" width="1920" height="1053" extended-state="6" />
902
+    <editor active="true" />
711 903
     <layout>
712 904
       <window_info id="Palette" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
713 905
       <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32778355" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
@@ -719,9 +911,9 @@
719 911
       <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
720 912
       <window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
721 913
       <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
722
-      <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.31425598" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
914
+      <window_info id="Run" active="true" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.31425598" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
723 915
       <window_info id="Properties" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
724
-      <window_info id="Terminal" active="true" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.25078043" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
916
+      <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25078043" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
725 917
       <window_info id="Capture Tool" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
726 918
       <window_info id="Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
727 919
       <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.20820022" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
@@ -776,26 +968,11 @@
776 968
     <option name="FILTER_TARGETS" value="false" />
777 969
   </component>
778 970
   <component name="editorHistoryManager">
779
-    <entry file="file://$PROJECT_DIR$/src/test/java/com/zipcode.java" />
780
-    <entry file="file://$PROJECT_DIR$/pom.xml">
781
-      <provider selected="true" editor-type-id="text-editor">
782
-        <state relative-caret-position="0">
783
-          <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
784
-        </state>
785
-      </provider>
786
-    </entry>
787
-    <entry file="jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/src.zip!/java/util/ArrayList.java">
788
-      <provider selected="true" editor-type-id="text-editor">
789
-        <state relative-caret-position="312">
790
-          <caret line="105" column="41" lean-forward="true" selection-start-line="105" selection-start-column="41" selection-end-line="105" selection-end-column="41" />
791
-          <folding />
792
-        </state>
793
-      </provider>
794
-    </entry>
795 971
     <entry file="jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/src.zip!/java/util/AbstractList.java">
796 972
       <provider selected="true" editor-type-id="text-editor">
797 973
         <state relative-caret-position="312">
798 974
           <caret line="70" column="53" lean-forward="false" selection-start-line="70" selection-start-column="53" selection-end-line="70" selection-end-column="53" />
975
+          <folding />
799 976
         </state>
800 977
       </provider>
801 978
     </entry>
@@ -803,6 +980,7 @@
803 980
       <provider selected="true" editor-type-id="text-editor">
804 981
         <state relative-caret-position="312">
805 982
           <caret line="143" column="43" lean-forward="false" selection-start-line="143" selection-start-column="43" selection-end-line="143" selection-end-column="43" />
983
+          <folding />
806 984
         </state>
807 985
       </provider>
808 986
     </entry>
@@ -810,6 +988,7 @@
810 988
       <provider selected="true" editor-type-id="text-editor">
811 989
         <state relative-caret-position="180">
812 990
           <caret line="39" column="59" lean-forward="true" selection-start-line="39" selection-start-column="59" selection-end-line="39" selection-end-column="59" />
991
+          <folding />
813 992
         </state>
814 993
       </provider>
815 994
     </entry>
@@ -817,6 +996,7 @@
817 996
       <provider selected="true" editor-type-id="text-editor">
818 997
         <state relative-caret-position="312">
819 998
           <caret line="60" column="59" lean-forward="true" selection-start-line="60" selection-start-column="59" selection-end-line="60" selection-end-column="59" />
999
+          <folding />
820 1000
         </state>
821 1001
       </provider>
822 1002
     </entry>
@@ -847,6 +1027,7 @@
847 1027
       <provider selected="true" editor-type-id="text-editor">
848 1028
         <state relative-caret-position="786">
849 1029
           <caret line="806" column="13" lean-forward="false" selection-start-line="806" selection-start-column="13" selection-end-line="806" selection-end-column="13" />
1030
+          <folding />
850 1031
         </state>
851 1032
       </provider>
852 1033
     </entry>
@@ -854,6 +1035,7 @@
854 1035
       <provider selected="true" editor-type-id="text-editor">
855 1036
         <state relative-caret-position="131">
856 1037
           <caret line="1003" column="31" lean-forward="false" selection-start-line="1003" selection-start-column="31" selection-end-line="1003" selection-end-column="31" />
1038
+          <folding />
857 1039
         </state>
858 1040
       </provider>
859 1041
     </entry>
@@ -939,6 +1121,7 @@
939 1121
       <provider selected="true" editor-type-id="text-editor">
940 1122
         <state relative-caret-position="150">
941 1123
           <caret line="10" column="16" lean-forward="false" selection-start-line="10" selection-start-column="16" selection-end-line="10" selection-end-column="16" />
1124
+          <folding />
942 1125
         </state>
943 1126
       </provider>
944 1127
     </entry>
@@ -976,14 +1159,9 @@
976 1159
       <provider selected="true" editor-type-id="text-editor">
977 1160
         <state relative-caret-position="265">
978 1161
           <caret line="25" column="12" lean-forward="false" selection-start-line="25" selection-start-column="12" selection-end-line="25" selection-end-column="12" />
979
-        </state>
980
-      </provider>
981
-    </entry>
982
-    <entry file="file://$PROJECT_DIR$/src/test/java/com/zipcodewilmington/streams/anthropoid/TestPersonFactory.java">
983
-      <provider selected="true" editor-type-id="text-editor">
984
-        <state relative-caret-position="166">
985
-          <caret line="23" column="5" lean-forward="true" selection-start-line="23" selection-start-column="5" selection-end-line="23" selection-end-column="5" />
986
-          <folding />
1162
+          <folding>
1163
+            <element signature="imports" expanded="false" />
1164
+          </folding>
987 1165
         </state>
988 1166
       </provider>
989 1167
     </entry>
@@ -1002,16 +1180,6 @@
1002 1180
         </state>
1003 1181
       </provider>
1004 1182
     </entry>
1005
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/StreamFilter.java">
1006
-      <provider selected="true" editor-type-id="text-editor">
1007
-        <state relative-caret-position="552">
1008
-          <caret line="67" column="35" lean-forward="false" selection-start-line="67" selection-start-column="35" selection-end-line="67" selection-end-column="35" />
1009
-          <folding>
1010
-            <element signature="e#3278#3279#0" expanded="true" />
1011
-          </folding>
1012
-        </state>
1013
-      </provider>
1014
-    </entry>
1015 1183
     <entry file="file://$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/tools/RandomUtils.java">
1016 1184
       <provider selected="true" editor-type-id="text-editor">
1017 1185
         <state relative-caret-position="604">
@@ -1081,8 +1249,8 @@
1081 1249
         <state relative-caret-position="135">
1082 1250
           <caret line="9" column="22" lean-forward="false" selection-start-line="9" selection-start-column="22" selection-end-line="9" selection-end-column="22" />
1083 1251
           <folding>
1084
-            <element signature="e#504#505#0" expanded="true" />
1085
-            <element signature="e#547#548#0" expanded="true" />
1252
+            <element signature="e#504#505#0" expanded="false" />
1253
+            <element signature="e#547#548#0" expanded="false" />
1086 1254
           </folding>
1087 1255
         </state>
1088 1256
       </provider>
@@ -1091,6 +1259,7 @@
1091 1259
       <provider selected="true" editor-type-id="text-editor">
1092 1260
         <state relative-caret-position="272">
1093 1261
           <caret line="28" column="55" lean-forward="true" selection-start-line="28" selection-start-column="55" selection-end-line="28" selection-end-column="55" />
1262
+          <folding />
1094 1263
         </state>
1095 1264
       </provider>
1096 1265
     </entry>
@@ -1110,25 +1279,74 @@
1110 1279
         </state>
1111 1280
       </provider>
1112 1281
     </entry>
1282
+    <entry file="file://$PROJECT_DIR$/streamdemo.iml">
1283
+      <provider selected="true" editor-type-id="text-editor">
1284
+        <state relative-caret-position="0">
1285
+          <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
1286
+          <folding />
1287
+        </state>
1288
+      </provider>
1289
+    </entry>
1290
+    <entry file="file://$PROJECT_DIR$/.gitignore">
1291
+      <provider selected="true" editor-type-id="text-editor">
1292
+        <state relative-caret-position="15">
1293
+          <caret line="1" column="0" lean-forward="true" selection-start-line="1" selection-start-column="0" selection-end-line="1" selection-end-column="0" />
1294
+          <folding />
1295
+        </state>
1296
+      </provider>
1297
+    </entry>
1298
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/StreamFilter.java">
1299
+      <provider selected="true" editor-type-id="text-editor">
1300
+        <state relative-caret-position="-94">
1301
+          <caret line="32" column="0" lean-forward="true" selection-start-line="32" selection-start-column="0" selection-end-line="32" selection-end-column="0" />
1302
+          <folding>
1303
+            <element signature="e#690#691#0" expanded="true" />
1304
+            <element signature="e#788#789#0" expanded="true" />
1305
+            <element signature="e#988#989#0" expanded="true" />
1306
+            <element signature="e#1046#1047#0" expanded="true" />
1307
+          </folding>
1308
+        </state>
1309
+      </provider>
1310
+    </entry>
1113 1311
     <entry file="file://$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/anthropoid/PersonWarehouse.java">
1114 1312
       <provider selected="true" editor-type-id="text-editor">
1115
-        <state relative-caret-position="493">
1116
-          <caret line="69" column="0" lean-forward="false" selection-start-line="69" selection-start-column="0" selection-end-line="69" selection-end-column="0" />
1313
+        <state relative-caret-position="203">
1314
+          <caret line="51" column="33" lean-forward="false" selection-start-line="51" selection-start-column="33" selection-end-line="51" selection-end-column="33" />
1117 1315
           <folding>
1118
-            <element signature="e#2001#2002#0" expanded="true" />
1119
-            <element signature="e#2057#2058#0" expanded="true" />
1316
+            <element signature="e#2007#2008#0" expanded="true" />
1317
+            <element signature="e#2063#2064#0" expanded="true" />
1318
+            <element signature="e#3120#3121#0" expanded="true" />
1319
+            <element signature="e#3149#3150#0" expanded="true" />
1120 1320
           </folding>
1121 1321
         </state>
1122 1322
       </provider>
1123 1323
     </entry>
1324
+    <entry file="file://$PROJECT_DIR$/src/test/java/com/zipcodewilmington/streams/anthropoid/TestPersonFactory.java">
1325
+      <provider selected="true" editor-type-id="text-editor">
1326
+        <state relative-caret-position="315">
1327
+          <caret line="32" column="12" lean-forward="false" selection-start-line="32" selection-start-column="12" selection-end-line="32" selection-end-column="12" />
1328
+          <folding />
1329
+        </state>
1330
+      </provider>
1331
+    </entry>
1124 1332
     <entry file="file://$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/anthropoid/PersonFactory.java">
1125 1333
       <provider selected="true" editor-type-id="text-editor">
1126
-        <state relative-caret-position="465">
1127
-          <caret line="37" column="20" lean-forward="true" selection-start-line="37" selection-start-column="20" selection-end-line="37" selection-end-column="20" />
1334
+        <state relative-caret-position="250">
1335
+          <caret line="23" column="90" lean-forward="false" selection-start-line="23" selection-start-column="90" selection-end-line="23" selection-end-column="90" />
1128 1336
           <folding />
1129 1337
         </state>
1130 1338
       </provider>
1131 1339
     </entry>
1340
+    <entry file="file://$PROJECT_DIR$/src/test/java/com/zipcodewilmington/streams/anthropoid/TestPersonWarehouse.java">
1341
+      <provider selected="true" editor-type-id="text-editor">
1342
+        <state relative-caret-position="485">
1343
+          <caret line="51" column="53" lean-forward="true" selection-start-line="51" selection-start-column="53" selection-end-line="51" selection-end-column="53" />
1344
+          <folding>
1345
+            <element signature="imports" expanded="true" />
1346
+          </folding>
1347
+        </state>
1348
+      </provider>
1349
+    </entry>
1132 1350
   </component>
1133 1351
   <component name="masterDetails">
1134 1352
     <states>

+ 1
- 1
src/main/java/com/zipcodewilmington/streams/anthropoid/PersonFactory.java View File

@@ -21,7 +21,7 @@ public final class PersonFactory {
21 21
      * @return a new instance of a person with fields of random values
22 22
      */
23 23
     public static Person createRandomPerson() {
24
-        String name = StringUtils.capitalizeFirstChar(RandomUtils.createString('a', 'z', 3));
24
+        String name = StringUtils.capitalizeFirstChar(RandomUtils.createString('a', 'z', 4));
25 25
         String[] aliases = RandomUtils.createStrings('a', 'z', 5, 5);
26 26
         int age = RandomUtils.createInteger(0, 99);
27 27
         boolean isMale = RandomUtils.createBoolean(50);

+ 20
- 4
src/main/java/com/zipcodewilmington/streams/anthropoid/PersonWarehouse.java View File

@@ -16,9 +16,9 @@ import java.util.stream.Stream;
16 16
  *
17 17
  * @ATTENTION_TO_STUDENTS You are FORBIDDEN from using loops of any sort within the definition of this class.
18 18
  */
19
-public class PersonWarehouse {
19
+public final class PersonWarehouse {
20 20
     private static final LoggerHandler loggerHandler = LoggerWarehouse.getLogger(PersonWarehouse.class);
21
-    private static ArrayList<Person> people = new ArrayList<>();
21
+    private static final ArrayList<Person> people = new ArrayList<>();
22 22
 
23 23
     public static void addPerson(Person person) {
24 24
         loggerHandler.disbalePrinting();
@@ -31,10 +31,11 @@ public class PersonWarehouse {
31 31
      * @return list of uniquely named Person objects
32 32
      */ //TODO
33 33
     public static Stream<Person> getUniquelyNamedPeople() {
34
-        List<String> names = people.parallelStream().map(p -> p.getName()).collect(Collectors.toList());
34
+        List<String> names = people.parallelStream().map(p -> p.getName()).distinct().collect(Collectors.toList());
35 35
         return people.parallelStream().filter(person -> !names.contains(person.getName()));
36 36
     }
37 37
 
38
+
38 39
     /**
39 40
      * @param character starting character of Person objects' name
40 41
      * @return a Stream of respective
@@ -45,7 +46,7 @@ public class PersonWarehouse {
45 46
     }
46 47
 
47 48
     /**
48
-     * @param n starting character of Person objects' name
49
+     * @param n first `n` Person objects
49 50
      * @return a Stream of respective
50 51
      */ //TODO
51 52
     public static Stream<Person> getFirstNUniquelyNamedPeople(int n) {
@@ -75,4 +76,19 @@ public class PersonWarehouse {
75 76
     public static Stream<String> getAllAliases() {
76 77
         return people.parallelStream().flatMap(person -> Stream.of(person.getAliases()));
77 78
     }
79
+
80
+    /**
81
+     * @return list of names of Person objects
82
+     */ // TODO
83
+    public static List<String> getNames() {
84
+        return people.parallelStream().map(p -> p.getName()).collect(Collectors.toList());
85
+    }
86
+
87
+    /**
88
+     * @return ArrayList of all Person objects in this warehouse
89
+     */
90
+    public static ArrayList<Person> getPeople() {
91
+        return people;
92
+    }
93
+
78 94
 }

+ 96
- 0
src/test/java/com/zipcodewilmington/streams/anthropoid/TestPersonWarehouse.java View File

@@ -0,0 +1,96 @@
1
+package com.zipcodewilmington.streams.anthropoid;
2
+
3
+import com.zipcodewilmington.streams.tools.RandomUtils;
4
+import org.junit.Assert;
5
+import org.junit.Before;
6
+import org.junit.Test;
7
+
8
+import java.util.*;
9
+import java.util.stream.Collectors;
10
+
11
+/**
12
+ * Created by leon on 5/31/17.
13
+ */
14
+public class TestPersonWarehouse {
15
+
16
+    @Before
17
+    public void setup() {
18
+        PersonWarehouse.getPeople().clear();
19
+        PersonFactory.createPersonStream(999);
20
+    }
21
+
22
+    @Test
23
+    public void testAddPerson() {
24
+        int startSize = PersonWarehouse.getPeople().size();
25
+        int expectedEndSize = startSize + 1;
26
+        PersonFactory.createRandomPerson();
27
+
28
+        int actualEndSize = PersonWarehouse.getPeople().size();
29
+
30
+        Assert.assertEquals(expectedEndSize, actualEndSize);
31
+    }
32
+
33
+    @Test
34
+    public void testGetUniquelyNamedPeople() {
35
+        List<Person> uniquelyNamedPeople = PersonWarehouse.getUniquelyNamedPeople().collect(Collectors.toList());
36
+        List<String> uniqueNames = new ArrayList<>();
37
+        for (Person person : PersonWarehouse.getPeople()) {
38
+            String personName = person.getName();
39
+            boolean isUnique = !uniqueNames.contains(personName);
40
+            if (isUnique) {
41
+                uniqueNames.add(personName);
42
+            }
43
+        }
44
+
45
+        Assert.assertEquals(uniqueNames.size(), uniquelyNamedPeople.size());
46
+    }
47
+
48
+    @Test
49
+    public void testGetFirstNUniquelyNamedPeople() {
50
+        int expectedSize = RandomUtils.createInteger(1, 2);
51
+        int actualSize = PersonWarehouse.getFirstNUniquelyNamedPeople(expectedSize).collect(Collectors.toList()).size();
52
+        Assert.assertTrue(expectedSize > actualSize);
53
+    }
54
+
55
+    @Test
56
+    public void testGetUniquelyNamedPeopleStartingWith() {
57
+        Character startingCharacter = RandomUtils.createCharacter('A', 'Z');
58
+        List<Person> people = PersonWarehouse.getUniquelyNamedPeopleStartingWith(startingCharacter).collect(Collectors.toList());
59
+        for (Person person : people) {
60
+            String personName = person.getName();
61
+            Assert.assertTrue(personName.startsWith(startingCharacter.toString()));
62
+        }
63
+    }
64
+
65
+    @Test
66
+    public void testGetIdToNameMap() {
67
+        Map<Long, String> warehouseNameMap = PersonWarehouse.getIdToNameMap();
68
+        Map<Long, String> localNameMap = new HashMap<>();
69
+        for (Person person : PersonWarehouse.getPeople()) {
70
+            long id = person.getPersonalId();
71
+            String name = person.getName();
72
+            localNameMap.put(id, name);
73
+        }
74
+
75
+        Iterator<Map.Entry<Long, String>> it = localNameMap.entrySet().iterator();
76
+        while (it.hasNext()) {
77
+            Map.Entry<Long, String> pair = it.next();
78
+            long pairKey = pair.getKey();
79
+            String pairValue = pair.getValue();
80
+            String mapValue = warehouseNameMap.get(pairKey);
81
+
82
+            Assert.assertTrue(mapValue.equals(pairValue));
83
+        }
84
+    }
85
+
86
+
87
+    @Test
88
+    public void testGetNames() {
89
+        List<String> warehouseNames = PersonWarehouse.getNames();
90
+        ArrayList<String> localNames = new ArrayList<>();
91
+        for (Person person : PersonWarehouse.getPeople()) {
92
+            localNames.add(person.getName());
93
+        }
94
+        Assert.assertEquals(localNames.size(), warehouseNames.size());
95
+    }
96
+}

+ 6
- 531446
target/PersonWarehouse.leonlog
File diff suppressed because it is too large
View File


BIN
target/classes/com/zipcodewilmington/streams/anthropoid/PersonFactory.class View File


BIN
target/classes/com/zipcodewilmington/streams/anthropoid/PersonWarehouse.class View File


+ 1
- 1
target/global.leonlog View File

@@ -1,2 +1,2 @@
1
-May 31, 2017 1:43:01 PM com.zipcodewilmington.streams.tools.logging.LoggerHandler log
1
+May 31, 2017 3:56:30 PM com.zipcodewilmington.streams.tools.logging.LoggerHandler log
2 2
 INFO: Instantiating logger for [ com.zipcodewilmington.streams.anthropoid.PersonWarehouse ] ...