कहानी:उत्पन्न सूची
:वर्तमान में, मैं एक समारोह-अंडर-परीक्षण है कि पूर्णांकों की सूची निम्नलिखित नियमों के साथ के सूची उम्मीद है
- उप-सूचियों (यह
N
कॉल) की संख्या हो सकती है से उप-सूचियों के अंदर मूल्यों की 1 50 - को संख्या में सभी उप-सूचियों के लिए एक ही है (आयताकार फार्म) और होना चाहिए> = 0 और < = 5
- उपन्यासकारों के अंदर मूल्य उपन्यासियों की कुल संख्या से अधिक या बराबर नहीं हो सकते हैं।
[[0]] [[2, 1], [2, 0], [3, 1], [1, 0]] [[1], [0]]
नमूना गलत निविष्टियों:
[[2]] # 2 is more than N=1 (total number of sublists) [[0, 1], [2, 0]] # 2 is equal to N=2 (total number of sublists)
मैं कोशिश कर रहा हूँ दूसरे शब्दों में, एक sublist अंदर प्रत्येक मान एक पूर्णांक> = 0 और <
N
नमूना मान्य इनपुट है संपत्ति-आधारित-परीक्षण के साथ पहुंचने के लिए और hypothesis
library के साथ अलग-अलग मान्य इनपुट उत्पन्न करें औरके आसपास अपना सिर लपेटने का प्रयास करेंऔर integers()
, लेकिन यह काम नहीं कर सकते हैं:
- हालत # 1
lists()
औरmin_size
औरmax_size
तर्क - हालत # 2
Chaining strategies together
- तहत कवर किया जाता के साथ संपर्क करना आसान है # 3 शर्त है मैं इसके साथ संघर्ष कर रहा हूं - कारण, यदि हम ऊपर दिए गए उदाहरण से
rectangle_lists
का उपयोग करते हैं, तो हमारे पासintegers()
प्रश्न:
मैं कैसे उप-सूचियों की कुल संख्या की तुलना में कम होने के लिए उप-सूचियों के अंदर पूर्णांक मूल्यों सीमित कर सकते हैं?
मेरे प्रयास से कुछ:
from hypothesis import given
from hypothesis.strategies import lists, integers
@given(lists(lists(integers(min_value=0, max_value=5), min_size=1, max_size=5), min_size=1, max_size=50))
def test(l):
# ...
यह एक आवश्यकताओं को पूरा करने से बहुत दूर था - सूची एक आयताकार रूप से सख्ती से नहीं है और उत्पन्न पूर्णांक मूल्यों सूची के आकार से अधिक उत्पन्न जा सकते हैं ।
from hypothesis import given
from hypothesis.strategies import lists, integers
@given(integers(min_value=0, max_value=5).flatmap(lambda n: lists(lists(integers(min_value=1, max_value=5), min_size=n, max_size=n), min_size=1, max_size=50)))
def test(l):
# ...
यहाँ, # 1 और # 2 हैं जरूरतें पूरी नहीं की जा रही थी, लेकिन पूर्णांक मूल्यों सूची के आकार से भी बड़ा जा सकते हैं - # 3 आवश्यकता पूरी नहीं कर रहा है।
बढ़िया, मुझे यह विचार मिला! इस भयानक लाइब्रेरी के लेखक को एसओ पर मदद करने के लिए खुशी हुई, उत्तर और परिकल्पना के लिए बहुत बहुत धन्यवाद - यह एक उत्कृष्ट कृति है! – alecxe
आपका बहुत स्वागत है। खुशी है कि आप पुस्तकालय का आनंद ले रहे हैं। :-) – DRMacIver