Creates a NumericRangeQuery. The table below specifies the required attributes and the defaults if optional attributes are omitted. For more detail on what each of the attributes actually do, consult the documentation for NumericRangeQuery: Attribute name Values Required Default fieldName String Yes N/A lowerTerm Specified by type Yes N/A upperTerm Specified by type Yes N/A type int, long, float, double No int includeLower true, false No true includeUpper true, false No true precisionStep int No 4 A ParserException will be thrown if an error occurs parsing the supplied lowerTerm or upperTerm into the numeric type specified by type.
Inheritance: IQueryBuilder
        public void TestGetFilterLong()
        {
            NumericRangeQueryBuilder filterBuilder = new NumericRangeQueryBuilder();

            String      xml    = "<NumericRangeQuery fieldName='AGE' type='LoNg' lowerTerm='-2321' upperTerm='60000000'/>";
            XmlDocument doc    = GetDocumentFromString(xml);
            Query       filter = filterBuilder.GetQuery(doc.DocumentElement);

            assertTrue(filter is NumericRangeQuery <long>);
            NumericRangeQuery <long> numRangeFilter = (NumericRangeQuery <long>)filter;

            assertEquals(Convert.ToInt64(-2321L), numRangeFilter.Min);
            assertEquals(Convert.ToInt64(60000000L), numRangeFilter.Max);
            assertEquals("AGE", numRangeFilter.Field);
            assertTrue(numRangeFilter.IncludesMin());
            assertTrue(numRangeFilter.IncludesMax());

            String      xml2    = "<NumericRangeQuery fieldName='AGE' type='LoNg' lowerTerm='-2321' upperTerm='60000000' includeUpper='false'/>";
            XmlDocument doc2    = GetDocumentFromString(xml2);
            Query       filter2 = filterBuilder.GetQuery(doc2.DocumentElement);

            assertTrue(filter2 is NumericRangeQuery <long>);

            NumericRangeQuery <long> numRangeFilter2 = (NumericRangeQuery <long>)filter2;

            assertEquals(Convert.ToInt64(-2321L), numRangeFilter2.Min);
            assertEquals(Convert.ToInt64(60000000L), numRangeFilter2.Max);
            assertEquals("AGE", numRangeFilter2.Field);
            assertTrue(numRangeFilter2.IncludesMin());
            assertFalse(numRangeFilter2.IncludesMax());
        }
        public void TestGetFilterFloat()
        {
            NumericRangeQueryBuilder filterBuilder = new NumericRangeQueryBuilder();

            String      xml = "<NumericRangeQuery fieldName='AGE' type='FLOAT' lowerTerm='-2.321432' upperTerm='32432.23'/>";
            XmlDocument doc = GetDocumentFromString(xml);

            Query filter = filterBuilder.GetQuery(doc.DocumentElement);

            assertTrue(filter is NumericRangeQuery <float>);

            NumericRangeQuery <float> numRangeFilter = (NumericRangeQuery <float>)filter;

            assertEquals(Convert.ToSingle(-2.321432f), numRangeFilter.Min);
            assertEquals(Convert.ToSingle(32432.23f), numRangeFilter.Max);
            assertEquals("AGE", numRangeFilter.Field);
            assertTrue(numRangeFilter.IncludesMin());
            assertTrue(numRangeFilter.IncludesMax());

            String      xml2 = "<NumericRangeQuery fieldName='AGE' type='FLOAT' lowerTerm='-2.321432' upperTerm='32432.23' includeUpper='false' precisionStep='2' />";
            XmlDocument doc2 = GetDocumentFromString(xml2);

            Query filter2 = filterBuilder.GetQuery(doc2.DocumentElement);

            assertTrue(filter2 is NumericRangeQuery <float>);

            NumericRangeQuery <float> numRangeFilter2 = (NumericRangeQuery <float>)filter2;

            assertEquals(Convert.ToSingle(-2.321432f), numRangeFilter2.Min);
            assertEquals(Convert.ToSingle(32432.23f), numRangeFilter2.Max);
            assertEquals("AGE", numRangeFilter2.Field);
            assertTrue(numRangeFilter2.IncludesMin());
            assertFalse(numRangeFilter2.IncludesMax());
        }
