예제 #1
0
        private static IEnumerable <TestItem> CommaTests()
        {
            yield return(new TestItem("1, 2", Concat.AllParams(
                                          new Literal(1),
                                          new Literal(2)
                                          )));

            yield return(new TestItem("1, 2, \"a\"", Concat.AllParams(
                                          new Literal(1),
                                          new Literal(2),
                                          new Literal("a")
                                          )));

            yield return(new TestItem(
                             "1, 2, \"a\" | . | 3, 4",
                             Compose.AllParams(
                                 Concat.AllParams(
                                     new Literal(1),
                                     new Literal(2),
                                     new Literal("a")),
                                 new Identity(),
                                 Concat.AllParams(
                                     new Literal(3),
                                     new Literal {
                Value = Json.Number(4)
            }))));
        }
예제 #2
0
        public Task <RepositorySettings> RepositorySettings(Uri repositoryUri, bool setAutoMerge, string targetBranch = null, GitPullRequestMergeStrategy gitPullRequestMergeStrategy = GitPullRequestMergeStrategy.NoFastForward)
        {
            if (repositoryUri == null)
            {
                return(Task.FromResult <RepositorySettings>(null));
            }

            var path      = repositoryUri.AbsolutePath;
            var pathParts = path.Split('/')
                            .Where(s => !string.IsNullOrWhiteSpace(s))
                            .ToList();

            Username = Concat.FirstValue(repositoryUri.UserInfo, _environmentVariablesProvider.GetUserName());

            if (pathParts.Count < 2)
            {
                return(Task.FromResult <RepositorySettings>(null));
            }

            var repoName = pathParts[pathParts.Count - 1].ToLower(CultureInfo.CurrentCulture).Replace(".git", string.Empty);
            var project  = pathParts[pathParts.Count - 2];

            return(Task.FromResult(new RepositorySettings
            {
                ApiUri = new Uri($"{repositoryUri.Scheme}://{repositoryUri.Authority}"),
                RepositoryUri = repositoryUri,
                RepositoryName = repoName,
                RepositoryOwner = project
            }));
        }
        public void ExceptRepeating_NullString_ArgumentNullException()
        {
            string first  = null;
            string second = "It doesn't matter";

            Concat.ExceptRepeating(first, second);
        }
        public void ExceptRepeating_IncorrectStrings_ArgumentException()
        {
            string first  = "This is string with different incorrect symbols like 1, 2, 3, 4, 5";
            string second = "Icanbeanormalstringbutitdoesntmatter";

            Concat.ExceptRepeating(first, second);
        }
예제 #5
0
        private static IEnumerable <TestItem> TryCatchTests()
        {
            yield return(new TestItem("(1, 2, 3)?", new TryCatch {
                TryBody = Concat.AllParams(
                    new Literal(1),
                    new Literal(2),
                    new Literal(3)
                    )
            }));

            yield return(new TestItem("-1?", new FunctionCall(
                                          Minus.Builtin_1,
                                          new TryCatch {
                TryBody = new Literal(1)
            })));

            yield return(new TestItem("try 1", new TryCatch {
                TryBody = new Literal(1)
            }));

            yield return(new TestItem("try 1 catch 2", new TryCatch {
                TryBody = new Literal(1),
                CatchBody = new Literal(2)
            }));
        }
예제 #6
0
        public void WithArguments()
        {
            // Arrange
            var data = Utils.JsonNumberArray(1, 2, 3);
            var op   = Compose.AllParams(
                new FunctionDefinition {
                Name      = "x",
                Arguments = new List <string>()
                {
                    "test1",
                    "test2"
                },
                Body = new ConstructArray {
                    Elements = Concat.AllParams(
                        FunctionCall.ZeroArity("test1"),
                        FunctionCall.ZeroArity("test2"))
                }
            },
                new FunctionCall(new FunctionName("x", 2), new Enumerate(), new Identity()));

            // Act
            var result = op.RunAsScalar(data);

            // Assert
            var expectedValues = Json.ArrayParams(
                Json.Number(1),
                Json.Number(2),
                Json.Number(3),
                Utils.JsonNumberArray(1, 2, 3));

            result.DeepEqual(expectedValues).Should().BeTrue();
        }
