Skip to main content
Glama

Physics MCP Server

by BlinkZer0
test_cas.py4.33 kB
""" Test suite for CAS (Computer Algebra System) worker """ import pytest import numpy as np from unittest.mock import Mock, patch from src.cas import CAS class TestCAS: """Test CAS worker functionality""" def test_cas_evaluate_basic_arithmetic(self, cas_worker, sample_data): """Test basic arithmetic evaluation""" result = cas_worker.cas_evaluate({ 'expr': '2 + 3 * 4', 'method': 'cas_evaluate' }) assert result['success'] is True assert result['result'] == 14 def test_cas_evaluate_with_variables(self, cas_worker, sample_data): """Test expression evaluation with variables""" result = cas_worker.cas_evaluate({ 'expr': 'x**2 + 2*x + 1', 'vars': {'x': 3}, 'method': 'cas_evaluate' }) assert result['success'] is True assert result['result'] == 16 def test_cas_differentiate(self, cas_worker, mock_sympy): """Test symbolic differentiation""" mock_sympy['diff'].return_value = Mock(__str__=lambda: '2*x') result = cas_worker.cas_diff({ 'expr': 'x**2', 'symbol': 'x', 'method': 'cas_diff' }) assert result['success'] is True assert '2*x' in str(result['result']) def test_cas_integrate(self, cas_worker, mock_sympy): """Test symbolic integration""" mock_sympy['integrate'].return_value = Mock(__str__=lambda: 'x**2 + 3*x') result = cas_worker.cas_integrate({ 'expr': '2*x + 3', 'symbol': 'x', 'method': 'cas_integrate' }) assert result['success'] is True assert 'x**2' in str(result['result']) def test_cas_solve_equation(self, cas_worker, mock_sympy): """Test equation solving""" mock_sympy['solve'] = Mock(return_value=[-2, 2]) with patch('sympy.solve', mock_sympy['solve']): result = cas_worker.cas_solve_equation({ 'equation': 'x**2 - 4 = 0', 'symbol': 'x', 'method': 'cas_solve_equation' }) assert result['success'] is True assert result['result'] == [-2, 2] def test_cas_error_handling(self, cas_worker): """Test error handling for invalid expressions""" result = cas_worker.cas_evaluate({ 'expr': 'invalid_function(', 'method': 'cas_evaluate' }) assert result['success'] is False assert 'error' in result def test_cas_complex_expression(self, cas_worker, mock_sympy): """Test complex mathematical expressions""" mock_sympy['sympify'].return_value = Mock(evalf=Mock(return_value=7)) with patch('sympy.sympify', mock_sympy['sympify']): result = cas_worker.cas_evaluate({ 'expr': 'sqrt(16) + log(exp(2)) + sin(pi/2)', 'method': 'cas_evaluate' }) assert result['success'] is True assert result['result'] == 7 def test_cas_matrix_operations(self, cas_worker): """Test matrix operations""" with patch('numpy.linalg.det') as mock_det: mock_det.return_value = -2.0 result = cas_worker.cas_matrix_det({ 'matrix': [[1, 2], [3, 4]], 'method': 'cas_matrix_det' }) assert result['success'] is True assert result['result'] == -2.0 def test_cas_performance_caching(self, cas_worker): """Test performance caching for repeated calculations""" expr = 'x**2 + 2*x + 1' vars_dict = {'x': 5} # First calculation result1 = cas_worker.cas_evaluate({ 'expr': expr, 'vars': vars_dict, 'method': 'cas_evaluate' }) # Second calculation (should use cache) result2 = cas_worker.cas_evaluate({ 'expr': expr, 'vars': vars_dict, 'method': 'cas_evaluate' }) assert result1['success'] is True assert result2['success'] is True assert result1['result'] == result2['result']

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/BlinkZer0/Phys-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server