//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET:
//ORIGINAL LINE: @Override public index.BinaryDocValues getBinary(index.FieldInfo fieldInfo) throws java.io.IOException
        public override BinaryDocValues getBinary(FieldInfo fieldInfo)
        {
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final OneField field = fields.get(fieldInfo.name);
            OneField field = fields[fieldInfo.name];

            // SegmentCoreReaders already verifies this field is
            // valid:
            Debug.Assert(field != null);

//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final store.IndexInput in = data.clone();
            IndexInput @in = data.clone();
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final util.BytesRef scratch = new util.BytesRef();
            BytesRef scratch = new BytesRef();
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final java.text.DecimalFormat decoder = new java.text.DecimalFormat(field.pattern, new java.text.DecimalFormatSymbols(java.util.Locale.ROOT));
            DecimalFormat decoder = new DecimalFormat(field.pattern, new DecimalFormatSymbols(Locale.ROOT));

            return(new BinaryDocValuesAnonymousInnerClassHelper(this, field, @in, scratch, decoder));
        }
Example #2
0
        public void FieldTest()
        {
            var timingHelper = new TimingHelper(_warmupIterations, _iterations);

            // One field.
            var oneFieldType = this._assembly.GetType("AssemblyToProcess.Performance.OneField");
            var instance     = (dynamic)Activator.CreateInstance(oneFieldType);
            var oneField     = new OneField();

            timingHelper.TimeIt("One Field",
                                new TimingHelper.Data("Deep Copy", () => instance.DeepCopy()),
                                new TimingHelper.Data("Hand Copy", () => instance.HCopy()),
                                new TimingHelper.Data("Clone", () => oneField.Clone())
                                );

            // Five fields.
            var fiveFieldsType = this._assembly.GetType("AssemblyToProcess.Performance.FiveFields");

            instance = (dynamic)Activator.CreateInstance(fiveFieldsType);
            var fiveFields = new FiveFields();

            timingHelper.TimeIt("Five Fields",
                                new TimingHelper.Data("Deep Copy", () => instance.DeepCopy()),
                                new TimingHelper.Data("Hand Copy", () => instance.HCopy()),
                                new TimingHelper.Data("Clone", () => fiveFields.Clone())
                                );

            // Ten fields.
            var tenFieldsType = this._assembly.GetType("AssemblyToProcess.Performance.TenFields");

            instance = (dynamic)Activator.CreateInstance(tenFieldsType);
            var tenFields = new TenFields();

            timingHelper.TimeIt("Ten Fields",
                                new TimingHelper.Data("Deep Copy", () => instance.DeepCopy()),
                                new TimingHelper.Data("Hand Copy", () => instance.HCopy()),
                                new TimingHelper.Data("Clone", () => tenFields.Clone())
                                );
        }