예제 #7
0
        public void LabelBreakPseudoNestedTest()
        {
            // Arrange
            var data = Json.Null;
            var op   = new Label {
                Name = "out",
                Body = Concat.AllParams(
                    new Literal(1),
                    new Literal(2),
                    new Literal(3),
                    new Label
                {
                    Name = "inner",
                    Body = new Break {
                        Label = "inner"
                    }
                },
                    new Literal(4)
                    )
            };

            // Act
            var result = op.RunAsSequence(data);

            // Assert
            Json.Array(result).DeepEqual("[1,2,3,4]".AsJson()).Should().BeTrue();
        }
        private async Task <byte[]> GetPDF(byte[] file, string id)
        {
            byte[] ret = null;

            string baseUrl = _configuration["baseUrl"];

            string inputFilename = @"wwwroot/pdf-template/cert.html";

            string imgsrc = $"data:image/png;base64,{QR.GetPureBase64($"{baseUrl}/Contract/Certificate?id={id}")}";

            HtmlDto dto = new HtmlDto()
            {
                html = System.Web.HttpUtility.HtmlEncode(
                    Encoding.UTF8.GetString(
                        System.IO.File.ReadAllBytes(inputFilename)))
                       .Replace("{certificateid}", id)
                       .Replace("{qrlink}", imgsrc),

                footerPath = $"{baseUrl}/pdf-template/footer.html"
            };

            string jsonString = Newtonsoft.Json.JsonConvert.SerializeObject(dto);

            string uri = _configuration["pdfApi"];

            var content = new StringContent(jsonString, Encoding.UTF8, "application/json");

            var response = await client.PostAsync($"{uri}", content).ConfigureAwait(false);

            var file2 = await response.Content.ReadAsByteArrayAsync();

            ret = Concat.DoConcat(file, file2);

            return(ret);
        }
예제 #9
0
        public void UpdateCollaborationPlatformSettings(CollaborationPlatformSettings settings)
        {
            var envToken = _environmentVariablesProvider.GetEnvironmentVariable("NuKeeper_azure_devops_token");

            settings.Token    = Concat.FirstValue(envToken, settings.Token);
            settings.ForkMode = settings.ForkMode ?? ForkMode.SingleRepositoryOnly;
        }
예제 #10
0
        static IObservable <double[]> AutoThreshold <TOther>(IObservable <IObservable <object> > source, IObservable <TOther> bufferBoundaries, Func <double> scale)
        {
            var concat = new Concat {
                Axis = 1
            };
            var firstBoundary = Observable.Return <TOther>(default(TOther));

            bufferBoundaries = firstBoundary.Concat(bufferBoundaries);
            return(bufferBoundaries.Publish(ps => ps.Window(2).Skip(1).SelectMany(start => Observable.Defer(() =>
            {
                var n = 0;
                var mean = default(double[]);
                var variance = default(double[]);
                var buffer = default(double[]);
                return source.SelectMany(xs => xs.Cast <Mat>()).TakeUntil(ps).Select(xs =>
                {
                    if (mean == null)
                    {
                        mean = new double[xs.Rows];
                        variance = new double[xs.Rows];
                        buffer = new double[xs.Rows * xs.Cols];
                    }

                    // Convert data into temporary buffer
                    var bufferHandle = GCHandle.Alloc(buffer, GCHandleType.Pinned);
                    try
                    {
                        using (var bufferHeader = new Mat(xs.Rows, xs.Cols, Depth.F64, 1, bufferHandle.AddrOfPinnedObject()))
                        {
                            CV.Convert(xs, bufferHeader);
                        }
                    }
                    finally { bufferHandle.Free(); }

                    // Knuth's online variance algorithm
                    // http://en.wikipedia.org/wiki/Algorithms_for_calculating_variance
                    for (int i = 0; i < buffer.Length; i++)
                    {
                        var row = i / xs.Cols;
                        var col = i % xs.Cols;
                        var previousMean = mean[row];
                        var delta = buffer[i] - previousMean;
                        var newMean = previousMean + delta / (n + i + 1);
                        variance[row] = variance[row] + delta * (buffer[i] - newMean);
                        mean[row] = newMean;
                    }

                    n += xs.Cols;
                    return xs;
                }).TakeLast(1).Select(xs =>
                {
                    var result = new double[xs.Rows];
                    for (int i = 0; i < result.Length; i++)
                    {
                        result[i] = mean[i] + scale() * Math.Sqrt(variance[i] / (n - 1));
                    }
                    return result;
                });
            }))));
        }
        public RepositorySettings RepositorySettings(Uri repositoryUri, string targetBranch)
        {
            if (repositoryUri == null)
            {
                return(null);
            }

            var path      = repositoryUri.AbsolutePath;
            var pathParts = path.Split('/')
                            .Where(s => !string.IsNullOrWhiteSpace(s))
                            .ToList();

            Username = Concat.FirstValue(repositoryUri.UserInfo, _environmentVariablesProvider.GetUserName());

            if (pathParts.Count < 2)
            {
                return(null);
            }

            var repoName = pathParts[pathParts.Count - 1].ToLower(CultureInfo.CurrentCulture).Replace(".git", string.Empty);
            var project  = pathParts[pathParts.Count - 2];

            return(new RepositorySettings
            {
                ApiUri = new Uri($"{repositoryUri.Scheme}://{repositoryUri.Authority}"),
                RepositoryUri = repositoryUri,
                RepositoryName = repoName,
                RepositoryOwner = project
            });
        }
