예제 #1
0
        /// <summary>
        /// Save to debugging with tiers softwares
        /// /!\ Test Chain SgfReader+SgfCompiler+GoSgfBuilder+SgfWriter!
        /// </summary>
        /// <param name="name"></param>
        /// <returns></returns>
        private static void SaveActual(string name, SGFTree actual)
        {
            var file = Path.Combine(AssemblyLocation, "usecases", string.Concat(name, "ex.sgf"));

            Trace.WriteLine($"saveAs result to {file}");
            using (var stream = File.Open(file, FileMode.Truncate, FileAccess.ReadWrite))
                using (var sw = new StreamWriter(stream, Encoding.UTF8))
                {
                    var writer = new SgfWriter(sw, true);
                    writer.WriteSgfTree(actual);
                }
        }
예제 #2
0
        public void When_EmptyTree_Do_not_Write()
        {
            var b = new SgfBuilder();

            b.p("b", "M1").Fork(x => { }).Fork(x => { x.Next(); });

            using (var sw = new StringWriter())
            {
                var target = new SgfWriter(sw, false);
                target.WriteSgfTree(b.ToSgfTree());
                var excepted = "(;b[M1])";
                Trace.WriteLine(excepted);
                Trace.WriteLine(sw);
                Assert.AreEqual(excepted, sw.ToString());
            }
        }
예제 #3
0
        public void When_Fork_Do_Use_PreOrder()
        {
            var b = new SgfBuilder();

            b.p("b", "M1")
            .Fork(x => x.p("b", "M2").Next().p("b", "M3"))
            .Fork(x => x.p("c", "M2").Next().p("c", "M3"));

            using (var sw = new StringWriter())
            {
                var target = new SgfWriter(sw, false);
                target.WriteSgfTree(b.ToSgfTree());
                var excepted = "(;b[M1](;b[M2];b[M3])(;c[M2];c[M3]))";
                Trace.WriteLine(excepted);
                Trace.WriteLine(sw);
                Assert.AreEqual(excepted, sw.ToString());
            }
        }
예제 #4
0
        public void When_MultiValue_Do_Properties_Keep_Initial_Sorting()
        {
            var b = new SgfBuilder();

            b
            .p("p1", "v1")
            .p("p3", "v1")
            .p("p1", "v2")
            .p("p2", "v1")
            .p("p1", "v3")
            .p("p2", "v2")
            .p("p2", "v3");
            using (var sw = new StringWriter())
            {
                var target = new SgfWriter(sw, false);
                target.WriteSgfTree(b.ToSgfTree());
                var excepted = "(;p1[v1][v2][v3]p3[v1]p2[v1][v2][v3])";
                Trace.WriteLine(excepted);
                Trace.WriteLine(sw);
                Assert.AreEqual(excepted, sw.ToString());
            }
        }