public void can_serialize_and_deserialize_icpc_monitor() { var ms = new MemoryStream(); var serializer = new XmlMessageSerializer(new DefaultReflection(), new DefaultKernel()); var submission = S("testuser A AC 11"); var builder = new IcpcMonitorBuilder(contest); object monitor = builder.BuildMonitor(new[] { submission }); serializer.Serialize(new[] { monitor }, ms); ms.Position = 0; serializer.Deserialize(ms); }
public void monitor_is_built_correctly() { var builder = new IcpcMonitorBuilder(contest); var p1ac11u1 = S("u1 A AC 11"); var p1wa15u1 = S("u1 A WA 15"); var p2wa17u1 = S("u1 B WA 17"); var p2ac21u1 = S("u1 B AC 21"); var p1ac1u2 = S("u2 A AC 1"); var p2ac5u2 = S("u2 B AC 5"); var monitor = (IcpcMonitor)builder.BuildMonitor(new[] { p1ac11u1 }); Assert.Equal(1, monitor.Lines[0].AcceptedProblems); Assert.Equal(1, monitor.Lines[0].Results[0]); Assert.Equal(11, monitor.Lines[0].Time); monitor = (IcpcMonitor)builder.BuildMonitor(new[] { p1ac11u1, p1wa15u1 }); Assert.Equal(1, monitor.Lines[0].AcceptedProblems); Assert.Equal(1, monitor.Lines[0].Results[0]); Assert.Equal(11, monitor.Lines[0].Time); monitor = (IcpcMonitor)builder.BuildMonitor(new[] { p1ac11u1, p1wa15u1, p2wa17u1 }); Assert.Equal(1, monitor.Lines[0].AcceptedProblems); Assert.Equal(-1, monitor.Lines[0].Results[1]); Assert.Equal(11, monitor.Lines[0].Time); monitor = (IcpcMonitor)builder.BuildMonitor(new[] { p1ac11u1, p1wa15u1, p2wa17u1, p2ac21u1 }); Assert.Equal(2, monitor.Lines[0].AcceptedProblems); Assert.Equal(2, monitor.Lines[0].Results[1]); Assert.Equal(11 + 21 + 20 * 1, monitor.Lines[0].Time); monitor = (IcpcMonitor)builder.BuildMonitor(new[] { p1ac11u1, p1wa15u1, p2wa17u1, p2ac21u1, p1ac1u2 }); Assert.Equal(1, monitor.Lines[1].AcceptedProblems); Assert.Equal(1, monitor.Lines[1].Time); monitor = (IcpcMonitor)builder.BuildMonitor(new[] { p1ac11u1, p1wa15u1, p2wa17u1, p2ac21u1, p1ac1u2, p2ac5u2 }); Assert.Equal(2, monitor.Lines[0].AcceptedProblems); Assert.Equal(1 + 5, monitor.Lines[0].Time); }