예제 #12
0
        public void OnSpecificUpdate_triggerMustBeReady_True()
        {
            var input = new Identity("Source");
            var ema   = new ExponentialMovingAverage(12).Of(input);
            var max1  = new Maximum(6).Of(ema);
            var max2  = new Maximum(12).Of(ema);
            var max3  = new Maximum(24).Of(ema);

            var cruncher = Concat.OnSpecificUpdate(new IUpdatable[] { max1, max2, max3 }, max3, triggerMustBeReady: true);

            cruncher.Samples.Should().Be(0);
            //input.FeedToReady(mustBeReady: new IUpdatable[] {max1, max2, max3});
            var baseSamples = cruncher.Samples;

            cruncher.Samples.Should().Be(baseSamples);
            Console.WriteLine($"{cruncher.Samples}");

            cruncher.Samples.Should().Be(0);
            max1.Feed(6, 1d, 0.1);
            cruncher.Samples.Should().Be(0);
            max2.Feed(12, 1d, 0.1);
            cruncher.Samples.Should().Be(0);
            max3.Feed(24, 1d, 0.1);
            cruncher.Samples.Should().Be(1);
            max1.Feed(1, 1d, 0.1);
            cruncher.Samples.Should().Be(1);
            max3.Feed(1, 1d, 0.1);
            cruncher.Samples.Should().Be(2);
            max2.Feed(1, 1d, 0.1);
            cruncher.Samples.Should().Be(2);
            Console.WriteLine($"{cruncher.Samples}");
        }
예제 #13
0
        public void UpdateCollaborationPlatformSettings(CollaborationPlatformSettings settings)
        {
            var envToken = _environmentVariablesProvider.GetEnvironmentVariable("NuKeeper_github_token");

            settings.Token    = Concat.FirstValue(envToken, settings.Token);
            settings.ForkMode = settings.ForkMode ?? ForkMode.PreferFork;
        }
예제 #14
0
        public void OnEveryUpdate()
        {
            var input = new Identity("Source");
            var ema   = new ExponentialMovingAverage(12).Of(input);
            var max1  = new Maximum(6).Of(ema);
            var max2  = new Maximum(12).Of(ema);
            var max3  = new Maximum(24).Of(ema);

            var cruncher = Concat.OnEveryUpdate(new IUpdatable[] { max1, max2, max3 });

            cruncher.Samples.Should().Be(0);
            input.FeedToReady(mustBeReady: new IUpdatable[] { max1, max2, max3 });
            var baseSamples = cruncher.Samples;

            cruncher.Samples.Should().Be(baseSamples);
            Console.WriteLine($"{cruncher.Samples}");

            max1.Feed(1, 1d, 0.1);
            cruncher.Samples.Should().Be(baseSamples + 1);
            max3.Feed(1, 1d, 0.1);
            cruncher.Samples.Should().Be(baseSamples + 2);
            max2.Feed(1, 1d, 0.1);
            cruncher.Samples.Should().Be(baseSamples + 3);
            max2.Feed(1, 1d, 0.1);
            cruncher.Samples.Should().Be(baseSamples + 4);
            max1.Feed(1, 1d, 0.1);
            cruncher.Samples.Should().Be(baseSamples + 5);
            Console.WriteLine($"{cruncher.Samples}");
        }
