Я хочу автоматизировать некоторые тесты, чтобы проверить способность программиста написать эффективный алгоритм. В этом примере алгоритм должен выполнять простой двоичный поиск в массиве int.Как я могу предотвратить использование некоторых определенных классов?
public class ComplexityPractice
{
public bool BinarySearch(int [] sortedArray, int value)
{
// to be implement
}
}
Примечание: Этот код загружается отражение в ограниченной области.
Простым способом реализации этого метода является, конечно, Array.BinarySearch(sortedArray, value)
из библиотеки .NET. Но моя цель - проверить способность программиста самостоятельно генерировать код, так что задайте вопрос:
Как я могу предотвратить использование программистом функции класса Array?
Вы, мужчина, не читаете код? –
Сделайте строковый поиск, используйте простой парсер C# и проверьте его на вызов (например, с помощью ANTLR), используйте Roslyn для разбора кода, затем проверьте его на наличие вызова. –
Вы можете пройти через ряд ухищрений, включая замену сборки .NET на целевой компьютер, шаг сборки компилятора, парсер SonarQube в вашей системе сборки. На самом деле, вы должны просто прочитать код. –