Skip to content

Commit 63403c5

Browse files
authored
Add integration test for percentile_ranks (#77815)
This revives #27127, modernizing it to include stuff like `close_to`.
1 parent 413a599 commit 63403c5

File tree

2 files changed

+409
-0
lines changed

2 files changed

+409
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,180 @@
1+
setup:
2+
- do:
3+
indices.create:
4+
index: test
5+
body:
6+
settings:
7+
number_of_replicas: 0
8+
mappings:
9+
properties:
10+
int:
11+
type : integer
12+
double:
13+
type : double
14+
keyword:
15+
type: keyword
16+
17+
- do:
18+
bulk:
19+
refresh: true
20+
index: test
21+
body:
22+
- '{"index": {}}'
23+
- '{"int": 1, "double": 1.0, "keyword": "foo"}'
24+
- '{"index": {}}'
25+
- '{"int": 51, "double": 51.0, "keyword": "foo"}'
26+
- '{"index": {}}'
27+
- '{"int": 101, "double": 101.0, "keyword": "foo"}'
28+
- '{"index": {}}'
29+
- '{"int": 151, "double": 151.0, "keyword": "foo"}'
30+
31+
---
32+
basic:
33+
- skip:
34+
features: close_to
35+
36+
- do:
37+
search:
38+
body:
39+
size: 0
40+
aggs:
41+
percentile_ranks_int:
42+
percentile_ranks:
43+
field: int
44+
values: [50, 99]
45+
percentile_ranks_double:
46+
percentile_ranks:
47+
field: double
48+
values: [50, 99]
49+
50+
- match: { hits.total.value: 4 }
51+
- close_to: { aggregations.percentile_ranks_int.values.50\\.0: { value: 37.0, error: 1} }
52+
- close_to: { aggregations.percentile_ranks_int.values.99\\.0: { value: 61.5, error: 1} }
53+
- close_to: { aggregations.percentile_ranks_double.values.50\\.0: { value: 37.0, error: 1} }
54+
- close_to: { aggregations.percentile_ranks_double.values.99\\.0: { value: 61.5, error: 1} }
55+
56+
---
57+
filtered:
58+
- skip:
59+
features: close_to
60+
61+
- do:
62+
search:
63+
body:
64+
size: 0
65+
query:
66+
range:
67+
int:
68+
gte: 50
69+
aggs:
70+
percentile_ranks_int:
71+
percentile_ranks:
72+
field: int
73+
values: [50]
74+
percentile_ranks_double:
75+
percentile_ranks:
76+
field: double
77+
values: [50]
78+
79+
- match: { hits.total.value: 3 }
80+
- close_to: { aggregations.percentile_ranks_int.values.50\\.0: { value: 16.0, error: 1} }
81+
- close_to: { aggregations.percentile_ranks_double.values.50\\.0: { value: 16.0, error: 1} }
82+
83+
---
84+
missing field with missing param:
85+
- skip:
86+
features: close_to
87+
88+
- do:
89+
search:
90+
body:
91+
size: 0
92+
aggs:
93+
percentile_ranks_missing:
94+
percentile_ranks:
95+
field: missing
96+
missing: 1.0
97+
values: [50, 99]
98+
99+
- match: { hits.total.value: 4 }
100+
- close_to: { aggregations.percentile_ranks_missing.values.50\\.0: { value: 100.0, error: 1} }
101+
- close_to: { aggregations.percentile_ranks_missing.values.99\\.0: { value: 100.0, error: 1} }
102+
103+
---
104+
missing field without missing param:
105+
- do:
106+
search:
107+
body:
108+
size: 0
109+
aggs:
110+
percentile_ranks_missing:
111+
percentile_ranks:
112+
field: missing
113+
values: [50, 99]
114+
115+
- match: { hits.total.value: 4 }
116+
- is_false: aggregations.percentile_ranks_missing.value
117+
118+
---
119+
invalid params:
120+
- do:
121+
catch: bad_request
122+
search:
123+
body:
124+
aggs:
125+
percentile_ranks_int:
126+
percentile_ranks:
127+
field: int
128+
values: []
129+
130+
- do:
131+
catch: bad_request
132+
search:
133+
body:
134+
aggs:
135+
percentile_ranks_int:
136+
percentile_ranks:
137+
field: int
138+
values: null
139+
140+
- do:
141+
catch: bad_request
142+
search:
143+
body:
144+
aggs:
145+
percentile_ranks_int:
146+
percentile_ranks:
147+
field: int
148+
values: ["foo"]
149+
150+
- do:
151+
catch: bad_request
152+
search:
153+
body:
154+
aggs:
155+
percentile_ranks_string:
156+
percentile_ranks:
157+
field: string
158+
159+
---
160+
non-keyed test:
161+
- skip:
162+
features: close_to
163+
164+
- do:
165+
search:
166+
body:
167+
size: 0
168+
aggs:
169+
percentile_ranks_int:
170+
percentile_ranks:
171+
field: int
172+
values: [50, 99]
173+
keyed: false
174+
175+
- match: { hits.total.value: 4 }
176+
- match: { aggregations.percentile_ranks_int.values.0.key: 50}
177+
- close_to: { aggregations.percentile_ranks_int.values.0.value: { value: 37.0, error: 1} }
178+
- match: { aggregations.percentile_ranks_int.values.1.key: 99}
179+
- close_to: { aggregations.percentile_ranks_int.values.1.value: { value: 61.5, error: 1} }
180+

0 commit comments

Comments
 (0)