Beispiel #3
0
        public void TestGetFilterInt()
        {
            NumericRangeQueryBuilder filterBuilder = new NumericRangeQueryBuilder();

            String      xml    = "<NumericRangeQuery fieldName='AGE' type='int' lowerTerm='-1' upperTerm='10'/>";
            XmlDocument doc    = GetDocumentFromString(xml);
            Query       filter = filterBuilder.GetQuery(doc.DocumentElement);

            assertTrue(filter is NumericRangeQuery <int>);

            NumericRangeQuery <int> numRangeFilter = (NumericRangeQuery <int>)filter;

            assertEquals(Convert.ToInt32(-1), numRangeFilter.Min);
            assertEquals(Convert.ToInt32(10), numRangeFilter.Max);
            assertEquals("AGE", numRangeFilter.Field);
            assertTrue(numRangeFilter.IncludesMin);
            assertTrue(numRangeFilter.IncludesMax);

            String      xml2    = "<NumericRangeQuery fieldName='AGE' type='int' lowerTerm='-1' upperTerm='10' includeUpper='false'/>";
            XmlDocument doc2    = GetDocumentFromString(xml2);
            Query       filter2 = filterBuilder.GetQuery(doc2.DocumentElement);

            assertTrue(filter2 is NumericRangeQuery <int>);

            NumericRangeQuery <int> numRangeFilter2 = (NumericRangeQuery <int>)filter2;

            assertEquals(Convert.ToInt32(-1), numRangeFilter2.Min);
            assertEquals(Convert.ToInt32(10), numRangeFilter2.Max);
            assertEquals("AGE", numRangeFilter2.Field);
            assertTrue(numRangeFilter2.IncludesMin);
            assertFalse(numRangeFilter2.IncludesMax);
        }
