예제 #1
0
def test_create_with_steps(steps):
    assert Trial('walk1').steps == None
    assert Trial('walk1', steps=None).steps == None
    assert Trial('walk1', steps='').steps == None

    with pytest.raises(ValueError) as e:
        Trial('walk1', steps=steps)
    assert str(e.value) == "Invalid steps"
예제 #2
0
def test_create_with_rate(rate):
    assert Trial('walk1').rate == None
    assert Trial('walk1', rate=None).rate == None
    assert Trial('walk1', rate='').rate == None

    with pytest.raises(ValueError) as e:
        Trial('walk1', rate=rate)
    assert str(e.value) == "Invalid rate"
    def post(self):
        data = Trial.parser.parse_args()
        try:
            time = data['time']
            score = data['score']
            program_id = data['program_id']
            client_id = data['client_id']
            item = TrialModel(None, score, time, program_id, client_id)
            item.save()
            return data

        except Exception as err:
            return str(err)
예제 #4
0
 def __init__(self, file_path=None, user_params=None, trial_params=None):
     if file_path:
         #example: file_path = 'test/data/female-167-70_bagwalk1-100-10.txt'
         self.file_path = file_path
         file_name = self.file_path.split('/')[-1].split('.txt')[0].split(
             '_'
         )  #example: file_name = ['female-167-70', 'bagwalk1-100-10']
         self.user = User(*file_name[0].split('-'))
         self.trial = Trial(*file_name[-1].split('-'))
     elif user_params and trial_params:
         self.user = User(**user_params)
         self.trial = Trial(**trial_params)
         self.file_path = Upload.generate_file_path(self.user, self.trial)
     else:
         raise ValueError(
             "A file path or user and trial parameters must be provided.")
예제 #5
0
def test_create_non_zero_data():
    user = User('female', 167, 70)
    trial = Trial('walk 1', 100, 18)
    parser = Parser(open('test/data/female-167-70_walk2-100-10.txt').read())
    processor = Processor(parser.parsed_data)
    analyzer = Analyzer(processor.filtered_data, user, trial)

    assert analyzer.steps == 10
    assert analyzer.delta == -8
    assert analyzer.distance == 700
    assert analyzer.time == 1037 / 100
예제 #6
0
def test_create():
    data = [
        0, 0, 3.0950446845522207e-05, 8.888784491236883e-05,
        0.00017675661757108235, 0.0003010710258273255, 0.0004670334044406543,
        0.0006857659826903315
    ]
    analyzer = Analyzer(data, User(), Trial('walk1'))

    assert analyzer.delta == None
    assert analyzer.time == None
    assert analyzer.steps == 0
    assert analyzer.distance == 0
예제 #7
0
def test_create_with_steps():
    assert Trial('walk1', None, 0).steps == 0
    assert Trial('walk1', None, '0').steps == 0
    assert Trial('walk1', None, 1).steps == 1
    assert Trial('walk1', None, '1').steps == 1
    assert Trial('walk1', None, 100).steps == 100
    assert Trial('walk1', None, '100').steps == 100
예제 #8
0
def test_new_combined_data():
    file_path = 'test/data/female-167-70_bagwalk1-100-10.txt'
    user = User()
    trial = Trial('foobar1', 100)
    pipeline = Pipeline(open(file_path).read(), user, trial)

    assert user == pipeline.user
    assert trial == pipeline.trial
    assert pipeline.parser
    assert pipeline.processor
    assert pipeline.analyzer

    assert pipeline.analyzer.steps == 12
    assert pipeline.analyzer.distance == 888.0
    assert pipeline.analyzer.time == 8.63
예제 #9
0
def test_new():
    analyzer = Analyzer([0, 0], User(), Trial('walk1'))
예제 #10
0
def test_generate_file_path():
    file_path = 'public/uploads/female-999-90_bagwalk1-89-10.txt'
    user = User('female', '999', '90')
    trial = Trial('bagwalk1', '89', '10')

    assert Upload.generate_file_path(user, trial)==file_path
예제 #11
0
def test_create():
    trial = Trial('walk 1 ', 5, '10')

    assert trial.name == 'walk1'
    assert trial.rate == 5
    assert trial.steps == 10
예제 #12
0
def test_create_empty_name(name):
    with pytest.raises(ValueError) as e:
        Trial(name)
    assert str(e.value) == "Invalid name"