Example #3
0
        public SimpleTextDocValuesReader(SegmentReadState state, string ext)
        {
            DATA = state.Directory.OpenInput(
                IndexFileNames.SegmentFileName(state.SegmentInfo.Name, state.SegmentSuffix, ext), state.Context);
            MAX_DOC = state.SegmentInfo.DocCount;

            while (true)
            {
                ReadLine();
                if (SCRATCH.Equals(SimpleTextDocValuesWriter.END))
                {
                    break;
                }
                Debug.Assert(StartsWith(SimpleTextDocValuesWriter.FIELD), SCRATCH.Utf8ToString());
                var fieldName = StripPrefix(SimpleTextDocValuesWriter.FIELD);
                var field     = new OneField();

                FIELDS[fieldName] = field;

                ReadLine();
                Debug.Assert(StartsWith(SimpleTextDocValuesWriter.TYPE), SCRATCH.Utf8ToString());

                var dvType =
                    (FieldInfo.DocValuesType_e)
                    Enum.Parse(typeof(FieldInfo.DocValuesType_e), StripPrefix(SimpleTextDocValuesWriter.TYPE));

                if (dvType == FieldInfo.DocValuesType_e.NUMERIC)
                {
                    ReadLine();
                    Debug.Assert(StartsWith(SimpleTextDocValuesWriter.MINVALUE),
                                 "got " + SCRATCH.Utf8ToString() + " field=" + fieldName + " ext=" + ext);
                    field.MinValue = Convert.ToInt64(StripPrefix(SimpleTextDocValuesWriter.MINVALUE));
                    ReadLine();
                    Debug.Assert(StartsWith(SimpleTextDocValuesWriter.PATTERN));
                    field.Pattern = StripPrefix(SimpleTextDocValuesWriter.PATTERN);
                    field.DataStartFilePointer = DATA.FilePointer;
                    DATA.Seek(DATA.FilePointer + (1 + field.Pattern.Length + 2) * MAX_DOC);
                }
                else if (dvType == FieldInfo.DocValuesType_e.BINARY)
                {
                    ReadLine();
                    Debug.Assert(StartsWith(SimpleTextDocValuesWriter.MAXLENGTH));
                    field.MaxLength = Convert.ToInt32(StripPrefix(SimpleTextDocValuesWriter.MAXLENGTH));
                    ReadLine();
                    Debug.Assert(StartsWith(SimpleTextDocValuesWriter.PATTERN));
                    field.Pattern = StripPrefix(SimpleTextDocValuesWriter.PATTERN);
                    field.DataStartFilePointer = DATA.FilePointer;
                    DATA.Seek(DATA.FilePointer + (9 + field.Pattern.Length + field.MaxLength + 2) * MAX_DOC);
                }
                else if (dvType == FieldInfo.DocValuesType_e.SORTED || dvType == FieldInfo.DocValuesType_e.SORTED_SET)
                {
                    ReadLine();
                    Debug.Assert(StartsWith(SimpleTextDocValuesWriter.NUMVALUES));
                    field.NumValues = Convert.ToInt64(StripPrefix(SimpleTextDocValuesWriter.NUMVALUES));
                    ReadLine();
                    Debug.Assert(StartsWith(SimpleTextDocValuesWriter.MAXLENGTH));
                    field.MaxLength = Convert.ToInt32(StripPrefix(SimpleTextDocValuesWriter.MAXLENGTH));
                    ReadLine();
                    Debug.Assert(StartsWith(SimpleTextDocValuesWriter.PATTERN));
                    field.Pattern = StripPrefix(SimpleTextDocValuesWriter.PATTERN);
                    ReadLine();
                    Debug.Assert(StartsWith(SimpleTextDocValuesWriter.ORDPATTERN));
                    field.OrdPattern           = StripPrefix(SimpleTextDocValuesWriter.ORDPATTERN);
                    field.DataStartFilePointer = DATA.FilePointer;
                    DATA.Seek(DATA.FilePointer + (9 + field.Pattern.Length + field.MaxLength) * field.NumValues +
                              (1 + field.OrdPattern.Length) * MAX_DOC);
                }
                else
                {
                    throw new InvalidEnumArgumentException();
                }
            }

            // We should only be called from above if at least one
            // field has DVs:
            Debug.Assert(FIELDS.Count > 0);
        }
