Belirli bir program için, şimdi farklı yollara karşılık gelen geçerli giriş aralığını belirlemek istiyorum. bir örnek içinFarklı koşullar verilen bir değişkenin aralığını nasıl bölümlendirebiliriz?
: Yani bu program için, iki yol vardır
def test(a):
if (a < 50):
return 1
else:
return -1
. Bir yol 1 döndürür ve başka bir -1 döndürür. Böylece koşullar 2 dize unsurlar içermesi
conditions = get_path_conditions(test)
["a<50", "a>=50"]
girişinin aralığı varsayalım: Belirli bir fonksiyonu (aynı zamanda kendi fonksiyonunu tasarlayabilirsiniz) yol şartlar listesi dönebilmek vardır varsayalım a = "(-100,100)"
(kolaylık sağlamak için alt limiti ve üst sınırı temsil eden bir dizgi kullanıyorum , tıpkı matematikte yaptığımız gibi. İsterseniz başka gösterimleri de kullanabilirsiniz).
Farklı giriş aralıklarına farklı koşulları eşleyebilen bir işlevi nasıl tasarlarım?
conditions = ["a<50", "a>=50"]
a = "(-100,100)"
input_ranges = get_inputs(conditions,a)
input_ranges
2 unsurlar içerdiğini Yani: ["(-100,50)","[50,100)"]
Benzer sorular: şartlarınız boolean ise
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3658
Bunun ne anlama geldiğini anlamadım. Bir [XY Problemi] olabilir (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem). Bu yaklaşımın çözmeyi amaçladığı bir "orijinal" sorun var mı? – TigerhawkT3
Yorumunuz için teşekkürler. Bir programı analiz etmenin bir yolunu bulmaya çalışıyorum. KLEE bunu, farklı yollara karşılık gelen farklı test senaryoları oluşturarak yapabilir (ör./Else farklı yola giderse). Her yol için sembolik bir ifade oluşturabilir, ancak girişler için tüm somut değerleri vermez. Bu yüzden farklı yollar için somut değer aralıkları belirlemeye çalışıyorum. – 2hc