def j_for_one(x, y, d, matrix=readFile.getArray()): d += 1 n = len(matrix[0]) # szerokosc x m = len(matrix) # szerokosc y blocked_ranges = [] if_forbidden = False if matrix[y][x] == 1 or matrix[y][x] == 2: if_forbidden = True for i in range(d): if y-i < 0 or y-i >= m: break for ii in range(2*i + 1): if 0 <= x-i+ii < n and matrix[y - i][x - i + ii] == 0: if not if_in_ranges(blocked_ranges, get_coords(2*i + 1, ii)): matrix[y-i][x-i+ii] = 4 else: matrix[y - i][x - i + ii] = 0 elif 0 <= x-i+ii < n and matrix[y - i][x - i + ii] == 1: blocked_ranges = add_range(blocked_ranges, get_coords((2*i + 1), ii)) return matrix, if_forbidden
def J_return_forbidden(x, y, alpha, dep): table = readFile.getArray() no_0 = seen_counter_for_0(table) n = dekoder.n() # szerokosc x m = dekoder.m() # szerokosc y is_forbidden = False for k in range(len(x)): # print(alpha[k]) # print(m) table = angel_change(alpha[k], table) temp_x = x[k] x[k] = change_x(alpha[k], x[k], y[k], n, m) y[k] = change_y(alpha[k], temp_x, y[k], n, m) # print(x[k]) # print(y[k]) temp = j_for_one(x[k], y[k], dep, table) table = temp[0] if temp[1]: is_forbidden = True table = angel_change_back(alpha[k], table) # print_matrix(table) if is_forbidden: return None else: return round((seen_counter(table) / no_0), 4)
def test10(self): matrix = readFile.getArray( os.path.dirname(os.path.abspath(__file__)) + '/arrays/data10.txt') result = adaptationFunction.Jx(matrix, [2, 6, 2], [7, 6, 7], [0, 0, 0], 3) self.assertEqual(result, 0.3086, 'should fill up array correctly')
def test1(self): matrix = readFile.getArray( os.path.dirname(os.path.abspath(__file__)) + '/arrays/data.txt') result = adaptationFunction.J(matrix, [3, 3, 3], [4, 4, 4], [0, 0, 0], 3) self.assertEqual(result, 0.1975, 'should fill up array correctly')
def min_value(d): max_area_per_sensor = 0 for i in range(d + 1): max_area_per_sensor += 2 * i + 1 table = readFile.getArray() n = len(table[0]) m = len(table) area = 0.9 * m * n return math.floor(area / max_area_per_sensor)
def n(): table = readFile.getArray() return len(table[0])
def m(): table = readFile.getArray() return len(table)
def max_value(): table = readFile.getArray() return afunction.seen_counter_for_0(table)
def test8(self): matrix = readFile.getArray( os.path.dirname(os.path.abspath(__file__)) + '/arrays/data7.txt') result = adaptationFunction.J(matrix, [0], [10], [0], 100) self.assertEqual(result, 0.7, 'should fill up array correctly')