예제 #15
0
        public void LetObjectMatcher()
        {
            // Arrange
            var data = "{\"a\": 1, \"b\": 2}".AsJson();
            var op   = new Let
            {
                Value   = new Identity(),
                Matcher = new ObjectMatcher(
                    new ObjectMatcherProperty(new Literal("a"), new ValueMatcher("a")),
                    new ObjectMatcherProperty(new Literal("b"), new ValueMatcher("b")),
                    new ObjectMatcherProperty(new Literal("c"), new ValueMatcher("c"))),
                Body = new ConstructArray
                {
                    Elements = Concat.AllParams(
                        new GetVariable {
                        Name = "a"
                    },
                        new GetVariable {
                        Name = "b"
                    },
                        new GetVariable {
                        Name = "c"
                    })
                }
            };

            // Act
            var result = op.RunAsScalar(data);

            // Assert
            result.DeepEqual("[1,2,null]".AsJson()).Should().BeTrue();
        }
예제 #16
0
            public void OrderByOrdersInDescendingOrder()
            {
                // Given
                List <string> content = new List <string>();
                Engine        engine  = new Engine();
                CountModule   count   = new CountModule("A")
                {
                    AdditionalOutputs = 4
                };
                CountModule count2 = new CountModule("A")
                {
                    AdditionalOutputs = 2
                };
                Concat  concat     = new Concat(count2);
                OrderBy orderBy    = new OrderBy((d, c) => d.Get <int>("A")).Descending();
                Execute gatherData = new Execute(
                    (d, c) =>
                {
                    content.Add(d.Content);
                    return(null);
                }, false);

                engine.Pipelines.Add(count, concat, orderBy, gatherData);

                // When
                engine.Execute();

                // Then
                Assert.AreEqual(8, content.Count);
                CollectionAssert.AreEqual(new[] { "5", "4", "3", "3", "2", "2", "1", "1" }, content);
            }
예제 #17
0
 public void Merge(Concat other)
 {
     separatorResult = other.separatorResult;
     if (intermediateResult.Length == 0 || separatorResult == String.Empty)
       intermediateResult.Append(other.intermediateResult);
     else
       intermediateResult.Append(other.intermediateResult.Insert(0, separatorResult));
 }
        public void ExceptRepeating_IdenticalStringsExceptRepeating_SortedString()
        {
            string first = "abcdefghijklmnopqrstuvwxyz";

            string actualString = Concat.ExceptRepeating(first, first);

            Assert.AreEqual("abcdefghijklmnopqrstuvwxyz", actualString);
        }
        public void ExceptRepeating_IdenticalStringsWithRepeating_SortedStringExceptRepeating()
        {
            string first = "aabbccddeeffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz";

            string actualString = Concat.ExceptRepeating(first, first);

            Assert.AreEqual("abcdefghijklmnopqrstuvwxyz", actualString);
        }
        public void ExceptRepeating_TwoExpectedStrings_ConcatedStringExceptRepeating()
        {
            string first  = "xyaabbbccccdefww";
            string second = "xxxxyyyyabklmopq";

            string actualString = Concat.ExceptRepeating(first, second);

            Assert.AreEqual("abcdefklmopqwxy", actualString);
        }
        public void UpdateCollaborationPlatformSettings(CollaborationPlatformSettings settings)
        {
            settings.Username = Concat.FirstValue(Username, _environmentVariablesProvider.GetUserName());

            var envToken = _environmentVariablesProvider.GetEnvironmentVariable("NuKeeper_bitbucketlocal_token");

            settings.Token    = Concat.FirstValue(envToken, settings.Token);
            settings.ForkMode = settings.ForkMode ?? ForkMode.SingleRepositoryOnly;
        }
