コード例 #1
0
        public void MatchSameTuple()
        {
            Tuple   tuple   = new Tuple(new object[] { 1, 2, 3 });
            Context context = new Context();

            Assert.IsTrue(tuple.Match(tuple, context));
        }
コード例 #2
0
        public void MatchNull()
        {
            Tuple   tuple   = new Tuple(new object[] { 1, 2, 3 });
            Context context = new Context();

            Assert.IsFalse(tuple.Match(null, context));
        }
コード例 #3
0
        public void Tuples_Can_Apply_Deconstructed_Values_To_Func()
        {
            Tuple <string, int> a = Tuple.Create("name", 2);

            var applied = a.Match(fun);

            Assert.Equal("name: 2", applied);
        }
コード例 #4
0
        public void MatchTuplesWithNullElement()
        {
            Tuple   tuple   = new Tuple(new object[] { 1, null, 3 });
            Tuple   tuple2  = new Tuple(new object[] { 1, null, 3 });
            Context context = new Context();

            Assert.IsTrue(tuple.Match(tuple2, context));
        }
コード例 #5
0
        public void NoMatchTuplesWithDifferentArities()
        {
            Tuple   tuple   = new Tuple(new object[] { 1, 2, 3 });
            Tuple   tuple2  = new Tuple(new object[] { 1, 2, 3, 4 });
            Context context = new Context();

            Assert.IsFalse(tuple.Match(tuple2, context));
            Assert.IsFalse(tuple2.Match(tuple, context));
        }
コード例 #6
0
        public void MatchTuplesWithAVariable()
        {
            Tuple   tuple   = new Tuple(new object[] { 1, new Variable("X"), 3 });
            Tuple   tuple2  = new Tuple(new object[] { 1, 2, 3 });
            Context context = new Context();

            Assert.IsTrue(tuple.Match(tuple2, context));
            Assert.AreEqual(2, context.GetValue("X"));

            Assert.IsTrue(tuple2.Match(tuple, context));

            Assert.AreEqual(2, context.GetValue("X"));
        }
コード例 #7
0
ファイル: GeneralCore.cs プロジェクト: kapitanov/diploma
 private void OnTimer(Tuple<ITaskProvider, Guid> parameters)
 {
     parameters.Match((taskProvider, taskId) => taskProvider.NotifyWorker(taskId));
 }