Example #4
0
 public BinaryDocValuesAnonymousInnerClassHelper(SimpleTextDocValuesReader outerInstance, OneField field,
                                                 IndexInput input, BytesRef scratch)
 {
     _outerInstance = outerInstance;
     _field         = field;
     _input         = input;
     _scratch       = scratch;
 }
        // LUCENENET NOTE: Changed from public to internal because the class had to be made public, but is not for public use.
        internal SimpleTextDocValuesReader(SegmentReadState state, string ext)
        {
            data = state.Directory.OpenInput(
                IndexFileNames.SegmentFileName(state.SegmentInfo.Name, state.SegmentSuffix, ext), state.Context);
            maxDoc = state.SegmentInfo.DocCount;

            while (true)
            {
                ReadLine();
                if (scratch.Equals(SimpleTextDocValuesWriter.END))
                {
                    break;
                }
                Debug.Assert(StartsWith(SimpleTextDocValuesWriter.FIELD), scratch.Utf8ToString());
                var fieldName = StripPrefix(SimpleTextDocValuesWriter.FIELD);
                var field     = new OneField();

                fields[fieldName] = field;

                ReadLine();
                Debug.Assert(StartsWith(SimpleTextDocValuesWriter.TYPE), scratch.Utf8ToString());

                var dvType =
                    (DocValuesType)
                    Enum.Parse(typeof(DocValuesType), StripPrefix(SimpleTextDocValuesWriter.TYPE));

                if (dvType == DocValuesType.NUMERIC)
                {
                    ReadLine();
                    Debug.Assert(StartsWith(SimpleTextDocValuesWriter.MINVALUE),
                                 "got " + scratch.Utf8ToString() + " field=" + fieldName + " ext=" + ext);
                    field.MinValue = Convert.ToInt64(StripPrefix(SimpleTextDocValuesWriter.MINVALUE), CultureInfo.InvariantCulture);
                    ReadLine();
                    Debug.Assert(StartsWith(SimpleTextDocValuesWriter.PATTERN));
                    field.Pattern = StripPrefix(SimpleTextDocValuesWriter.PATTERN);
                    field.DataStartFilePointer = data.GetFilePointer();
                    data.Seek(data.GetFilePointer() + (1 + field.Pattern.Length + 2) * maxDoc);
                }
                else if (dvType == DocValuesType.BINARY)
                {
                    ReadLine();
                    Debug.Assert(StartsWith(SimpleTextDocValuesWriter.MAXLENGTH));
                    field.MaxLength = Convert.ToInt32(StripPrefix(SimpleTextDocValuesWriter.MAXLENGTH), CultureInfo.InvariantCulture);
                    ReadLine();
                    Debug.Assert(StartsWith(SimpleTextDocValuesWriter.PATTERN));
                    field.Pattern = StripPrefix(SimpleTextDocValuesWriter.PATTERN);
                    field.DataStartFilePointer = data.GetFilePointer();
                    data.Seek(data.GetFilePointer() + (9 + field.Pattern.Length + field.MaxLength + 2) * maxDoc);
                }
                else if (dvType == DocValuesType.SORTED || dvType == DocValuesType.SORTED_SET)
                {
                    ReadLine();
                    Debug.Assert(StartsWith(SimpleTextDocValuesWriter.NUMVALUES));
                    field.NumValues = Convert.ToInt64(StripPrefix(SimpleTextDocValuesWriter.NUMVALUES), CultureInfo.InvariantCulture);
                    ReadLine();
                    Debug.Assert(StartsWith(SimpleTextDocValuesWriter.MAXLENGTH));
                    field.MaxLength = Convert.ToInt32(StripPrefix(SimpleTextDocValuesWriter.MAXLENGTH), CultureInfo.InvariantCulture);
                    ReadLine();
                    Debug.Assert(StartsWith(SimpleTextDocValuesWriter.PATTERN));
                    field.Pattern = StripPrefix(SimpleTextDocValuesWriter.PATTERN);
                    ReadLine();
                    Debug.Assert(StartsWith(SimpleTextDocValuesWriter.ORDPATTERN));
                    field.OrdPattern           = StripPrefix(SimpleTextDocValuesWriter.ORDPATTERN);
                    field.DataStartFilePointer = data.GetFilePointer();
                    data.Seek(data.GetFilePointer() + (9 + field.Pattern.Length + field.MaxLength) * field.NumValues +
                              (1 + field.OrdPattern.Length) * maxDoc);
                }
                else
                {
                    throw new ArgumentOutOfRangeException();
                }
            }

            // We should only be called from above if at least one
            // field has DVs:
            Debug.Assert(fields.Count > 0);
        }
        // LUCENENET NOTE: Changed from public to internal because the class had to be made public, but is not for public use.
        internal SimpleTextDocValuesReader(SegmentReadState state, string ext)
        {
            data = state.Directory.OpenInput(
                IndexFileNames.SegmentFileName(state.SegmentInfo.Name, state.SegmentSuffix, ext), state.Context);
            maxDoc = state.SegmentInfo.DocCount;

            while (true)
            {
                ReadLine();
                if (scratch.Equals(SimpleTextDocValuesWriter.END))
                {
                    break;
                }
                // LUCENENET specific - use wrapper BytesRefFormatter struct to defer building the string unless string.Format() is called
                if (Debugging.AssertsEnabled)
                {
                    Debugging.Assert(StartsWith(SimpleTextDocValuesWriter.FIELD), "{0}", new BytesRefFormatter(scratch, BytesRefFormat.UTF8));
                }
                var fieldName = StripPrefix(SimpleTextDocValuesWriter.FIELD);
                var field     = new OneField();

                fields[fieldName] = field;

                ReadLine();
                // LUCENENET specific - use wrapper BytesRefFormatter struct to defer building the string unless string.Format() is called
                if (Debugging.AssertsEnabled)
                {
                    Debugging.Assert(StartsWith(SimpleTextDocValuesWriter.TYPE), "{0}", new BytesRefFormatter(scratch, BytesRefFormat.UTF8));
                }

                var dvType = (DocValuesType)Enum.Parse(typeof(DocValuesType), StripPrefix(SimpleTextDocValuesWriter.TYPE));
                // if (Debugging.AssertsEnabled) Debugging.Assert(dvType != null); // LUCENENET: Not possible for an enum to be null in .NET
                if (dvType == DocValuesType.NUMERIC)
                {
                    ReadLine();
                    // LUCENENET specific - use wrapper BytesRefFormatter struct to defer building the string unless string.Format() is called
                    if (Debugging.AssertsEnabled)
                    {
                        Debugging.Assert(StartsWith(SimpleTextDocValuesWriter.MINVALUE), "got {0} field={1} ext={2}", new BytesRefFormatter(scratch, BytesRefFormat.UTF8), fieldName, ext);
                    }
                    field.MinValue = Convert.ToInt64(StripPrefix(SimpleTextDocValuesWriter.MINVALUE), CultureInfo.InvariantCulture);
                    ReadLine();
                    if (Debugging.AssertsEnabled)
                    {
                        Debugging.Assert(StartsWith(SimpleTextDocValuesWriter.PATTERN));
                    }
                    field.Pattern = StripPrefix(SimpleTextDocValuesWriter.PATTERN);
                    field.DataStartFilePointer = data.GetFilePointer();
                    data.Seek(data.GetFilePointer() + (1 + field.Pattern.Length + 2) * maxDoc);
                }
                else if (dvType == DocValuesType.BINARY)
                {
                    ReadLine();
                    if (Debugging.AssertsEnabled)
                    {
                        Debugging.Assert(StartsWith(SimpleTextDocValuesWriter.MAXLENGTH));
                    }
                    field.MaxLength = Convert.ToInt32(StripPrefix(SimpleTextDocValuesWriter.MAXLENGTH), CultureInfo.InvariantCulture);
                    ReadLine();
                    if (Debugging.AssertsEnabled)
                    {
                        Debugging.Assert(StartsWith(SimpleTextDocValuesWriter.PATTERN));
                    }
                    field.Pattern = StripPrefix(SimpleTextDocValuesWriter.PATTERN);
                    field.DataStartFilePointer = data.GetFilePointer();
                    data.Seek(data.GetFilePointer() + (9 + field.Pattern.Length + field.MaxLength + 2) * maxDoc);
                }
                else if (dvType == DocValuesType.SORTED || dvType == DocValuesType.SORTED_SET)
                {
                    ReadLine();
                    if (Debugging.AssertsEnabled)
                    {
                        Debugging.Assert(StartsWith(SimpleTextDocValuesWriter.NUMVALUES));
                    }
                    field.NumValues = Convert.ToInt64(StripPrefix(SimpleTextDocValuesWriter.NUMVALUES), CultureInfo.InvariantCulture);
                    ReadLine();
                    if (Debugging.AssertsEnabled)
                    {
                        Debugging.Assert(StartsWith(SimpleTextDocValuesWriter.MAXLENGTH));
                    }
                    field.MaxLength = Convert.ToInt32(StripPrefix(SimpleTextDocValuesWriter.MAXLENGTH), CultureInfo.InvariantCulture);
                    ReadLine();
                    if (Debugging.AssertsEnabled)
                    {
                        Debugging.Assert(StartsWith(SimpleTextDocValuesWriter.PATTERN));
                    }
                    field.Pattern = StripPrefix(SimpleTextDocValuesWriter.PATTERN);
                    ReadLine();
                    if (Debugging.AssertsEnabled)
                    {
                        Debugging.Assert(StartsWith(SimpleTextDocValuesWriter.ORDPATTERN));
                    }
                    field.OrdPattern           = StripPrefix(SimpleTextDocValuesWriter.ORDPATTERN);
                    field.DataStartFilePointer = data.GetFilePointer();
                    data.Seek(data.GetFilePointer() + (9 + field.Pattern.Length + field.MaxLength) * field.NumValues +
                              (1 + field.OrdPattern.Length) * maxDoc);
                }
                else
                {
                    throw new ArgumentOutOfRangeException();
                }
            }

            // We should only be called from above if at least one
            // field has DVs:
            if (Debugging.AssertsEnabled)
            {
                Debugging.Assert(fields.Count > 0);
            }
        }
        public SimpleTextDocValuesReader(SegmentReadState state, string ext)
        {
            DATA = state.Directory.OpenInput(
                    IndexFileNames.SegmentFileName(state.SegmentInfo.Name, state.SegmentSuffix, ext), state.Context);
            MAX_DOC = state.SegmentInfo.DocCount;

            while (true)
            {
                ReadLine();
                if (SCRATCH.Equals(SimpleTextDocValuesWriter.END))
                {
                    break;
                }
                Debug.Assert(StartsWith(SimpleTextDocValuesWriter.FIELD), SCRATCH.Utf8ToString());
                var fieldName = StripPrefix(SimpleTextDocValuesWriter.FIELD);
                var field = new OneField();

                FIELDS[fieldName] = field;

                ReadLine();
                Debug.Assert(StartsWith(SimpleTextDocValuesWriter.TYPE), SCRATCH.Utf8ToString());

                var dvType =
                    (FieldInfo.DocValuesType_e)
                        Enum.Parse(typeof (FieldInfo.DocValuesType_e), StripPrefix(SimpleTextDocValuesWriter.TYPE));

                if (dvType == FieldInfo.DocValuesType_e.NUMERIC)
                {
                    ReadLine();
                    Debug.Assert(StartsWith(SimpleTextDocValuesWriter.MINVALUE),
                        "got " + SCRATCH.Utf8ToString() + " field=" + fieldName + " ext=" + ext);
                    field.MinValue = Convert.ToInt64(StripPrefix(SimpleTextDocValuesWriter.MINVALUE));
                    ReadLine();
                    Debug.Assert(StartsWith(SimpleTextDocValuesWriter.PATTERN));
                    field.Pattern = StripPrefix(SimpleTextDocValuesWriter.PATTERN);
                    field.DataStartFilePointer = DATA.FilePointer;
                    DATA.Seek(DATA.FilePointer + (1 + field.Pattern.Length + 2)*MAX_DOC);
                }
                else if (dvType == FieldInfo.DocValuesType_e.BINARY)
                {
                    ReadLine();
                    Debug.Assert(StartsWith(SimpleTextDocValuesWriter.MAXLENGTH));
                    field.MaxLength = Convert.ToInt32(StripPrefix(SimpleTextDocValuesWriter.MAXLENGTH));
                    ReadLine();
                    Debug.Assert(StartsWith(SimpleTextDocValuesWriter.PATTERN));
                    field.Pattern = StripPrefix(SimpleTextDocValuesWriter.PATTERN);
                    field.DataStartFilePointer = DATA.FilePointer;
                    DATA.Seek(DATA.FilePointer + (9 + field.Pattern.Length + field.MaxLength + 2)*MAX_DOC);
                }
                else if (dvType == FieldInfo.DocValuesType_e.SORTED || dvType == FieldInfo.DocValuesType_e.SORTED_SET)
                {
                    ReadLine();
                    Debug.Assert(StartsWith(SimpleTextDocValuesWriter.NUMVALUES));
                    field.NumValues = Convert.ToInt64(StripPrefix(SimpleTextDocValuesWriter.NUMVALUES));
                    ReadLine();
                    Debug.Assert(StartsWith(SimpleTextDocValuesWriter.MAXLENGTH));
                    field.MaxLength = Convert.ToInt32(StripPrefix(SimpleTextDocValuesWriter.MAXLENGTH));
                    ReadLine();
                    Debug.Assert(StartsWith(SimpleTextDocValuesWriter.PATTERN));
                    field.Pattern = StripPrefix(SimpleTextDocValuesWriter.PATTERN);
                    ReadLine();
                    Debug.Assert(StartsWith(SimpleTextDocValuesWriter.ORDPATTERN));
                    field.OrdPattern = StripPrefix(SimpleTextDocValuesWriter.ORDPATTERN);
                    field.DataStartFilePointer = DATA.FilePointer;
                    DATA.Seek(DATA.FilePointer + (9 + field.Pattern.Length + field.MaxLength)*field.NumValues +
                              (1 + field.OrdPattern.Length)*MAX_DOC);
                }
                else
                {
                    throw new InvalidEnumArgumentException();
                }
            }

            // We should only be called from above if at least one
            // field has DVs:
            Debug.Assert(FIELDS.Count > 0);
        }
 public SortedSetDocValuesAnonymousInnerClassHelper(SimpleTextDocValuesReader outerInstance,
     OneField field, IndexInput input, BytesRef scratch)
 {
     _outerInstance = outerInstance;
     _field = field;
     _input = input;
     _scratch = scratch;
     _decoderFormat = field.Pattern;
     _currentOrds = new string[0];
     _currentIndex = 0;
 }
 public SortedDocValuesAnonymousInnerClassHelper(SimpleTextDocValuesReader outerInstance,
     OneField field, IndexInput input, BytesRef scratch)
 {
     _outerInstance = outerInstance;
     _field = field;
     _input = input;
     _scratch = scratch;
     _decoderFormat = field.Pattern;
     _ordDecoderFormat = field.OrdPattern;
 }
 public NumericDocValuesAnonymousInnerClassHelper(SimpleTextDocValuesReader outerInstance,
     OneField field, IndexInput input, BytesRef scratch)
 {
     _outerInstance = outerInstance;
     _field = field;
     _input = input;
     _scratch = scratch;
 }
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET:
//ORIGINAL LINE: public SimpleTextDocValuesReader(index.SegmentReadState state, String ext) throws java.io.IOException
        public SimpleTextDocValuesReader(SegmentReadState state, string ext)
        {
            // System.out.println("dir=" + state.directory + " seg=" + state.segmentInfo.name + " file=" + IndexFileNames.segmentFileName(state.segmentInfo.name, state.segmentSuffix, ext));
            data   = state.directory.openInput(IndexFileNames.segmentFileName(state.segmentInfo.name, state.segmentSuffix, ext), state.context);
            maxDoc = state.segmentInfo.DocCount;
            while (true)
            {
                readLine();
                //System.out.println("READ field=" + scratch.utf8ToString());
                if (scratch.Equals(END))
                {
                    break;
                }
                Debug.Assert(startsWith(FIELD), scratch.utf8ToString());
                string fieldName = stripPrefix(FIELD);
                //System.out.println("  field=" + fieldName);

                OneField field = new OneField();
                fields[fieldName] = field;

                readLine();
                Debug.Assert(startsWith(TYPE), scratch.utf8ToString());

                FieldInfo.DocValuesType dvType = FieldInfo.DocValuesType.valueOf(stripPrefix(TYPE));
                Debug.Assert(dvType != null);
                if (dvType == FieldInfo.DocValuesType.NUMERIC)
                {
                    readLine();
                    Debug.Assert(startsWith(MINVALUE), "got " + scratch.utf8ToString() + " field=" + fieldName + " ext=" + ext);
                    field.minValue = Convert.ToInt64(stripPrefix(MINVALUE));
                    readLine();
                    Debug.Assert(startsWith(PATTERN));
                    field.pattern = stripPrefix(PATTERN);
                    field.dataStartFilePointer = data.FilePointer;
                    data.seek(data.FilePointer + (1 + field.pattern.Length + 2) * maxDoc);
                }
                else if (dvType == FieldInfo.DocValuesType.BINARY)
                {
                    readLine();
                    Debug.Assert(startsWith(MAXLENGTH));
                    field.maxLength = Convert.ToInt32(stripPrefix(MAXLENGTH));
                    readLine();
                    Debug.Assert(startsWith(PATTERN));
                    field.pattern = stripPrefix(PATTERN);
                    field.dataStartFilePointer = data.FilePointer;
                    data.seek(data.FilePointer + (9 + field.pattern.Length + field.maxLength + 2) * maxDoc);
                }
                else if (dvType == FieldInfo.DocValuesType.SORTED || dvType == FieldInfo.DocValuesType.SORTED_SET)
                {
                    readLine();
                    Debug.Assert(startsWith(NUMVALUES));
                    field.numValues = Convert.ToInt64(stripPrefix(NUMVALUES));
                    readLine();
                    Debug.Assert(startsWith(MAXLENGTH));
                    field.maxLength = Convert.ToInt32(stripPrefix(MAXLENGTH));
                    readLine();
                    Debug.Assert(startsWith(PATTERN));
                    field.pattern = stripPrefix(PATTERN);
                    readLine();
                    Debug.Assert(startsWith(ORDPATTERN));
                    field.ordPattern           = stripPrefix(ORDPATTERN);
                    field.dataStartFilePointer = data.FilePointer;
                    data.seek(data.FilePointer + (9 + field.pattern.Length + field.maxLength) * field.numValues + (1 + field.ordPattern.Length) * maxDoc);
                }
                else
                {
                    throw new AssertionError();
                }
            }

            // We should only be called from above if at least one
            // field has DVs:
            Debug.Assert(fields.Count > 0);
        }
 public void ShouldConsiderConformingOneFieldObjectsEqual()
 {
     var first = new OneField(1);
     var second = new OneField(1);
     Assert.That(first.Equals(second), Is.True);
 }
 public void ShouldGenerateStringForOneFieldObject()
 {
     var value = new OneField(1);
     Assert.That(value.ToString(), Is.EqualTo("value: 1"));
 }
 public void ShouldGenerateHashCodeForOneFieldObject()
 {
     var value = new OneField(10);
     Assert.That(value.GetHashCode(), Is.EqualTo(HashCode.From(10)));
 }
 public void ShouldConsiderDifferingOneFieldObjectsNotEqual()
 {
     var first = new OneField(0);
     var second = new OneField(1);
     Assert.That(first.Equals(second), Is.False);
 }