#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
UnitTests related to the class Anthropometry Risk.

@author: Vertigo BioSystems
"""
import unittest
from src.vbs_riskmap.healthinfo.HealthInfo import HealthInfo
from src.vbs_riskmap.risk.AnthropometryRisk import AnthropometryRisk


class TestAnthropometryRisk(unittest.TestCase):

    def setUp(self):
        self.input_data = {"age": 28,
                           "weight": 77,
                           "height": 177,
                           "sex": "M",
                           "waist": 30,
                           "hip": 38
                           }

        self.healthInfo = HealthInfo(self.input_data)
        self.anthropometryRisk = AnthropometryRisk(self.healthInfo)

    def tearDown(self):
        pass

    def test_bmi_risk(self):
        self.assertEqual(self.anthropometryRisk.bmi_risk(),
                         self.anthropometryRisk.NORMAL_WEIGHT)

    def test_bmi_risk_no_parameters(self):
        healthInfo = HealthInfo({"age": 28, "height": 177})
        anthropometryRisk = AnthropometryRisk(healthInfo)
        self.assertEqual(anthropometryRisk.bmi_risk(), None)

    def test_waist_hip_risk(self):
        self.assertEqual(self.anthropometryRisk.waist_hip_risk(),
                         self.anthropometryRisk.LOW)

    def test_waist_hip_risk_no_parameters(self):
        healthInfo = HealthInfo({"age": 28, "waist": 30})
        anthropometryRisk = AnthropometryRisk(healthInfo)
        self.assertEqual(anthropometryRisk.waist_hip_risk(), None)


if __name__ == "__main__":
    suite = unittest.TestLoader().loadTestsFromTestCase(TestAnthropometryRisk)
    unittest.TextTestRunner(verbosity=2).run(suite)