예제 #22
0
        public void CctorTest_Ok()
        {
            IEnumerable <Entity> sequence = EnumerateHelper.Sequence <Entity>(new Symbol('a'), new Symbol('b'));

            IReadOnlyList <Entity> expectedEntityCollection = new List <Entity>(sequence).AsReadOnly();

            Concat concat = new Concat(sequence);

            Assert.AreEqual(expectedEntityCollection, concat.EntityCollection);
        }
예제 #23
0
    public void Merge(Concat AOther)
    {
        if(AOther.FEmpty) return;

        FSeparator = AOther.FSeparator;
        if (!FEmpty && FSeparator.Length > 0)
          FResult.Append(FSeparator);

        FResult.Append(AOther.FResult);
    }
예제 #24
0
        private static Compiled.Program GetProgram(string fileName)
        {
            var externalPredicateDeclarations = new []
            {
                Concat.GetConcat().Key,
                Lexer.GetExternalPredicateDeclaration()
            };

            return(new Compiler().Compile(fileName, externalPredicateDeclarations));
        }
예제 #25
0
        /// <summary>
        /// 提交咨询内容
        /// </summary>
        /// <param name="concat"></param>
        /// <returns></returns>
        public async Task <Result> Concat(Concat concat)
        {
            bool isAdd = await _concatRepositories.Add(concat);

            if (!isAdd)
            {
                return(Result.ReFailure("提交失败", 2004));
            }
            return(Result.ReSuccess());
        }
예제 #26
0
        public void ToStringTest()
        {
            IEnumerable <Entity> sequence = EnumerateHelper.Sequence <Entity>(new Symbol('a'), new Symbol('b'));

            IReadOnlyList <Entity> expectedEntityCollection = new List <Entity>(sequence).AsReadOnly();

            Concat concat = new Concat(sequence);

            Assert.AreEqual("(ab)", concat.ToString());
        }
예제 #27
0
        private static Compiled.Program GetProgram()
        {
            var externalPredicateDeclarations = new []
            {
                Concat.GetConcat().Key,
                Lexer.GetExternalPredicateDeclaration()
            };

            return(new Compiler().Compile("Morpher.txt", externalPredicateDeclarations));
        }
예제 #28
0
        public void UpdateCollaborationPlatformSettings(CollaborationPlatformSettings settings)
        {
            if (settings == null)
            {
                throw new ArgumentNullException(nameof(settings));
            }

            var envToken = _environmentVariablesProvider.GetEnvironmentVariable(GiteaTokenEnvironmentVariableName);

            settings.Token = Concat.FirstValue(envToken, settings.Token);
        }
예제 #29
0
    /// <summary>
    /// Merge onto the end
    /// </summary>
    /// <param name="group"></param>
    public void Merge(Concat group)
    {
        /// add the delimiter between strings
        if (this.accumulator.Length > 0 & group.accumulator.Length > 0)
        {
            this.accumulator.Append(this.delimiter);
        }

        ///_accumulator += Group._accumulator;
        this.accumulator.Append(group.accumulator.ToString());
    }
