def process_data(self, line):
     form = line.split()[0]
     value = Decimal(line.split()[1])
     self.obj = {}
     self.obj["form"] = form
     if form == "s":
         self.form = Square()
     elif form == "c":
         self.form = Circle()
     area = self.form.calc_area(value)
     self.obj["area"] = area
     self.output.append(self.obj)
 def __init__(self):
     self.circle = Circle()
     self.testdata = [
         {
             "size": "0",
             "area": "0"
         },
         {
             "size": "1",
             "area": "0.7853981633974483"
         },
         {
             "size": "2",
             "area": "3.141592653589793"
         },
         {
             "size": "3",
             "area": "7.0685834705770345"
         },
         {
             "size": "4",
             "area": "12.566370614359172"
         },
     ]
class InFileOperations:
    def __init__(self):
        path = os.getcwd()
        self.INFILE_PATH = path + "\\..\\data\\001-beginners.csv"
        self.inFile = None
        self.obj = {}
        self.form = None
        self.output = []

    def open_file(self):
        try:
            self.inFile = open(self.INFILE_PATH, "r")
        except IOError as ioe:
            raise AreaException("Unable to open file " + self.INFILE_PATH +
                                "\n" + ioe)

    def process_data(self, line):
        form = line.split()[0]
        value = Decimal(line.split()[1])
        self.obj = {}
        self.obj["form"] = form
        if form == "s":
            self.form = Square()
        elif form == "c":
            self.form = Circle()
        area = self.form.calc_area(value)
        self.obj["area"] = area
        self.output.append(self.obj)

    def read_file(self):
        try:
            self.open_file()
            for line in self.inFile:
                print(line)
                self.process_data(line)
        except IOError as ioe:
            raise AreaException("Unable to read from file " +
                                self.INFILE_PATH + "\n" + ioe)
        finally:
            try:
                self.inFile.close()
            except IOError:
                pass

    def get_output(self):
        return self.output
class TestCircle(ITest):
    def __init__(self):
        self.circle = Circle()
        self.testdata = [
            {
                "size": "0",
                "area": "0"
            },
            {
                "size": "1",
                "area": "0.7853981633974483"
            },
            {
                "size": "2",
                "area": "3.141592653589793"
            },
            {
                "size": "3",
                "area": "7.0685834705770345"
            },
            {
                "size": "4",
                "area": "12.566370614359172"
            },
        ]

    def test(self):
        test_nbr = 0
        for row in self.testdata:
            result = "failed"
            test_nbr += 1
            rib_size = row["size"]
            area_size = row["area"]
            calc_area = self.circle.calc_area(Decimal(rib_size))
            if area_size == str(calc_area):
                result = "passed"
            else:
                result = "wrong"
            print("\nTest: " + str(test_nbr) + "\nRib size: " + str(rib_size))
            print("Calculated value of area: " + str(calc_area) +
                  " - value should be: " + str(area_size))
            print("Test " + result)
Exemple #5
0
 def calculate_area(circle: Circle):
     area = circle.get_circle_radius()**2
     return area
Exemple #6
0
 def update_circle(self, circle_id, new_abscissa, new_ordinate, new_radius):
     circle = Circle(circle_id, new_abscissa, new_ordinate, new_radius)
     self.__circle_validator.validate_circle(circle)
     self.__circle_repository.update(circle)
Exemple #7
0
 def add_circle(self, circle_id, abscissa, ordinate, radius):
     circle = Circle(circle_id, abscissa, ordinate, radius)
     self.__circle_validator.validate_circle(circle)
     self.__circle_repository.create(circle)
 def validate_circle(self, circle: Circle):
     if circle.get_circle_radius() <= 0:
         raise InvalidRadiusException("Radius must be a positive number")