summaryrefslogtreecommitdiffstats
path: root/yql/essentials/tests/sql/suites/expr/list_sample.yql
diff options
context:
space:
mode:
authorrobot-piglet <[email protected]>2025-08-13 19:14:34 +0300
committerrobot-piglet <[email protected]>2025-08-13 19:26:32 +0300
commitaae2cfe567a3498ec7c2d50a736c816fe57c4a9f (patch)
tree8247490e22be450864d4b5bef5a167f58e53f75a /yql/essentials/tests/sql/suites/expr/list_sample.yql
parent3b79116cac370b648c75323b866927d32aab08f4 (diff)
Intermediate changes
commit_hash:e6cca97ec9c9627f1ba82a11abf454518fc90972
Diffstat (limited to 'yql/essentials/tests/sql/suites/expr/list_sample.yql')
-rw-r--r--yql/essentials/tests/sql/suites/expr/list_sample.yql36
1 files changed, 36 insertions, 0 deletions
diff --git a/yql/essentials/tests/sql/suites/expr/list_sample.yql b/yql/essentials/tests/sql/suites/expr/list_sample.yql
new file mode 100644
index 00000000000..fecd4febfa0
--- /dev/null
+++ b/yql/essentials/tests/sql/suites/expr/list_sample.yql
@@ -0,0 +1,36 @@
+/* yt can not */
+$list = ListFromRange(1, 101);
+$test = ($probability, $dependsOn) -> {
+ $sample = ListCollect(ListSample($list, $probability, $dependsOn));
+ RETURN
+ (
+ ListSort(DictKeys(ToSet($sample))) == ListSort($sample),
+ (ListLength($sample), $probability * 100),
+ SetIncludes(ToSet($list), $sample)
+ );
+};
+
+SELECT
+ ListSample(NULL , 1.0) IS NULL AS mustBeTrue1,
+ ListSample(Nothing(OptionalType(ListType(DataType("Uint64")))), 1.0) IS NULL AS mustBeTrue2,
+ ListSample([] , 1.0) == [] AS mustBeTrue3,
+
+ ListSample($list, NULL ) == $list AS mustBeTrue4,
+ ListSample($list, Nothing(OptionalType(DataType("Double")))) == $list AS mustBeTrue5,
+
+ ListSample($list, 0.5, 123) == ListSample($list, 0.5, 123) AS mustBeTrue6,
+
+ $test(0.2, 1) AS result1,
+ $test(0.2, 2) AS result2,
+ $test(0.2, 3) AS result3,
+ $test(0.2, 4) AS result4,
+ $test(0.2, 5) AS result5,
+ $test(0.5, 6) AS result6,
+ $test(0.8, 7) AS result7,
+ $test(1.0, 8) AS result8,
+ $test(0.0, 9) AS result9,
+
+ ListSample($list , 0.1 , 10) AS result10,
+ ListSample(Just($list), 0.1 , 11) AS result11,
+ ListSample($list , Just(0.1), 12) AS result12,
+ ListSample(Just($list), Just(0.1), 13) AS result13;