Disabled external gits
This commit is contained in:
87
cs457-gc/assignment_1_2/test/test2.py
Normal file
87
cs457-gc/assignment_1_2/test/test2.py
Normal file
@@ -0,0 +1,87 @@
|
||||
# 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 *
|
||||
eps = 1E-6
|
||||
|
||||
with open('test_data2.json', 'r') as infile:
|
||||
homework_datas = json.load(infile)
|
||||
|
||||
# @pytest.mark.timeout(1)
|
||||
@pytest.mark.parametrize("data", homework_datas[0])
|
||||
def test_shape_energy_correctness(data):
|
||||
V = np.array(data[0], dtype=float)
|
||||
E = np.array(data[1], dtype=int)
|
||||
l0 = np.array(data[2], dtype=float)
|
||||
shape_energy_ground_truth = np.array(data[3])
|
||||
shape_energy_student = compute_shape_energy(V, E, l0)
|
||||
assert np.linalg.norm(shape_energy_ground_truth - shape_energy_student) < eps
|
||||
|
||||
# @pytest.mark.timeout(1)
|
||||
@pytest.mark.parametrize("data", homework_datas[1])
|
||||
def test_equilibrium_engery_correctness(data):
|
||||
V = np.array(data[0], dtype=float)
|
||||
F = np.array(data[1], dtype=int)
|
||||
x_csl = data[2]
|
||||
equilibrium_engery_ground_truth = np.array(data[3])
|
||||
equilibrium_engery_student = compute_equilibrium_energy(V, F, x_csl)
|
||||
assert np.linalg.norm(equilibrium_engery_ground_truth - equilibrium_engery_student) < eps
|
||||
|
||||
@pytest.mark.timeout(1)
|
||||
@pytest.mark.parametrize("data", homework_datas[2])
|
||||
def test_faces_area_gradient_correctness(data):
|
||||
V = np.array(data[0], dtype=float)
|
||||
F = np.array(data[1], dtype=int)
|
||||
faces_area_gradient_ground_truth_x = np.array(data[2])
|
||||
faces_area_gradient_ground_truth_y = np.array(data[3])
|
||||
[faces_area_gradient_student_x, faces_area_gradient_student_y] = compute_faces_area_gradient(V, F)
|
||||
assert np.linalg.norm(faces_area_gradient_ground_truth_x - faces_area_gradient_student_x) < eps \
|
||||
and np.linalg.norm(faces_area_gradient_ground_truth_y - faces_area_gradient_student_y) < eps
|
||||
|
||||
@pytest.mark.timeout(1)
|
||||
@pytest.mark.parametrize("data", homework_datas[3])
|
||||
def test_equilibrium_energy_gradient_correctness(data):
|
||||
V = np.array(data[0], dtype=float)
|
||||
F = np.array(data[1], dtype=int)
|
||||
x_csl = data[2]
|
||||
equilibrium_energy_gradient = np.array(data[3])
|
||||
equilibrium_energy_student = compute_equilibrium_energy_gradient(V, F, x_csl)
|
||||
assert np.linalg.norm(equilibrium_energy_gradient - equilibrium_energy_student) < eps
|
||||
|
||||
@pytest.mark.timeout(1)
|
||||
@pytest.mark.parametrize("data", homework_datas[4])
|
||||
def test_shape_energy_gradient_correctness(data):
|
||||
V = np.array(data[0], dtype=float)
|
||||
E = np.array(data[1], dtype=int)
|
||||
l0 = np.array(data[2], dtype=float)
|
||||
shape_energy_gradient_ground_truth = np.array(data[3])
|
||||
shape_energy_gradient_student = compute_shape_energy_gradient(V, E, l0)
|
||||
assert np.linalg.norm(shape_energy_gradient_ground_truth - shape_energy_gradient_student) < eps
|
||||
|
||||
n = 100000
|
||||
F_big = np.arange(3 * n).reshape((n, 3))
|
||||
V_big = np.random.random((3 * n, 3))
|
||||
l0_big = np.zeros(3 * n)
|
||||
E_big = igl.edges(F_big)
|
||||
|
||||
@pytest.mark.timeout(1)
|
||||
def test_shape_energy_timing():
|
||||
compute_shape_energy(V_big, E_big, l0_big)
|
||||
|
||||
@pytest.mark.timeout(1)
|
||||
def test_faces_area_gradient_timing():
|
||||
compute_faces_area_gradient(V_big, F_big)
|
||||
|
||||
@pytest.mark.timeout(1)
|
||||
def test_equilibrium_energy_gradient_timing():
|
||||
compute_equilibrium_energy_gradient(V_big, F_big, 0)
|
||||
|
||||
@pytest.mark.timeout(1)
|
||||
def test_shape_energy_gradient_timing():
|
||||
compute_shape_energy_gradient(V_big, E_big, l0_big)
|
Reference in New Issue
Block a user