Example #1
0
    def test_sample_case(self):
        mat = [[1, 0, 0], [1, 1, 0], [1, 1, 1]]
        A = element_power_ratio(mat, 0, 0)
        self.assertEqual(A, 1.15 * 1.15)

        B = element_power_ratio(mat, 1, 0)
        self.assertEqual(B, 1.1 * 1.08 * 1.15)

        C = element_power_ratio(mat, 1, 1)
        self.assertEqual(C, 1.12 * 1.15)

        D = element_power_ratio(mat, 2, 0)
        self.assertEqual(D, 1.1 * 1.1 * 1.08 * 1.08)

        E = element_power_ratio(mat, 2, 1)
        self.assertEqual(E, 1.1 * 1.08 * 1.12)

        F = element_power_ratio(mat, 2, 2)
        self.assertEqual(F, 1.12 * 1.12)

        tot_r = A + B + C + D + E + F
        init_power = 100

        tot_power = calculate_total_power(mat, init_power)
        self.assertEqual(tot_power, tot_r * init_power)
Example #2
0
    def test_case2(self):
        mat = np.zeros(shape=(1, 100)) + 1
        tot_r = 0
        for i in range(len(mat[0])):
            X = element_power_ratio(mat, 0, i)
            ratio = pow(1.08, len(mat[0]) - 1 - i) * pow(1.12, i)
            self.assertAlmostEqual(X, ratio, places=4)
            tot_r += ratio

        init_power = 10.0

        tot_power = calculate_total_power(mat, init_power)
        self.assertAlmostEqual(tot_power, tot_r * init_power, places=4)
Example #3
0
    def test_case3(self):
        mat = np.zeros(shape=(1, 100)) + 1
        mat = mat.transpose()
        tot_r = 0
        for i in range(len(mat)):
            Y = element_power_ratio(mat, i, 0)
            ratio = pow(1.15, len(mat) - 1 - i) * pow(1.1, i)
            self.assertAlmostEqual(Y, ratio, places=4)
            tot_r += ratio

        init_power = 10.0

        tot_power = calculate_total_power(mat, init_power)
        self.assertAlmostEqual(tot_power, tot_r * init_power, places=4)
Example #4
0
    def test_case1(self):
        mat = [[1, 0, 1], [0, 1, 0], [1, 0, 1]]
        A = element_power_ratio(mat, 0, 0)
        self.assertEqual(A, 1)

        B = element_power_ratio(mat, 0, 2)
        self.assertEqual(B, 1)

        C = element_power_ratio(mat, 1, 1)
        self.assertEqual(C, 1)

        D = element_power_ratio(mat, 2, 0)
        self.assertEqual(D, 1)

        E = element_power_ratio(mat, 2, 2)
        self.assertEqual(E, 1)

        tot_r = A + B + C + D + E
        init_power = 55.87

        tot_power = calculate_total_power(mat, init_power)
        self.assertEqual(tot_power, tot_r * init_power)
Example #5
0
    mat = []
    if args.binary is not None and args.binary:
        cols = len(list(leftovers[1]))
        for i in range(1, len(leftovers)):
            if not leftovers[i].isnumeric():
                raise Exception('Value provided for an element describing a grid is not numeric.')
            arr = list(leftovers[i])
            if len(arr) != cols:
                raise Exception('Values provided for elements describing a grid do not have the same number of digits.')
            mat.append([])
            for x in arr:
                mat[i - 1].append(int(x))
    elif not args.binary:
        cols = []
        for i in range(1, len(leftovers)):
            if not leftovers[i].isnumeric():
                raise Exception('Value provided for an element describing a grid is not numeric.')
            cols.append(int(leftovers[i]))
        mat = np.zeros(shape=(len(cols), max(cols)))
        for i in range(len(cols)):
            for j in range(cols[i]):
                mat[i][j] = 1

    print("**********************")
    print("iniial energy:", e_init)
    print("Mat:")
    print(mat)
    print("**********************")
    sum = calculate_total_power(mat, e_init)
    print("Total power: {:.4f}".format(sum))