@@ -48,32 +48,251 @@ setup:
4848 user : " d"
4949
5050---
51- " Basic Search " :
51+ rescale_0_1 :
52+ - skip :
53+ features : close_to
54+
55+ - do :
56+ search :
57+ index : foo
58+ body :
59+ size : 0
60+ aggs :
61+ users_by_day :
62+ date_histogram :
63+ field : timestamp
64+ calendar_interval : day
65+ aggs :
66+ percent_of_total_users :
67+ normalize :
68+ buckets_path : _count
69+ method : rescale_0_1
70+
71+ - length : { aggregations.users_by_day.buckets: 3 }
72+ - match : { aggregations.users_by_day.buckets.0.key_as_string: "2017-01-01T00:00:00.000Z" }
73+ - match : { aggregations.users_by_day.buckets.0.doc_count: 3 }
74+ - close_to : { aggregations.users_by_day.buckets.0.percent_of_total_users.value: { value: 1.0, error: 0.05 } }
75+ - match : { aggregations.users_by_day.buckets.1.key_as_string: "2017-01-02T00:00:00.000Z" }
76+ - match : { aggregations.users_by_day.buckets.1.doc_count: 2 }
77+ - close_to : { aggregations.users_by_day.buckets.1.percent_of_total_users.value: { value: 0.5, error: 0.05 }}
78+ - match : { aggregations.users_by_day.buckets.2.key_as_string: "2017-01-03T00:00:00.000Z" }
79+ - match : { aggregations.users_by_day.buckets.2.doc_count: 1 }
80+ - close_to : { aggregations.users_by_day.buckets.2.percent_of_total_users.value: { value: 0.0, error: 0.05 }}
81+
82+ ---
83+ rescale_0_100 :
84+ - skip :
85+ features : close_to
86+
87+ - do :
88+ search :
89+ index : foo
90+ body :
91+ size : 0
92+ aggs :
93+ users_by_day :
94+ date_histogram :
95+ field : timestamp
96+ calendar_interval : day
97+ aggs :
98+ percent_of_total_users :
99+ normalize :
100+ buckets_path : _count
101+ method : rescale_0_100
102+
103+ - length : { aggregations.users_by_day.buckets: 3 }
104+ - match : { aggregations.users_by_day.buckets.0.key_as_string: "2017-01-01T00:00:00.000Z" }
105+ - match : { aggregations.users_by_day.buckets.0.doc_count: 3 }
106+ - close_to : { aggregations.users_by_day.buckets.0.percent_of_total_users.value: { value: 100, error: 0.5 }}
107+ - match : { aggregations.users_by_day.buckets.1.key_as_string: "2017-01-02T00:00:00.000Z" }
108+ - match : { aggregations.users_by_day.buckets.1.doc_count: 2 }
109+ - close_to : { aggregations.users_by_day.buckets.1.percent_of_total_users.value: { value: 50, error: 0.5 }}
110+ - match : { aggregations.users_by_day.buckets.2.key_as_string: "2017-01-03T00:00:00.000Z" }
111+ - match : { aggregations.users_by_day.buckets.2.doc_count: 1 }
112+ - close_to : { aggregations.users_by_day.buckets.2.percent_of_total_users.value: { value: 0, error: 0.5 }}
113+
114+ ---
115+ percent_of_sum :
116+ - skip :
117+ features : close_to
118+
119+ - do :
120+ search :
121+ index : foo
122+ body :
123+ size : 0
124+ aggs :
125+ users_by_day :
126+ date_histogram :
127+ field : timestamp
128+ calendar_interval : day
129+ aggs :
130+ percent_of_total_users :
131+ normalize :
132+ buckets_path : _count
133+ method : percent_of_sum
134+
135+ - length : { aggregations.users_by_day.buckets: 3 }
136+ - match : { aggregations.users_by_day.buckets.0.key_as_string: "2017-01-01T00:00:00.000Z" }
137+ - match : { aggregations.users_by_day.buckets.0.doc_count: 3 }
138+ - close_to : { aggregations.users_by_day.buckets.0.percent_of_total_users.value: { value: 0.5, error: 0.05 }}
139+ - match : { aggregations.users_by_day.buckets.1.key_as_string: "2017-01-02T00:00:00.000Z" }
140+ - match : { aggregations.users_by_day.buckets.1.doc_count: 2 }
141+ - close_to : { aggregations.users_by_day.buckets.1.percent_of_total_users.value: { value: 0.3, error: 0.05 }}
142+ - match : { aggregations.users_by_day.buckets.2.key_as_string: "2017-01-03T00:00:00.000Z" }
143+ - match : { aggregations.users_by_day.buckets.2.doc_count: 1 }
144+ - close_to : { aggregations.users_by_day.buckets.2.percent_of_total_users.value: { value: 0.2, error: 0.05 }}
145+
146+ ---
147+ mean :
148+ - skip :
149+ features : close_to
150+
151+ - do :
152+ search :
153+ index : foo
154+ body :
155+ size : 0
156+ aggs :
157+ users_by_day :
158+ date_histogram :
159+ field : timestamp
160+ calendar_interval : day
161+ aggs :
162+ percent_of_total_users :
163+ normalize :
164+ buckets_path : _count
165+ method : mean
166+
167+ - length : { aggregations.users_by_day.buckets: 3 }
168+ - match : { aggregations.users_by_day.buckets.0.key_as_string: "2017-01-01T00:00:00.000Z" }
169+ - match : { aggregations.users_by_day.buckets.0.doc_count: 3 }
170+ - close_to : { aggregations.users_by_day.buckets.0.percent_of_total_users.value: { value: 0.5, error: 0.05 }}
171+ - match : { aggregations.users_by_day.buckets.1.key_as_string: "2017-01-02T00:00:00.000Z" }
172+ - match : { aggregations.users_by_day.buckets.1.doc_count: 2 }
173+ - close_to : { aggregations.users_by_day.buckets.1.percent_of_total_users.value: { value: 0.0, error: 0.05 }}
174+ - match : { aggregations.users_by_day.buckets.2.key_as_string: "2017-01-03T00:00:00.000Z" }
175+ - match : { aggregations.users_by_day.buckets.2.doc_count: 1 }
176+ - close_to : { aggregations.users_by_day.buckets.2.percent_of_total_users.value: { value: -0.5, error: 0.05 }}
177+
178+ ---
179+ zscore :
180+ - skip :
181+ features : close_to
52182
53183 - do :
54184 search :
55- index : " foo"
185+ index : foo
56186 body :
57187 size : 0
58188 aggs :
59189 users_by_day :
60190 date_histogram :
61- field : " timestamp"
62- calendar_interval : " day"
191+ field : timestamp
192+ calendar_interval : day
63193 aggs :
64194 percent_of_total_users :
65195 normalize :
66- buckets_path : " _count"
67- method : " percent_of_sum "
196+ buckets_path : _count
197+ method : z-score
68198
69199 - length : { aggregations.users_by_day.buckets: 3 }
70200 - match : { aggregations.users_by_day.buckets.0.key_as_string: "2017-01-01T00:00:00.000Z" }
71201 - match : { aggregations.users_by_day.buckets.0.doc_count: 3 }
72- - match : { aggregations.users_by_day.buckets.0.percent_of_total_users.value: 0.5 }
202+ - close_to : { aggregations.users_by_day.buckets.0.percent_of_total_users.value: { value: 1.2, error: 0.05 } }
73203 - match : { aggregations.users_by_day.buckets.1.key_as_string: "2017-01-02T00:00:00.000Z" }
74204 - match : { aggregations.users_by_day.buckets.1.doc_count: 2 }
75- - match : { aggregations.users_by_day.buckets.1.percent_of_total_users.value: 0.3333333333333333 }
205+ - close_to : { aggregations.users_by_day.buckets.1.percent_of_total_users.value: { value: 0.0, error: 0.05 } }
76206 - match : { aggregations.users_by_day.buckets.2.key_as_string: "2017-01-03T00:00:00.000Z" }
77207 - match : { aggregations.users_by_day.buckets.2.doc_count: 1 }
78- - match : { aggregations.users_by_day.buckets.2.percent_of_total_users.value: 0.16666666666666666 }
208+ - close_to : { aggregations.users_by_day.buckets.2.percent_of_total_users.value: { value: -1.22, error: 0.05 }}
209+
210+ ---
211+ softmax :
212+ - skip :
213+ features : close_to
79214
215+ - do :
216+ search :
217+ index : foo
218+ body :
219+ size : 0
220+ aggs :
221+ users_by_day :
222+ date_histogram :
223+ field : timestamp
224+ calendar_interval : day
225+ aggs :
226+ percent_of_total_users :
227+ normalize :
228+ buckets_path : _count
229+ method : softmax
230+
231+ - length : { aggregations.users_by_day.buckets: 3 }
232+ - match : { aggregations.users_by_day.buckets.0.key_as_string: "2017-01-01T00:00:00.000Z" }
233+ - match : { aggregations.users_by_day.buckets.0.doc_count: 3 }
234+ - close_to : { aggregations.users_by_day.buckets.0.percent_of_total_users.value: { value: 0.67, error: 0.05 }}
235+ - match : { aggregations.users_by_day.buckets.1.key_as_string: "2017-01-02T00:00:00.000Z" }
236+ - match : { aggregations.users_by_day.buckets.1.doc_count: 2 }
237+ - close_to : { aggregations.users_by_day.buckets.1.percent_of_total_users.value: { value: 0.24, error: 0.05 }}
238+ - match : { aggregations.users_by_day.buckets.2.key_as_string: "2017-01-03T00:00:00.000Z" }
239+ - match : { aggregations.users_by_day.buckets.2.doc_count: 1 }
240+ - close_to : { aggregations.users_by_day.buckets.2.percent_of_total_users.value: { value: 0.09, error: 0.05 }}
241+
242+ ---
243+ format :
244+ - skip :
245+ features : close_to
246+
247+ - do :
248+ search :
249+ index : foo
250+ body :
251+ size : 0
252+ aggs :
253+ users_by_day :
254+ date_histogram :
255+ field : timestamp
256+ calendar_interval : day
257+ aggs :
258+ percent_of_total_users :
259+ normalize :
260+ buckets_path : _count
261+ method : percent_of_sum
262+ format : 00.00%
263+
264+ - length : { aggregations.users_by_day.buckets: 3 }
265+ - match : { aggregations.users_by_day.buckets.0.key_as_string: "2017-01-01T00:00:00.000Z" }
266+ - match : { aggregations.users_by_day.buckets.0.doc_count: 3 }
267+ - close_to : { aggregations.users_by_day.buckets.0.percent_of_total_users.value: { value: 0.5, error: 0.05 }}
268+ - match : { aggregations.users_by_day.buckets.0.percent_of_total_users.value_as_string: 50.00% }
269+ - match : { aggregations.users_by_day.buckets.1.key_as_string: "2017-01-02T00:00:00.000Z" }
270+ - match : { aggregations.users_by_day.buckets.1.doc_count: 2 }
271+ - close_to : { aggregations.users_by_day.buckets.1.percent_of_total_users.value: { value: 0.3, error: 0.05 }}
272+ - match : { aggregations.users_by_day.buckets.1.percent_of_total_users.value_as_string: 33.33% }
273+ - match : { aggregations.users_by_day.buckets.2.key_as_string: "2017-01-03T00:00:00.000Z" }
274+ - match : { aggregations.users_by_day.buckets.2.doc_count: 1 }
275+ - close_to : { aggregations.users_by_day.buckets.2.percent_of_total_users.value: { value: 0.2, error: 0.05 }}
276+ - match : { aggregations.users_by_day.buckets.2.percent_of_total_users.value_as_string: 16.67% }
277+
278+ ---
279+ bad path :
280+ - skip :
281+ features : close_to
282+
283+ - do :
284+ catch : /No aggregation found for path \[badpath\]/
285+ search :
286+ index : foo
287+ body :
288+ size : 0
289+ aggs :
290+ users_by_day :
291+ date_histogram :
292+ field : timestamp
293+ calendar_interval : day
294+ aggs :
295+ percent_of_total_users :
296+ normalize :
297+ buckets_path : badpath
298+ method : rescale_0_1
0 commit comments