[SPC-load]
partof = 'SPC-cmd'
text = '''
### CSV Format
The format of the csv file **shall** be a csv file of the form:
```
City, Capitol
```
> Note: whitespace will be ignored
### Design
The load function will accept a path to the csv file and will
deserialize and validate it using:
- [[SPC-question]] for handling deserialization of each row.
- [[SPC-validate]] to validate the data against other requirements.
'''
[SPC-question]
partof = 'SPC-load'
text = '''
The `Question` class shall be the primary datatype used for questions in the
application. Quetions shall:
- store the question and answer
- provide a method `ask` to ask the user the question
and validate the answer
'''
[SPC-validate]
partof = [
'REQ-learning',
'SPC-load',
]
text = '''
input questions **shall** be validated to:
- guarantee against duplicates
- guarantee that the data format is correct
'''
[TST-invalid]
partof = 'SPC-validate'
text = '''
At least the following unit tests **will** be implemented:
- test invalid number of columns
- test duplicate names
'''
[TST-load]
partof = 'SPC-question'
text = '''
Validating shall encompase:
- all question objects exist and data is as expected
The unit tests for load shall include:
- loading a raw string and validating it
- loading a valid csv file path and validating it
- try to load a csv file with 3 columns, expect error
'''