def cloneamount(self, cloneamount):
     params = pm.check_parameters(icount=self._icount, clones=self._clones, cloneamount=cloneamount,
                                  siderange=self._siderange, radrange=self._radrange, sig=self._sig)
     self._icount = params[0]
     self._clones = params[1]
     self._cloneamount = params[2]
     self._siderange = params[3]
     self._radrange = params[4]
     self._sig = params[5]
     self._finalcount = (self._icount - self._clones) + (self._clones * self._cloneamount)
     # if self._finalcount <= self._clones * self._cloneamount and all(x >= 0 for x in (self._icount, self._clones,
     #                                                                                  self._cloneamount)):
     #     raise ValueError('Error: Total Output Polgyons < Total Desired Clones!')
     self.polynames = '{0}, Generate Polygons with nrfinal method'.format(None)
    def __init__(self, icount=10, clones=2, cloneamount=2, siderange=(3, 10), radrange=(1, 5), sig=1):

        params = pm.check_parameters(icount, clones, cloneamount, siderange, radrange, sig)

        self._icount = params[0]
        self._clones = params[1]
        self._cloneamount = params[2]
        self._siderange = params[3]
        self._radrange = params[4]
        self._sig = params[5]
        self._finalcount = (self._icount - self._clones) + (self._clones * self._cloneamount)
        if self._finalcount <= clones * cloneamount and all(x >= 0 for x in (icount, clones, cloneamount)):
            raise ValueError('Error: Total Output Polgyons < Total Desired Clones!')
        self.polynames = '{0}, Generate Polygons with nrfinal method'.format(None)
def test_check_parameter_self_correction():
    assert pm.check_parameters(sig=0) == (10, 2, 2, (3, 13), (1, 5), 1)
def test_check_parameters_side_range_integer_exception():
    with raises(Exception):
        pm.check_parameters(siderange=(4.0, 10.0))
def test_check_paramters_icount_clones_cloneamount_integer_exception():
    with raises(Exception):
        pm.check_parameters(icount=4.3, clones=2.2, cloneamount=4.5)
def test_check_parameters_positive_radius_range_start_exception():
    with raises(Exception):
        pm.check_parameters(radrange=(-1, 1))
def test_check_parameters_3_side_range_start_exception():
    with raises(Exception):
        pm.check_parameters(siderange=(1, 10))
def test_check_parameters_sig_adjusted_radius_range_exception():
    with raises(Exception):
        pm.check_parameters(radrange=(2, 1), sig=0)
def test_check_parameters_negative_radius_exception():
    with raises(Exception):
        pm.check_parameters(radrange=(10, 1))
def test_check_parameters_sig_float_exception():
    with raises(Exception):
        pm.check_parameters(sig=.1)
def test_check_parameters_default_finalcount():
    returnvalues = pm.check_parameters()
    finalcount = (returnvalues[0] - returnvalues[1]) + (returnvalues[1] * returnvalues[2])
    assert finalcount == 12
def test_check_parameters_callable():
    assert (pm.check_parameters())