public override void Get(FieldDescriptor ds_, IDataReader dr_)
		{
			switch( ds_.Pos )
			{
				case 0: dr_.AsMessage( Vals??(Vals = new OptFields())); break;
				case 1: dr_.AsMessage( Reps??(Reps = new RepFields())); break;
				case 2: { var _f2_= new OptFields(); dr_.AsMessage(_f2_); _lots.Add(_f2_); } break;
				case 3: Tags = dr_.AsString(); break;
			}
		}
 public int RepeatedValuesProtoTests(int seed)
 {
     var opts = CreateRepeated(seed);
     var bto = opts.ToByteArray();
     if (Mode == 0) return bto.Length;
     var optz = new RepFields();
     optz.MergeFrom(bto);
     Assert.That(opts.Equals(optz), "PB multi values encode-decode");
     return bto.Length;
 }
 public int RepeatedValuesJsonTests(int seed)
 {
     var opts = CreateRepeated(seed);
     var sts = opts.ToString();
     if (Mode == 0) return sts.Length;
     var optz = new RepFields();
     optz.MergeFrom(sts);
     Assert.That(opts.Equals(optz), "JSON multi values encode-decode");
     return sts.Length;
 }
 protected RepFields CreateRepeated(int i32)
 {
     var reps = new RepFields();
     for (int i = 0; i < i32; i++)
         reps.AddI32(100 + i);
     reps.AddI32(1); reps.AddI32(-45); reps.AddI32(102); reps.AddI32(-800);
     reps.AddI64(-708); reps.AddI64(456); reps.AddI64(0); reps.AddI64(-77);
     reps.AddBln(true); reps.AddBln(false); reps.AddBln(true);
     reps.AddBts(new byte[2] { 1, 2 }); reps.AddBts(new byte[5] { 11, 22, 33, 44, 55 });
     reps.AddStr("one"); reps.AddStr("two"); reps.AddStr("three");
     reps.AddChr('A'); reps.AddChr('b'); reps.AddChr('C'); reps.AddChr('D'); reps.AddChr('e');
     reps.AddSi32(-11); reps.AddSi32(32); reps.AddSi32(-987654321);
     reps.AddSi64(-223311); reps.AddSi64(42); reps.AddSi64(-9876543210098765);
     reps.AddUi32(11); reps.AddUi32(32); reps.AddUi32(987654321);
     reps.AddUi64(223311); reps.AddUi64(42); reps.AddUi64(9876543210098765);
     reps.AddCur(new Currency(1100.345)); reps.AddCur(new Currency(451100.3451));
     reps.AddDat(new DateTime(2011, 9, 29, 11, 22, 33)); reps.AddDat(new DateTime(2010, 10, 27, 12, 12, 12));
     reps.AddFlt(12345.67F); reps.AddFlt(12345.68F); reps.AddFlt(-12345.67F);
     reps.AddDbl(12345.67D); reps.AddDbl(12345.68D); reps.AddDbl(-12345.67D);
     reps.AddDec(new Decimal(-435.908)); reps.AddDec(new Decimal(123435.90804));
     reps.AddEnu(Colors.Red); reps.AddEnu(Colors.Blue); reps.AddEnu(Colors.Green);
     reps.AddF32(88); reps.AddF32(3790874215); reps.AddF32(1009876535); reps.AddF32(25); reps.AddF32(0);
     reps.AddF64(99223311); reps.AddF64(5848644545353376343); reps.AddF64(987654321009876535);
     return reps;
 }