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