예제 #30
0
        public static string WriteClass(XElement e, int i, string ns)
        {
            var tmp = ns;

            return($@"public class {GetClassName(e)}
				{Tabs(i)}{{{
					Concat(e.Attributes().Where(x => !x.IsNamespaceDeclaration && x.Name.Namespace.NamespaceName == "").Select(x =>
					{
						var type = GetTypeName(x.Value);
						var name = x.Name.LocalName;
						var value = GetValue(x.Value);
						//ns = x.Name.Namespace.NamespaceName;
						return $@"
					{Tabs(i)}[XmlAttribute(AttributeName = `{name}`)]
					{Tabs(i)}public {type} {name.ToCamelCase()} {{ get; set; }} = {value};";
					}))}{
					(!e.HasElements && e.Value != "" ? $@"
					{Tabs(i)}[XmlText]
					{Tabs(i)}public string {e.ToCamelCase()} {{ get; set; }} = `{e.Value}`;" : "")
					}{
					Concat(e.Elements().Where(x => x.HasElements || x.HasAttributes).GroupBy(x => x.Name.LocalName).Select(x => new { a = x.Count(), b = x.First() }).Select(x =>
					  {
						  ns = x.b.Name.Namespace.NamespaceName;
						  var name = x.b.Name.LocalName;
						  var type = GetClassTypeProperty(x.b, x.a);
						  return $@"
					{Tabs(i)}[XmlElement(ElementName = `{name}`{(tmp != ns ? $", Namespace = `{ns}`" : "")})]
					{Tabs(i)}public {type} {name.ToCamelCase()} {{ get; set; }} = {GetClassInstance(x.b, x.a)};
					{Tabs(i)}{WriteClass(x.b, i + 1, ns)}";
					  }))}{Concat(e.Elements().Where(x => !x.HasElements && !x.HasAttributes).GroupBy(x => x.Name.LocalName).Select(x => new { a = x.Count(), b = x.First() }).Select(x =>
					  {
						  var name = x.b.Name.LocalName;
						  return $@"
					{Tabs(i)}[XmlElement(ElementName = `{name}`{(tmp != ns ? $", Namespace = `{ns}`" : "")})]{(
								  x.a==1?$@"
					{Tabs(i)}public string {name.ToCamelCase()} {{ get; set; }} = `{x.b.Value}`;" :$@"
					{Tabs(i)}public string[] {name.ToCamelCase()} {{ get; set; }} = {{`{x.b.Value}`}};")}
						";
					  }))}
				{Tabs(i)}}}"                );
        }
예제 #31
0
        public void UpdateCollaborationPlatformSettings(CollaborationPlatformSettings settings)
        {
            if (settings == null)
            {
                throw new ArgumentNullException(nameof(settings));
            }

            var envToken = _environmentVariablesProvider.GetEnvironmentVariable("NuKeeper_github_token");

            settings.Token = Concat.FirstValue(envToken, settings.Token);
            settings.ForkMode ??= ForkMode.PreferFork;
        }
예제 #32
0
        public void UpdateCollaborationPlatformSettings(CollaborationPlatformSettings settings)
        {
            if (settings == null)
            {
                throw new ArgumentNullException(nameof(settings));
            }

            var envToken = _environmentVariablesProvider.GetEnvironmentVariable("NuKeeper_azure_devops_token");

            settings.Token    = Concat.FirstValue(envToken, settings.Token);
            settings.ForkMode = settings.ForkMode ?? ForkMode.SingleRepositoryOnly;
        }
예제 #33
0
        public Mainboard() {
            var inhaltsverzeichnis = new Inhaltsverzeichnis();
            var überschriften_extrahieren = new Überschriften_extrahieren();
            var inhaltsverzeichnis_nummerieren = new Inhaltsverzeichnis_nummerieren();
            var kommandozeile = new Kommandozeile();
            var datei_lesen = new Datei_lesen();
            var datei_schreiben = new Datei_schreiben();
            var concat = new Concat<string>();

            kommandozeile.Eingabedateiname += datei_lesen.Process;
            datei_lesen.Result += inhaltsverzeichnis.Überschriften_nummerieren;
            datei_lesen.Result += überschriften_extrahieren.Process;
            überschriften_extrahieren.Result += inhaltsverzeichnis_nummerieren.Process;
            inhaltsverzeichnis_nummerieren.Result += concat.Input1;
            inhaltsverzeichnis.Result += concat.Input2;
            concat.Result += kommandozeile.Ausgabedateiname_ermitteln;
            kommandozeile.Ausgabedateiname += datei_schreiben.Process;

            run = kommandozeile.Eingabedateiname_ermitteln;
        }
예제 #34
0
 public void Merge(Concat objToMerge)
 {
     this.result.Append(objToMerge.result);
 }
예제 #35
0
    /// <summary>
    /// Merge onto the end 
    /// </summary>
    /// <param name="group"></param>
    public void Merge(Concat group)
    {
        /// add the delimiter between strings
        if (this.accumulator.Length > 0 & group.accumulator.Length > 0)
        {
            this.accumulator.Append(this.delimiter);
        }

        ///_accumulator += Group._accumulator;
        this.accumulator.Append(group.accumulator.ToString());
    }
예제 #36
0
 public virtual void VisitConcat(Concat n)
 {
 }
예제 #37
0
 /// Merge the partially computed aggregate with this aggregate.
 /// <param name="other"></param>
 public void Merge(Concat other) {
   intermediateResult.Append(other.intermediateResult);
 }