【Spock-Genesis】列表list随机值——Gen.list

本文探讨了如何在Python中使用无约束和有约束的值生成器创建列表,包括Gen.list(valueGenerator)的随机生成和Gen.list(valueGenerator,min,max)的长度限制。通过实例展示了列表生成的不同场景和约束条件。
摘要由CSDN通过智能技术生成


前言

tuple创建的固定大小的列表,但是如果你想改变列表的大小,或者使用随机元素类型,那么我们应该使用list。列表list需要给定一个的值生成器来获取他的元素,并且可能有一些大小约束,比如元素的最大值和最小值。


一、无约束生成Gen.list(valueGenerator)

这个示例生成随机大小的列表,其中的值来自作为参数传递的值生成器。

    def 'generate a simple list'() {
        when: 'generating a simple list'
        def list = Gen.list(Gen.integer).iterator().next()

        then: 'we only can be sure about the type of the list'
        list instanceof List
        println(list)
    }

运行结果:

[1012042970, -1267394775, -1801672053, 706444103, 985147378, -871431427, -1506450120, -1471318633, -1596793903, -613987499, 1959384836, -307724461, 758610489, 1612047015, 998978916, 964635880, -438500783, -1151773761, 1821190554, -1117527498, 901377159, -831591981, -1061103306, 1180830411, 1250939057, 1119667668, 1115255519, -1969872556, 742967925, -1460177658, 2116436819, -285590961, -1348714517, 720493778, 1160418987, 342099461, 417787520, -1755344934, 243001827, 957119927, 1283219997, 851370062, -197971814, -53956585, 1970682503, -1507769475, -1933167851, -1935777543, 1835524872, 551410350, -1502984055, -841584566, 480485455, -425511631, -76418663, 744111168, -567797612, -48586832, -745859299, 55079635, 1780201983, -56585014, -1210322652, -1266612629, 1210950474, -2084887838, -1286022596, -475055654, -1769344348, -567256269, 1569559280, -1772882037, 1955176152, -735306201, 951630225, 1405216764, 1747205806, -1660561175, -725583303, -1725957271, 346841745, -1054078920, 192133900, -711042359, -423271311, -2000382850, 1744521409, -1521159171, 1863045610, -168928480, 127059808, -1795025593, -522726234, 1535211799, -1529255092, -2125280264, 252919039, 1492200127, -175718780, -1194984851, -1265429785, 1791710447, 2085615141, -1294575301, 1644089611, -1300296887, -1567712205, 824629161, -11686346, 148154322, -1895722600, 1798311774, -58418957, -1575532604, 1024306283, -509296805, -1964652170, 1519960483, -764184970, 1068401194, 527240636, 1530292365, -591147022, 1417884503, 260191217, -384421674, -1003128172, 1927723039, -209897711, 2000226772, 1796853964, 489955175, 640553424, 486047990, 810495307, -1094431505, -548119618, 1733493275, -1275869498, -1372085305, 386995366, -1521792736, 679740410, -494181375, 1277116983, -1227564869, 1136364527, -1371885657, 71713766, -2096067962, 708875903, -1288279313, 675479826, 1530498142, -610975463, -948016211, 1351832936, 349462254, -1723667518, 265923592, 2036424584, -994662010, -1326456227, -2083359632, 125998568, 110622513, -1521494485, -420040497, 1498990073, 1061728517, 1642326932, 111928574, 2057396615, 2074995132, 1770479655, 1827239034, -870203803, 2037763715, -2079191842, 1579364695, 1038429256, 560058642, -1809168218, -1093048716, -156498701, -1287594244, -135008481, -1293758225, 729356948, 444938823, 769822624, 1893219547, 1629300845, 755418943, -1227814787, -699352784, 494283191, -583277689, 669061771, -250046718, 420657858, -348120464, -1513520924, -1921210378, -1706563488, 765545101, 811743463, 1030123504, -1161162364, -916385658, 346629762, 2124234257, -960512219, 1495370540, -311709517, 592142560, -1571842456, 592563406, -210472373, -702158394, -1894201091, -1214280246, 634731252, 646493119, -937973816, 305722470, 1977719926, -1883266738, 510540740, 1086490080, -1863415755, 886130097, 379783460, 1452446915, -802176771, -827429546, 1785094330, -1257979781, -44817150, -2131936883, 1494279068, -1899144661, -183626719, -663895170, -820765436, 1935524542, 1069905516, 984709724, 1019238008, 1189615164, -1065015579, 328052954, 1968245290, -1784563618, -485636472, 1551175134, 1113823137, -1026976157, -938198130, -468003724, -2079187305, 1458582052, -497917712, 1911437061, -450452443, 575457894, 477407785, 1578838471, -344398307, 416035951, -816332992, 262236279, -1328840522, -1556399397, -1514842875, -1914068154, -291288466, -1799907921, -1500527206, -1387526384, 2044594732, 1387253678, 1721773364, -2055564077, 1870392228, -378819349, 990056227, -1191904162, 1835095551, 1956374175, -526661873, 1959980616, 1712130234, 1007243324, -1805170045, 59578659, 932750029, 1164491201, 91946671, -751024654, -619186160, -1764089008, -772495767, 457787351, 332257498, 2129597949, -1595102091, 100643600, 871575531, -2005060120, 617369093, -1021276380, 825727627, 926900621, -411211390, 11630680, -1678713102, -946277798, 1023538572, 2048386152, 2069947626, 1156838017, -446864321, 307723891, -573565774, -932422641, 345667256, -263860682, 2125742117, 1376236861, -614710057, 1911856765, 234519067, -1025925626, 1544650053, 1521997525, -737378289, 728441593, 885858744, 608353414, -57632254, 549710160, -331857035, -761016641, 946672798, -1462663104, -1522236394, -2086292973, -2071545443, -1378180206, -1988141427, 1334763300, 943975019, -1116693646, 694320232, 178325661, 1934901514, 724297094, -184706218, 1465150565, 534174517, -542350526, 437962473, 5932048, -218647608, 437799290, -1077548387, 842451097, -1262571938, -85365448, 1043136536, 1307802958, 374421819, -1417541169, -1788977741, 1281603083, 378644844, -1946201041, -910235336, 314772650, 1712698668, -1051627653, -1167445267, 1905703353, 119517322, 1577424600, -2008367919, -2068118418, 316436551, -643264376, 1289286181, -1161609769, -991824124, -1703625162, 22254381, 1233238869, -1089908580, -1939841390, 1798084919, 1492157514, -1803534386, -2066361312, 1150408412, -1140152559, -1449811425, -56031923, -928458619, -474912466, 277720574, 1199188419, 780781872, -2118662458, 1626959656, 1105697021, 1551720308, 1960965457, 1491019086, -1409978851, 1656624834, 1766710669, 196569332, 1412109565, -901957395, -1500200779, 1159543451, 2001998979, -319783957, -851084046, -1035116510, 2043849273, -634046499, 2069505298, -797723544, 1732774684, 1998747980, -1706893449, 1821068598, -1925227085, -663522379, 1414217809, 243309404, 2059780451, 1179129927, -1447128305, 311617817, -1297418495, -107883286, 1535297298, 467983039, 1170964136, -1143029885, 1479078819, -1744710249, 1065238221, -191516298, 887990055, -1491570431, -1924331376, -287697044, 487749009, 1711822304, -1514107564, -646547115, 1520269847, -530304972, 1300076945, 177798832, 1931657255, -1620142329, 796567784, -870485239, 1158072220, -635236723, -1712183433, -2032890173, -1930913748, 399149190, 925299822, -1276082153, 1658132517, -1532164377, 2086009314, -138727332, 718051928, 1835549880, 1401482721, 540680584, -281094315, -1148352193, 330010821, 698990582, 1706083800, 1403455838, -1635386163, -1711270807, -385677694, -1410892999, -1152132375, 2016723536, 1762055883, 1372373019, -673607468, 1545313867, -948256969, 908642458, -296371096, -730617619, -429428537, -124643592, -1514237907, -224103997, 241730994, -1888517172, -257956558, -1161812331, -2081154732, -689362720, -1628957152, -1828662549, -1938855066, -784165283, 88012683, 1817940946, -1509031313, 1153480229, 442728843, 372032479, -480509574, 411042176, 499252875, 497836916, -1137990391, 1892019449, -79834272, 1594507585, -190244023, 1319284362, 2085041309, 1845864206, -1479070842, -60374538, -821666524, -1630761290, -269852448, 448909174, -1226106368, 1781179254, -333468609, -677980009, -1618428046, 1506841447, 201765252, 32231266, -392963255, -1895795383, 319239168, -65471555, -916965258, 1198802561, 1735153193, 1354683152, -1605171233, -1105214108, 498573450, 508503594, 33964659, 666839989, 648610811, 39897446, 1305974910, -633827988, -477607150, 1741888265, 2048819774, 1911414713, -1408258343, 2067336174, 2125088181, -847647673, -81886528, -698773916, -1337850432, 1328723140, -1370084395, -1743941802, 1026436712, 275778209, 674420530, -408822355, 469488247, -1388486890, 122987445, 1147511793, 1201655374]

因为为无约束生成器,因此数量和个体长度无法保障。

二、有约束生成Gen.list(valueGenerator,min,max)、Gen.list(valueGenerator,max)

该示例约束力列表的长度,最小1,最大5.

    def 'generate a list with size boundaries'() {
        when: 'establishing the list definition'
        def list = Gen.list(Gen.integer, 1, 5).iterator().next()

        then: 'it should obey the following assertions'
        list instanceof List
        list.size() >= 1
        list.size() <= 5
        println(list)

    }

运行结果:

[412483600, 383072488]

该示例只传递长度的最大值。

    def 'generate a list with size 3'() {
        when: 'establishing the list definition'
        def list = Gen.list(Gen.integer,  10).iterator().next()

        then: 'it should obey the following assertions'
        
        println(list)

    }

运行结果:

[-1208386920, 1883305515, 1601131739, -1689980983, -1004262923, -1345758743, -1170890068, 1097377870, -1478712572, 709232969]


总结

列表自动生成比较随机,可调节长度大小。也都是基于最为基本的数据类型生成器。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

焦躁的咸鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值