Disabled external gits
This commit is contained in:
67
cs457-gc/assignment_1_3/test/test3.py
Normal file
67
cs457-gc/assignment_1_3/test/test3.py
Normal file
@@ -0,0 +1,67 @@
|
||||
# import pytest
|
||||
import time
|
||||
import pytest
|
||||
import json
|
||||
import sys
|
||||
import igl
|
||||
import numpy as np
|
||||
sys.path.append('../')
|
||||
sys.path.append('../src')
|
||||
from src.energies import *
|
||||
from src.linesearch import *
|
||||
from src.bfgs import *
|
||||
eps = 1E-6
|
||||
|
||||
with open('test_data3.json', 'r') as infile:
|
||||
homework_datas = json.load(infile)
|
||||
|
||||
@pytest.mark.timeout(1)
|
||||
@pytest.mark.parametrize("data", homework_datas[0])
|
||||
def test_armijo_rule(data):
|
||||
Fx = data[0]
|
||||
Fy = data[1]
|
||||
p = np.array(data[2], dtype=float)
|
||||
grad = np.array(data[3], dtype=float)
|
||||
c = data[4]
|
||||
alpha = data[5]
|
||||
armijo_rule_ground_truth = data[6]
|
||||
armijo_rule_student = int(evaluate_armijo_rule(Fx, Fy, p, grad, c, alpha))
|
||||
assert armijo_rule_ground_truth == armijo_rule_student
|
||||
|
||||
def func(x):
|
||||
return np.linalg.norm(x) ** 2
|
||||
|
||||
@pytest.mark.timeout(1)
|
||||
@pytest.mark.parametrize("data", homework_datas[1])
|
||||
def test_backtracking_line_search(data):
|
||||
p = np.array(data[0], dtype=float)
|
||||
grad = np.array(data[1], dtype=float)
|
||||
x = np.array(data[2], dtype=float)
|
||||
theta = data[3]
|
||||
beta = data[4]
|
||||
c = data[5]
|
||||
backtracking_line_search_ground_truth = data[6]
|
||||
backtracking_line_search_student = backtracking_line_search(p, grad, x, theta, beta, c, func)
|
||||
|
||||
assert np.linalg.norm(backtracking_line_search_ground_truth - backtracking_line_search_student) < eps
|
||||
|
||||
@pytest.mark.timeout(1)
|
||||
@pytest.mark.parametrize("data", homework_datas[2])
|
||||
def test_compute_approximate_hessian_matrix(data):
|
||||
sk = np.array(data[0], dtype=float)
|
||||
yk = np.array(data[1], dtype=float)
|
||||
Bk = np.array(data[2], dtype=float)
|
||||
|
||||
newBk_student = compute_approximate_hessian_matrix(sk, yk, Bk)
|
||||
newBk_ground_truth = np.array(data[3], dtype=float)
|
||||
assert np.linalg.norm(newBk_student - newBk_ground_truth) < eps
|
||||
|
||||
@pytest.mark.timeout(1)
|
||||
@pytest.mark.parametrize("data", homework_datas[3])
|
||||
def test_compute_inverse_approximate_hessian_matrix(data):
|
||||
sk = np.array(data[0], dtype=float)
|
||||
yk = np.array(data[1], dtype=float)
|
||||
invBk = np.array(data[2], dtype=float)
|
||||
inv_newBk_student = compute_inverse_approximate_hessian_matrix(sk, yk, invBk)
|
||||
inv_newBk_ground_truth = np.array(data[3], dtype=float)
|
||||
assert np.linalg.norm(inv_newBk_student - inv_newBk_ground_truth) < eps
|
1
cs457-gc/assignment_1_3/test/test_data3.json
Normal file
1
cs457-gc/assignment_1_3/test/test_data3.json
Normal file
@@ -0,0 +1 @@
|
||||
[[[2.0000000000000004, 2.0000000000000004, [-2, -2], [2, 2], 0.5, 1.0, 0], [2.0000000000000004, 0.0, [-2, -2], [2, 2], 0.5, 0.5, 1]], [[[-2, -2], [2, 2], [1, 1], 2.1, 0.5, 0.5, 0.2625]], [[[[-2.0], [-2.0]], [[-4.0], [-4.0]], [[1.0, 0.0], [0.0, 1.0]], [[1.5, 0.5], [0.5, 1.5]]]], [[[[-2.0], [-2.0]], [[-4.0], [-4.0]], [[1.0, 0.0], [0.0, 1.0]], [[0.75, -0.25], [-0.25, 0.75]]]]]
|
Reference in New Issue
Block a user