Skip to content
Snippets Groups Projects
Commit 4ae24f12 authored by Rahil Doshi's avatar Rahil Doshi
Browse files

Update interpolation tests

parent 0e12b296
Branches
Tags
No related merge requests found
#include "temperature_from_energy_density_array_cpp.h"
#include "interpolate_binary_search_cpp.h"
#include <vector>
#include <array>
#include <iostream>
......@@ -13,7 +13,7 @@ void run_cpp_tests() {
try {
// Test normal interpolation
double h_in = 1.695e10;
double result = temperature_from_energy_density_array_cpp(
double result = interpolate_binary_search_cpp(
temperatures, h_in, energy_densities);
std::cout << "Vector test temperature: " << result << std::endl;
assert(result > 3243.15 && result < 3273.15);
......@@ -21,23 +21,23 @@ void run_cpp_tests() {
// Test with std::array
std::array<double, 4> temp_arr = {3273.15, 3263.15, 3253.15, 3243.15};
std::array<double, 4> energy_arr = {1.71e10, 1.70e10, 1.69e10, 1.68e10};
result = temperature_from_energy_density_array_cpp(temp_arr, h_in, energy_arr);
result = interpolate_binary_search_cpp(temp_arr, h_in, energy_arr);
std::cout << "Array test temperature: " << result << std::endl;
assert(result > 3243.15 && result < 3273.15);
// Test boundary values
result = temperature_from_energy_density_array_cpp(
result = interpolate_binary_search_cpp(
temperatures, 1.67e10, energy_densities);
assert(std::abs(result - 3243.15) < 1e-6);
result = temperature_from_energy_density_array_cpp(
result = interpolate_binary_search_cpp(
temperatures, 1.72e10, energy_densities);
assert(std::abs(result - 3273.15) < 1e-6);
// Test error cases
std::vector<double> wrong_size = {1.0, 2.0};
try {
temperature_from_energy_density_array_cpp(temperatures, h_in, wrong_size);
interpolate_binary_search_cpp(temperatures, h_in, wrong_size);
std::cerr << "Expected size mismatch error" << std::endl;
assert(false);
} catch (const std::runtime_error&) {
......
import numpy as np
import pytest
from pymatlib.core.cpp.fast_interpolation import temperature_from_energy_density_array
from pymatlib.core.cpp.fast_interpolation import interpolate_binary_search
def test_numpy_implementation():
# Test data
......@@ -9,21 +9,21 @@ def test_numpy_implementation():
h_in = 1.695e10
# Test normal interpolation
result = temperature_from_energy_density_array(temperatures, h_in, energy_densities)
result = interpolate_binary_search(temperatures, h_in, energy_densities)
assert 3243.15 < result < 3273.15
print(f"NumPy test temperature: {result}")
# Test boundary values
result_min = temperature_from_energy_density_array(temperatures, 1.67e10, energy_densities)
result_min = interpolate_binary_search(temperatures, 1.67e10, energy_densities)
assert abs(result_min - 3243.15) < 1e-6
result_max = temperature_from_energy_density_array(temperatures, 1.72e10, energy_densities)
result_max = interpolate_binary_search(temperatures, 1.72e10, energy_densities)
assert abs(result_max - 3273.15) < 1e-6
# Test error cases
with pytest.raises(RuntimeError):
wrong_size = np.array([1.0, 2.0])
temperature_from_energy_density_array(temperatures, h_in, wrong_size)
interpolate_binary_search(temperatures, h_in, wrong_size)
if __name__ == "__main__":
test_numpy_implementation()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment