OXIESEC PANEL
- Current Dir:
/
/
var
/
www
/
reader
/
hps
/
faces
/
.venv
/
lib
/
python3.10
/
site-packages
/
numpy
/
f2py
/
tests
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
10/26/2024 01:27:37 PM
rwxr-xr-x
📄
__init__.py
0 bytes
10/26/2024 01:27:37 PM
rw-r--r--
📁
__pycache__
-
10/26/2024 01:28:54 PM
rwxr-xr-x
📁
src
-
10/26/2024 01:29:56 PM
rwxr-xr-x
📄
test_abstract_interface.py
832 bytes
10/26/2024 01:27:36 PM
rw-r--r--
📄
test_array_from_pyobj.py
23.49 KB
10/26/2024 01:27:36 PM
rw-r--r--
📄
test_assumed_shape.py
1.43 KB
10/26/2024 01:27:36 PM
rw-r--r--
📄
test_block_docstring.py
564 bytes
10/26/2024 01:27:36 PM
rw-r--r--
📄
test_callback.py
6.01 KB
10/26/2024 01:27:36 PM
rw-r--r--
📄
test_character.py
19.29 KB
10/26/2024 01:27:36 PM
rw-r--r--
📄
test_common.py
584 bytes
10/26/2024 01:27:36 PM
rw-r--r--
📄
test_compile_function.py
4.09 KB
10/26/2024 01:27:36 PM
rw-r--r--
📄
test_crackfortran.py
10.4 KB
10/26/2024 01:27:36 PM
rw-r--r--
📄
test_docs.py
1.62 KB
10/26/2024 01:27:36 PM
rw-r--r--
📄
test_f2cmap.py
391 bytes
10/26/2024 01:27:36 PM
rw-r--r--
📄
test_f2py2e.py
20.36 KB
10/26/2024 01:27:36 PM
rw-r--r--
📄
test_kind.py
847 bytes
10/26/2024 01:27:36 PM
rw-r--r--
📄
test_mixed.py
848 bytes
10/26/2024 01:27:36 PM
rw-r--r--
📄
test_module_doc.py
863 bytes
10/26/2024 01:27:36 PM
rw-r--r--
📄
test_parameter.py
3.85 KB
10/26/2024 01:27:36 PM
rw-r--r--
📄
test_quoted_character.py
454 bytes
10/26/2024 01:27:36 PM
rw-r--r--
📄
test_regression.py
2.11 KB
10/26/2024 01:27:36 PM
rw-r--r--
📄
test_return_character.py
1.46 KB
10/26/2024 01:27:36 PM
rw-r--r--
📄
test_return_complex.py
2.34 KB
10/26/2024 01:27:36 PM
rw-r--r--
📄
test_return_integer.py
1.81 KB
10/26/2024 01:27:36 PM
rw-r--r--
📄
test_return_logical.py
1.97 KB
10/26/2024 01:27:36 PM
rw-r--r--
📄
test_return_real.py
3.27 KB
10/26/2024 01:27:36 PM
rw-r--r--
📄
test_semicolon_split.py
1.6 KB
10/26/2024 01:27:37 PM
rw-r--r--
📄
test_size.py
1.14 KB
10/26/2024 01:27:37 PM
rw-r--r--
📄
test_string.py
2.89 KB
10/26/2024 01:27:37 PM
rw-r--r--
📄
test_symbolic.py
17.91 KB
10/26/2024 01:27:37 PM
rw-r--r--
📄
test_value_attrspec.py
323 bytes
10/26/2024 01:27:37 PM
rw-r--r--
📄
util.py
10.2 KB
10/26/2024 01:27:37 PM
rw-r--r--
Editing: test_string.py
Close
import os import pytest import textwrap import numpy as np from . import util class TestString(util.F2PyTest): sources = [util.getpath("tests", "src", "string", "char.f90")] @pytest.mark.slow def test_char(self): strings = np.array(["ab", "cd", "ef"], dtype="c").T inp, out = self.module.char_test.change_strings( strings, strings.shape[1]) assert inp == pytest.approx(strings) expected = strings.copy() expected[1, :] = "AAA" assert out == pytest.approx(expected) class TestDocStringArguments(util.F2PyTest): sources = [util.getpath("tests", "src", "string", "string.f")] def test_example(self): a = np.array(b"123\0\0") b = np.array(b"123\0\0") c = np.array(b"123") d = np.array(b"123") self.module.foo(a, b, c, d) assert a.tobytes() == b"123\0\0" assert b.tobytes() == b"B23\0\0" assert c.tobytes() == b"123" assert d.tobytes() == b"D23" class TestFixedString(util.F2PyTest): sources = [util.getpath("tests", "src", "string", "fixed_string.f90")] @staticmethod def _sint(s, start=0, end=None): """Return the content of a string buffer as integer value. For example: _sint('1234') -> 4321 _sint('123A') -> 17321 """ if isinstance(s, np.ndarray): s = s.tobytes() elif isinstance(s, str): s = s.encode() assert isinstance(s, bytes) if end is None: end = len(s) i = 0 for j in range(start, min(end, len(s))): i += s[j] * 10**j return i def _get_input(self, intent="in"): if intent in ["in"]: yield "" yield "1" yield "1234" yield "12345" yield b"" yield b"\0" yield b"1" yield b"\01" yield b"1\0" yield b"1234" yield b"12345" yield np.ndarray((), np.bytes_, buffer=b"") # array(b'', dtype='|S0') yield np.array(b"") # array(b'', dtype='|S1') yield np.array(b"\0") yield np.array(b"1") yield np.array(b"1\0") yield np.array(b"\01") yield np.array(b"1234") yield np.array(b"123\0") yield np.array(b"12345") def test_intent_in(self): for s in self._get_input(): r = self.module.test_in_bytes4(s) # also checks that s is not changed inplace expected = self._sint(s, end=4) assert r == expected, s def test_intent_inout(self): for s in self._get_input(intent="inout"): rest = self._sint(s, start=4) r = self.module.test_inout_bytes4(s) expected = self._sint(s, end=4) assert r == expected # check that the rest of input string is preserved assert rest == self._sint(s, start=4)