Как проверить объектный код в среде Python. Ввод предпочтительного теста - PullRequest
1 голос
/ 19 июня 2019

Я ищу процедуру или предложения, если это возможно или нет.

У меня есть исходные файлы или (объектный код), который скомпилирован в среде MATLAB с использованием встроенного кодера.Теперь я хочу перенести этот исходный код в Python и выполнить тест производительности кода на основе входного тестового примера.

Например: Мой объектный код содержит логику: Like, If int a = 7;int b 8;затем int c = a + b;

Теперь я должен проверить вышеуказанную логику, используя указанный тестовый пример, чтобы действительно увидеть, что мой объектный код выполняет то, для чего он действительно предназначен.

Итак,Есть ли какая-либо процедура или материал для меня, чтобы узнать, как импортировать объектный код / ​​исходные файлы в Python и выполнить тестирование?

Спасибо.

1 Ответ

0 голосов
/ 22 июня 2019
  1. Если вместо этого вы можете написать тесты в MATLAB, программное обеспечение в цикле (SIL) со встроенным кодером позволит вам вызывать фактический сгенерированный код из MATLAB, как и любую другую функцию. Комбинируя это с платформами модульного тестирования MATLAB , вы можете создать автоматизированный набор тестов в MATLAB.

    cfg = coder.config('lib');
    cfg.VerificationMode = 'SIL';
    
    codegen foo.m -config cfg ...
    % Runs the generated code
    foo_sil(args); 
    
  2. Python предоставляет несколько интерфейсов для C-кода. Один из популярных вариантов, который я пробовал - это ctypes:

    https://docs.python.org/3/library/ctypes.html

    Вы можете использовать это для вызова сгенерированного кода.

  3. Вы можете использовать генератор-обертку, такой как SWIG, чтобы обернуть сгенерированный код привязками Python. Это дает вам простой интерфейс Python для сгенерированного кода. Примеры, которые работают на Linux здесь:

    https://github.com/mathworks/coder-swig

    , которые генерируют код, вызывают SWIG, чтобы генерировать привязки Python, и собирать все. После этого вы можете вызывать сгенерированный код из Python, Java, C # или любого другого языка, поддерживаемого SWIG.

...