Beispiel #4
0
        public void TestGetFilterDouble()
        {
            NumericRangeQueryBuilder filterBuilder = new NumericRangeQueryBuilder();

            String      xml = "<NumericRangeQuery fieldName='AGE' type='doubLe' lowerTerm='-23.21' upperTerm='60000.00023'/>";
            XmlDocument doc = GetDocumentFromString(xml);

            Query filter = filterBuilder.GetQuery(doc.DocumentElement);

            assertTrue(filter is NumericRangeQuery <double>);

            NumericRangeQuery <double> numRangeFilter = (NumericRangeQuery <double>)filter;

            assertEquals(Convert.ToDouble(-23.21d), numRangeFilter.Min);
            assertEquals(Convert.ToDouble(60000.00023d), numRangeFilter.Max);
            assertEquals("AGE", numRangeFilter.Field);
            assertTrue(numRangeFilter.IncludesMin);
            assertTrue(numRangeFilter.IncludesMax);

            String      xml2    = "<NumericRangeQuery fieldName='AGE' type='doubLe' lowerTerm='-23.21' upperTerm='60000.00023' includeUpper='false'/>";
            XmlDocument doc2    = GetDocumentFromString(xml2);
            Query       filter2 = filterBuilder.GetQuery(doc2.DocumentElement);

            assertTrue(filter2 is NumericRangeQuery <double>);

            NumericRangeQuery <double> numRangeFilter2 = (NumericRangeQuery <double>)filter2;

            assertEquals(Convert.ToDouble(-23.21d), numRangeFilter2.Min);
            assertEquals(Convert.ToDouble(60000.00023d), numRangeFilter2.Max);
            assertEquals("AGE", numRangeFilter2.Field);
            assertTrue(numRangeFilter2.IncludesMin);
            assertFalse(numRangeFilter2.IncludesMax);
        }
        public void TestGetFilterLong()
        {
            NumericRangeQueryBuilder filterBuilder = new NumericRangeQueryBuilder();

            String xml = "<NumericRangeQuery fieldName='AGE' type='LoNg' lowerTerm='-2321' upperTerm='60000000'/>";
            XmlDocument doc = GetDocumentFromString(xml);
            Query filter = filterBuilder.GetQuery(doc.DocumentElement);
            assertTrue(filter is NumericRangeQuery<long>);
            NumericRangeQuery<long> numRangeFilter = (NumericRangeQuery<long>)filter;
            assertEquals(Convert.ToInt64(-2321L), numRangeFilter.Min);
            assertEquals(Convert.ToInt64(60000000L), numRangeFilter.Max);
            assertEquals("AGE", numRangeFilter.Field);
            assertTrue(numRangeFilter.IncludesMin());
            assertTrue(numRangeFilter.IncludesMax());

            String xml2 = "<NumericRangeQuery fieldName='AGE' type='LoNg' lowerTerm='-2321' upperTerm='60000000' includeUpper='false'/>";
            XmlDocument doc2 = GetDocumentFromString(xml2);
            Query filter2 = filterBuilder.GetQuery(doc2.DocumentElement);
            assertTrue(filter2 is NumericRangeQuery<long>);

            NumericRangeQuery<long> numRangeFilter2 = (NumericRangeQuery<long>)filter2;
            assertEquals(Convert.ToInt64(-2321L), numRangeFilter2.Min);
            assertEquals(Convert.ToInt64(60000000L), numRangeFilter2.Max);
            assertEquals("AGE", numRangeFilter2.Field);
            assertTrue(numRangeFilter2.IncludesMin());
            assertFalse(numRangeFilter2.IncludesMax());
        }
        public void TestGetFilterHandleNumericParseErrorStrict()
        {
            NumericRangeQueryBuilder filterBuilder = new NumericRangeQueryBuilder();

            String xml = "<NumericRangeQuery fieldName='AGE' type='int' lowerTerm='-1' upperTerm='NaN'/>";
            XmlDocument doc = GetDocumentFromString(xml);
            try
            {
                filterBuilder.GetQuery(doc.DocumentElement);
            }
#pragma warning disable 168
            catch (ParserException e)
#pragma warning restore 168
            {
                return;
            }
            fail("Expected to throw " + typeof(ParserException));
        }
        public void TestGetFilterHandleNumericParseErrorStrict()
        {
            NumericRangeQueryBuilder filterBuilder = new NumericRangeQueryBuilder();

            String      xml = "<NumericRangeQuery fieldName='AGE' type='int' lowerTerm='-1' upperTerm='NaN'/>";
            XmlDocument doc = GetDocumentFromString(xml);

            try
            {
                filterBuilder.GetQuery(doc.DocumentElement);
            }
#pragma warning disable 168
            catch (ParserException e)
#pragma warning restore 168
            {
                return;
            }
            fail("Expected to throw " + typeof(ParserException));
        }
        public void TestGetFilterFloat()
        {
            NumericRangeQueryBuilder filterBuilder = new NumericRangeQueryBuilder();

            String xml = "<NumericRangeQuery fieldName='AGE' type='FLOAT' lowerTerm='-2.321432' upperTerm='32432.23'/>";
            XmlDocument doc = GetDocumentFromString(xml);

            Query filter = filterBuilder.GetQuery(doc.DocumentElement);
            assertTrue(filter is NumericRangeQuery<float>);

            NumericRangeQuery<float> numRangeFilter = (NumericRangeQuery<float>)filter;
            assertEquals(Convert.ToSingle(-2.321432f), numRangeFilter.Min);
            assertEquals(Convert.ToSingle(32432.23f), numRangeFilter.Max);
            assertEquals("AGE", numRangeFilter.Field);
            assertTrue(numRangeFilter.IncludesMin());
            assertTrue(numRangeFilter.IncludesMax());

            String xml2 = "<NumericRangeQuery fieldName='AGE' type='FLOAT' lowerTerm='-2.321432' upperTerm='32432.23' includeUpper='false' precisionStep='2' />";
            XmlDocument doc2 = GetDocumentFromString(xml2);

            Query filter2 = filterBuilder.GetQuery(doc2.DocumentElement);
            assertTrue(filter2 is NumericRangeQuery<float>);

            NumericRangeQuery<float> numRangeFilter2 = (NumericRangeQuery<float>)filter2;
            assertEquals(Convert.ToSingle(-2.321432f), numRangeFilter2.Min);
            assertEquals(Convert.ToSingle(32432.23f), numRangeFilter2.Max);
            assertEquals("AGE", numRangeFilter2.Field);
            assertTrue(numRangeFilter2.IncludesMin());
            assertFalse(numRangeFilter2.IncludesMax());
        }