JoshRodstein / DKSwingP

Diamond Kinetics Internship: problem set using Java Predicates

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

DKSwingP

Solution to Diamond Kinetics problem set using Java Predicates
1.Implement data structure for sample swing data in 'latestSwing.csv'

2.Implement 4 methods for searching continuous values

3.Modify previous solution in DKSwing using Java predicates to improve code re-use and readability.

Description:

SwingTable.java-
ArrayList backed ADT. *did away with parrellel indexMap.

SwingSample.java
Object representing 1 sample (row) of 7 data points (in order)
- Timestamp, ax, ay, az, wx, wy, wz
- Parameters are of inner enum class, matching 7 data point labels
- *Added 'int index' data member to preserve ref to sequential order through filtering

IndexPair.java
Object represents starting and ending index of continuous runs of values. Allows for return of multiple indices.

Column.java
Enum class defining reference variables for sensor data of SwingSample object.

SamplePredicates.java
Predicate class containing 2 static Predicates and a static filtering method. Returns an ArrayList of IndexPair objects representing all contiguous runs of valid samples.

 filterData()

 uses *Java.util.stream* and passed predicate param to populate a list with all samples meeting 
 the search criteria. Filtered data is then iterated over to locate runs of adjacency matching
 the desired length. Runs are stored as IndexPairs and returned as an ArrayList. 

Notes

-Currently SwingTable indices start at 1 to mirror logical indexing of csv spreadsheet.

-csv file contains proprietary data, not included in public repo.

About

Diamond Kinetics Internship: problem set using Java Predicates


Languages

Language:Java 100.0%