1+ using System . Linq ;
2+ using FluentAssertions ;
3+ using Nest . Tests . MockData . Domain ;
4+ using NUnit . Framework ;
5+
6+ namespace Nest . Tests . Integration . Aggregations
7+ {
8+ [ TestFixture ]
9+ public class CombinationTests : IntegrationTests
10+ {
11+ [ Test ]
12+ public void Percentiles ( )
13+ {
14+ var results = this . Client . Search < ElasticsearchProject > ( s => s
15+ . Size ( 0 )
16+ . Aggregations ( a => a
17+ . Stats ( "stats_agg" , t=> t . Field ( p=> p . LOC ) )
18+ . Percentiles ( "bucket_agg" , m => m
19+ . Field ( p => p . IntValues )
20+ . Percentages ( 97 , 99 , 99.9 )
21+ )
22+ )
23+ ) ;
24+ var percentilesAgg = results . Aggs . Percentiles ( "bucket_agg" ) ;
25+ percentilesAgg . Should ( ) . NotBeNull ( ) ;
26+ percentilesAgg . Items . Should ( ) . NotBeEmpty ( ) . And . HaveCount ( 3 ) ;
27+
28+ var statsBucket = results . Aggs . Stats ( "stats_agg" ) ;
29+ statsBucket . Should ( ) . NotBeNull ( ) ;
30+ statsBucket . Sum . Should ( ) . BeGreaterThan ( 1 ) ;
31+ }
32+
33+ [ Test ]
34+ public void Terms ( )
35+ {
36+ var results = this . Client . Search < ElasticsearchProject > ( s => s
37+ . Size ( 0 )
38+ . Aggregations ( a => a
39+ . Terms ( "stats_agg" , t=> t . Field ( p=> p . Name ) )
40+ . Percentiles ( "bucket_agg" , m => m
41+ . Field ( p => p . IntValues )
42+ . Percentages ( 97 , 99 , 99.9 )
43+ )
44+ )
45+ ) ;
46+ var percentilesAgg = results . Aggs . Percentiles ( "bucket_agg" ) ;
47+ percentilesAgg . Should ( ) . NotBeNull ( ) ;
48+ percentilesAgg . Items . Should ( ) . NotBeEmpty ( ) . And . HaveCount ( 3 ) ;
49+
50+ var statsBucket = results . Aggs . Terms ( "stats_agg" ) ;
51+ statsBucket . Should ( ) . NotBeNull ( ) ;
52+ statsBucket . Items . Should ( ) . NotBeEmpty ( ) ;
53+ }
54+
55+ [ Test ]
56+ public void Stats ( )
57+ {
58+ var results = this . Client . Search < ElasticsearchProject > ( s => s
59+ . Size ( 0 )
60+ . Aggregations ( a => a
61+ . Percentiles ( "bucket_agg" , m => m
62+ . Field ( p => p . IntValues )
63+ . Percentages ( 97 , 99 , 99.9 )
64+ )
65+ . Stats ( "stats_agg" , t=> t . Field ( p=> p . LOC ) )
66+ )
67+ ) ;
68+ var percentilesAgg = results . Aggs . Percentiles ( "bucket_agg" ) ;
69+ percentilesAgg . Should ( ) . NotBeNull ( ) ;
70+ percentilesAgg . Items . Should ( ) . NotBeEmpty ( ) . And . HaveCount ( 3 ) ;
71+
72+ var statsBucket = results . Aggs . Stats ( "stats_agg" ) ;
73+ statsBucket . Should ( ) . NotBeNull ( ) ;
74+ statsBucket . Sum . Should ( ) . BeGreaterThan ( 1 ) ;
75+ }
76+
77+ [ Test ]
78+ public void DateHistogram ( )
79+ {
80+ var results = this . Client . Search < ElasticsearchProject > ( s => s
81+ . Size ( 0 )
82+ . Aggregations ( a => a
83+ . DateHistogram ( "bucket_agg" , m => m
84+ . Field ( p => p . StartedOn )
85+ . Interval ( "1d" )
86+ )
87+ . Stats ( "stats_agg" , t=> t . Field ( p=> p . LOC ) )
88+ )
89+ ) ;
90+ var dateHisto = results . Aggs . DateHistogram ( "bucket_agg" ) ;
91+ dateHisto . Should ( ) . NotBeNull ( ) ;
92+ dateHisto . Items . Should ( ) . NotBeEmpty ( ) ;
93+
94+ var statsBucket = results . Aggs . Stats ( "stats_agg" ) ;
95+ statsBucket . Should ( ) . NotBeNull ( ) ;
96+ statsBucket . Sum . Should ( ) . BeGreaterThan ( 1 ) ;
97+ }
98+
99+ [ Test ]
100+ public void DateHistogramMultiple ( )
101+ {
102+ var results = this . Client . Search < ElasticsearchProject > ( s => s
103+ . Size ( 0 )
104+ . Aggregations ( a => a
105+ . DateHistogram ( "date1" , m => m
106+ . Field ( p => p . StartedOn )
107+ . Interval ( "1d" )
108+ )
109+ . DateHistogram ( "date2" , m => m
110+ . Field ( p => p . StartedOn )
111+ . Interval ( "1d" )
112+ )
113+ )
114+ ) ;
115+ var dateHisto = results . Aggs . DateHistogram ( "date1" ) ;
116+ dateHisto . Should ( ) . NotBeNull ( ) ;
117+ dateHisto . Items . Should ( ) . NotBeEmpty ( ) ;
118+
119+ var statsBucket = results . Aggs . DateHistogram ( "date2" ) ;
120+ statsBucket . Should ( ) . NotBeNull ( ) ;
121+ dateHisto . Items . Should ( ) . NotBeEmpty ( ) ;
122+ }
123+ }
124+ }
0 commit comments