Инструменты покрытия кода для [закрытого] Scala

У меня была такая же проблема. способ, которым я рекомендую вам обращаться с этим, состоит в том, чтобы создать временный файл Python для хранения функции, введенной пользователем. Вот пример, который я использовал в программе, которую я написал, чтобы нарисовать представление математических функций:

with open("function.py",'w') as file:
    f=input('enter the funtion you want to draw example: 2*x+1 or e**x :\n')
    file.write("from math import *\ndef f(x):\n\treturn "+f)

это создаст файл, содержащий функцию, которую я хочу вызвать следующим, вы должны вызвать функцию, которую вы написали в файле, чтобы ваша программа:

from function import f

теперь вы можете использовать свою функцию как обычную функцию Python, если хотите, вы также можете удалить файл, в котором вы сохранили свою функцию, используя os.remove:

import os
os.remove("function.py")

Чтобы помочь вам понять, вот моя программа для рисования математических функций:

import numpy
import cv2
import os
from math import *


def generate(f,a,b,min,max,functionname='noname'):
    ph=(b-a)/1920
    pv=(max-min)/1080
    picture=numpy.zeros((1080,1920))
    for i in range(0,1920):
        picture[1079-(int((f(a+(i+1)*ph)*1080/max))),i]=255
    for i in range(1920):
        picture[1079-(int((f(a+(i+1)*ph)*1080/max)))+1,i]=255
    cv2.imwrite(functionname+'.png',picture)


with open("function.py",'w') as file:
    f=input('enter the funtion you want to draw example: or e**x :\n')
    file.write("from math import *\ndef f(x):\n\treturn "+f)

from function import f
os.remove("function.py")
d=input('enter the interval ,min ,max and the image file name. Separate characters with spacebar. Example: 0 1 0 14 exponontielle :\n').split(" ")
generate(f,int(d[0]),int(d[1]),int(d[2]),int(d[3]),d[4])
46
задан oluies 11 October 2010 в 08:44
поделиться

2 ответа

Я использую Cobertura . Однако любой инструмент покрытия Java должен работать нормально. Единственная загвоздка в том, что в вашем списке покрытия окажется большое количество автоматически сгенерированных классов. Это связано с тем, что, хотя Scala компилируется в очень естественный байт-код JVM, он вынужден создавать неестественно большое количество классов для обеспечения общих функциональных возможностей, таких как ленивое вычисление.

9
ответ дан 26 November 2019 в 20:40
поделиться

Под прикрытием немного лучше.

9
ответ дан 26 November 2019 в 20:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: