public override void PartTwo() { var bots = ReadBots().ToArray(Input.Length); using var _ = Zzz.Context; var x = "x".IntConst(); var y = "y".IntConst(); var z = "z".IntConst(); var inRange = bots.Select(bot => ( ((x - bot.Position.X).Abs() + (y - bot.Position.Y).Abs() + (z - bot.Position.Z).Abs()) <= bot.Radius).Condition(1, 0)) .ToArray(); var sum = "sum".IntConst(); var dist = "dist".IntConst(); var o = Zzz.Optimize(); // sum = Number in range at x, y, z o.Add(sum == inRange.Sum()); // dist = Manhattan distance to 0, 0, 0. o.Add(dist == x.Abs() + y.Abs() + z.Abs()); var maxSum = o.MkMaximize(sum); var minDist = o.MkMinimize(dist); WriteLn(o.Check()); WriteLn(maxSum.Value); WriteLn(minDist.Value); }
public void TestReadWrite2() { var zzz = new Zzz { DateTimeOffset = new DateTimeOffset(new DateTime(2010, 1, 1), new TimeSpan(0, 1, 1, 0)) }; var data = serializer.Serialize(zzz); var zzz2 = serializer.Deserialize <Zzz>(data); Assert.AreEqual(zzz.DateTimeOffset, zzz2.DateTimeOffset); }
public void TestReadWrite2() { var zzz = new Zzz { TimeSpan = new TimeSpan(82354222765175) }; var data = serializer.Serialize(zzz); var zzz2 = serializer.Deserialize <Zzz>(data); Assert.AreEqual(zzz.TimeSpan, zzz2.TimeSpan); }
public void TestArray() { var zzz = new Zzz(); zzz.Properties.Add("zzz", serializer.Serialize(true)); zzz.Properties.Add("qxx", serializer.Serialize(false)); var data = serializer.Serialize(zzz); var zzz3 = serializer.Deserialize <Zzz>(data); Assert.AreEqual(2, zzz3.Properties.Count); Assert.AreEqual(true, serializer.Deserialize <bool>(zzz3.Properties["zzz"])); Assert.AreEqual(false, serializer.Deserialize <bool>(zzz3.Properties["qxx"])); }
public void TestReadWrite2() { var zzz = new Zzz { EndPoint = new IPEndPoint(new IPAddress(new byte[] { 123, 1, 2, 3 }), 146) }; var data = serializer.Serialize(zzz); var zzz2 = serializer.Deserialize <Zzz>(data); Assert.AreEqual(zzz.EndPoint, zzz2.EndPoint); zzz = new Zzz { EndPoint = new IPEndPoint(new IPAddress(Guid.NewGuid().ToByteArray()), 146) }; data = serializer.Serialize(zzz); zzz2 = serializer.Deserialize <Zzz>(data); Assert.AreEqual(zzz.EndPoint, zzz2.EndPoint); }
public void TestReadWrite2() { var zzz = new Zzz { Address = new IPAddress(new byte[] { 123, 1, 2, 3 }) }; var data = serializer.Serialize(zzz); var zzz2 = serializer.Deserialize <Zzz>(data); Assert.AreEqual(zzz.Address, zzz2.Address); zzz = new Zzz { Address = new IPAddress(Guid.NewGuid().ToByteArray()) }; data = serializer.Serialize(zzz); zzz2 = serializer.Deserialize <Zzz>(data); Assert.AreEqual(zzz.Address, zzz2.Address); }
public void TestConstructorCall() { var method = new DynamicMethod(Guid.NewGuid().ToString(), typeof(void), new[] { typeof(Zzz) }, typeof(Test)); using (var il = new GroboIL(method)) { il.Ldarg(0); il.Ldc_I4(8); il.Call(typeof(Zzz).GetConstructor(new[] { typeof(int) })); il.Ret(); Console.Write(il.GetILCode()); } var action = (Action <Zzz>)method.CreateDelegate(typeof(Action <Zzz>)); var zzz = new Zzz(3); action(zzz); Assert.AreEqual(8, zzz.X); }
protected bool Equals(Zzz other) { return(Id == other.Id); }