Результаты поиска
Как я должен тестировать модульный генератор кода?
Это сложный и открытый вопрос, я знаю, но я решил бросить его на пол и посмотреть, есть ли у кого-нибудь интересные предложения.
Я разработал генератор кода, который принимает наш интерфейс python к нашему коду C++ (сгенерированному через SWIG) и генерирует код, необходимый для того, чтобы представить его как WebServices. Когда я разрабатывал этот код, я делал это с помощью TDD, но мои тесты оказались чертовски хрупкими. Поскольку каждый тест по существу хотел проверить, что для заданного бита входного кода (который оказывается заголовком C++) я получу заданный бит выходного кода, я написал небольшой движок, который читает определения тестов из входных файлов XML и генерирует тестовые случаи из этих ожиданий.
Проблема в том, что я вообще боюсь идти на изменение кода. Это и тот факт, что сами юнит-тесты а: сложны, а б: хрупки.
Поэтому я пытаюсь придумать альтернативные подходы к этой проблеме, и мне кажется, что я, возможно, решаю ее неправильно. Возможно, мне нужно больше сосредоточиться на результате, IE: действительно ли код, который я генерирую, работает и делает то, что я хочу, а не выглядит так, как я хочу.
Есть ли у кого-нибудь опыт чего-то подобного, которым они хотели бы поделиться?
Как я должен тестировать модульный генератор кода?
Это сложный и открытый вопрос, я знаю, но я решил бросить его на пол и посмотреть, есть ли у кого-нибудь интересные предложения.
Я разработал генератор кода, который принимает наш интерфейс python к нашему коду C++ (сгенерированному через SWIG) и генерирует код, необходимый для того, чтобы представить его как WebServices. Когда я разрабатывал этот код, я делал это с помощью TDD, но мои тесты оказались чертовски хрупкими. Поскольку каждый тест по существу хотел проверить, что для заданного бита входного кода (который оказывается заголовком C++) я получу заданный бит выходного кода, я написал небольшой движок, который читает определения тестов из входных файлов XML и генерирует тестовые случаи из этих ожиданий.
Проблема в том, что я вообще боюсь идти на изменение кода. Это и тот факт, что сами юнит-тесты а: сложны, а б: хрупки.
Поэтому я пытаюсь придумать альтернативные подходы к этой проблеме, и мне кажется, что я, возможно, решаю ее неправильно. Возможно, мне нужно больше сосредоточиться на результате, IE: действительно ли код, который я генерирую, работает и делает то, что я хочу, а не выглядит так, как я хочу.
Есть ли у кого-нибудь опыт чего-то подобного, которым они хотели бы поделиться?
Прототипирование с помощью кода Python перед компиляцией
Я уже некоторое время обдумываю написание библиотеки peak fitting. Я знаю Python довольно хорошо и планирую реализовать все в Python для начала, но предполагаю, что мне, возможно, придется повторно реализовать некоторые основные подпрограммы на скомпилированном языке в конечном итоге.
IIRC, один из первоначальных ремитов Python был как язык прототипирования, однако Python довольно либеральен в разрешении функций, функторов, объектов для передачи в функции и методы, тогда как я подозреваю, что то же самое не верно для say C или Fortran.
Что я должен знать о проектировании функций / классов, которые я предполагаю, должны будут взаимодействовать с компилируемым языком? И сколько из этих потенциальных проблем решается такими библиотеками, как cTypes, bgen , SWIG , Boost.Python, Cython или Python SIP ?
Для этого конкретного случая использования (подходящая библиотека) я предполагаю, что пользователи могут определять математические функции (Guassian, Lorentzian и т. д.) как функции Python, которые затем могут быть переданы интерпретируемой библиотекой скомпилированного кода. Передача и возврат массивов также имеет важное значение.
Каковы наилучшие практики при использовании SWIG с C#?
Кто-нибудь там использовал библиотеку SWIG с C#?, если у вас есть, какие подводные камни вы нашли и как лучше всего использовать библиотеку? Я думаю об использовании его в качестве оболочки для программы, которая была написана в C, и я хочу обернуть заголовочные файлы, где я могу использовать их в своем приложении .NET.
Edit: некоторое уточнение по цели OS.Я планирую запустить приложение на Linux и Windows, поэтому причина, по которой я ищу SWIG. P / Invoke-это не вариант.