Exemplo n.º 1
0
 /// <summary>
 /// Initialize dna, character and alive values
 /// </summary>
 public void Init()
 {
     dna        = new Dna(DNALength, 6);
     mCharacter = GetComponent <ThirdPersonCharacter>();
     timeAlive  = 0;
     alive      = true;
 }
        public async void AddAsync()
        {
            Dna dna = new Dna()
            {
                DnaSecuence = "AAAA", IsMutant = true
            };

            var dictionary = new Dictionary <string, object>
            {
                { "@DnaSecuence", dna.DnaSecuence },
                { "@IsMutant", dna.IsMutant },
            };

            string sqlQuery = @"INSERT INTO [dbo].[Dna]
                                            (ID, [DnaSecuence],[IsMutant])
                                        VALUES(NEWID(), @DnaSecuence , @IsMutant)";

            mockDapper.Setup(t => t.ExecuteAsync(It.Is <IDbConnection>(db =>
                                                                       db.ConnectionString == _mockedConnString), sqlQuery, dictionary))
            .ReturnsAsync(1);

            var result = await _sut.AddAsync(dna);


            Assert.True(result);
        }
Exemplo n.º 3
0
    private void GeneLiveVision(CellBug cellBug)
    {
        if (nowCellBug == null ||
            cellBug.GetAbility().GetGroup() != nowCellBug.GetAbility().GetGroup())
        {
            return;
        }

        int groupNum = 0;

        int[] gene = new int[Const.DnaLineLength];
        for (int i = 0; i < cellBugAllList.Count; i++)
        {
            CellBug bug = cellBugAllList[i] as CellBug;
            if (bug.GetAbility().GetGroup() == nowCellBug.GetAbility().GetGroup())
            {
                groupNum++;
                Dna tempDna = bug.GetAbility().GetDna();

                for (int index = 0; index < gene.Length; index++)
                {
                    gene[index] += (tempDna.GetDnaLine(Const.DnaLineEnum.OneEnum)[index] + tempDna.GetDnaLine(Const.DnaLineEnum.TwoEnum)[index]);
                }
            }
        }

        for (int m = 0; m < geneLabelArray.Length; m++)
        {
            geneLabelArray[m].text = Const.DnaName[m] + ":" + (int)(gene[m] / (2.0 * groupNum) * 100) + "%";
        }
    }
Exemplo n.º 4
0
        private void UpdatePosition(Point a, MoveDir dir)
        {
            //trim out redundant back and forth movement
            if (Dna.Count() > 1 && (int)dir == (int)(Dna.Last() + 2) % 4)
            {
                //reset our position back
                switch (Dna.Last())
                {
                case MoveDir.N:
                    Pos = new Point(Pos.X, Pos.Y + 1);
                    break;

                case MoveDir.W:
                    Pos = new Point(Pos.X + 1, Pos.Y);
                    break;

                case MoveDir.S:
                    Pos = new Point(Pos.X, Pos.Y - 1);
                    break;

                case MoveDir.E:
                    Pos = new Point(Pos.X - 1, Pos.Y);
                    break;
                }
                //remove last dna record
                Dna.RemoveAt(Dna.Count() - 1);
                Path.RemoveAt(Path.Count() - 1);
                return;
            }

            Path.Add(a);
            Pos = a;
            Dna.Add(dir);
        }
Exemplo n.º 5
0
        public void DnaRepository_GetByChainString_ChainDoesNotExist_Succeeds()
        {
            //Arrange
            DnaRepository   repository  = GetDnaRepository();
            Mock <ISession> sessionMock = new Mock <ISession>();
            IList <Dna>     list        = new List <Dna>()
            {
                new Dna()
                {
                    ChainString = "AAA,CCC,TTT"
                },
                new Dna()
                {
                    ChainString = "CCC,CCC,TTT"
                },
                new Dna()
                {
                    ChainString = "TTT,TTT,TTT"
                }
            };
            string chain = "AAA,AAA,AAA";

            _dnaDaoMock.Setup(x => x.GetAll(It.IsAny <ISession>())).Returns(list.AsQueryable()).Verifiable();

            //Action
            Dna result = repository.GetByChainString(sessionMock.Object, chain);

            //Asserts
            Assert.IsNull(result);
            _dnaDaoMock.Verify(x => x.GetAll(It.IsAny <ISession>()), Times.Once);
        }
Exemplo n.º 6
0
        private void button1_Click(object sender, EventArgs e)
        {
            DnaAnalysisPerformer dnaAnalysis = new DnaAnalysisPerformer();
            Dna dna = new Dna();

            MessageBox.Show("WTF IS GOING ON???");
        }
        public Task SaveDna(Dna dna)
        {
            using ConnectionMultiplexer muxer = ConnectionMultiplexer.Connect(configuration.Value.RedisDb);
            IDatabase conn = muxer.GetDatabase();

            return(conn.SetAddAsync(Guid.NewGuid().ToString(), JsonConvert.SerializeObject(dna)));
        }
        public async Task <bool> AddAsync(Dna dna)
        {
            try
            {
                var dictionary = new Dictionary <string, object>
                {
                    { "@DnaSecuence", dna.DnaSecuence },
                    { "@IsMutant", dna.IsMutant },
                };

                using (var connection = new SqlConnection(ConnectionString))
                {
                    string sqlQuery = @"INSERT INTO [dbo].[Dna]
                                            (ID, [DnaSecuence],[IsMutant])
                                        VALUES(NEWID(), @DnaSecuence , @IsMutant)";

                    int rowsAffected = await _dapperWrapper.ExecuteAsync(
                        connection, sqlQuery, dictionary);
                }
            }
            catch (Exception e)
            {
                throw e;
            }
            return(true);
        }
Exemplo n.º 9
0
    public void Counts_a_nucleotide_only_once()
    {
        var dna = new Dna("GGTTGG");

        dna.Count('T');
        Assert.That(dna.Count('T'), Is.EqualTo(2));
    }
Exemplo n.º 10
0
        public static uint LevenshteinDistance(Dna first, Dna second)
        {
            if (first.Length == 0) return second.Length;
             if (second.Length == 0) return first.Length;

             var lenFirst = first.Length;
             var lenSecond = second.Length;

             var d = new uint[lenFirst + 1, lenSecond + 1];

             for (uint i = 0; i <= lenFirst; i++)
            d[i, 0] = i;

             for (uint i = 0; i <= lenSecond; i++)
            d[0, i] = i;

             for (uint i = 1; i <= lenFirst; i++)
             {
            for (uint j = 1; j <= lenSecond; j++)
            {
               var match = (first[i - 1] == second[j - 1]) ? 0 : 1;

               d[i, j] = (uint)Math.Min(Math.Min(d[i - 1, j] + 1, d[i, j - 1] + 1), d[i - 1, j - 1] + match);
            }
             }

             return d[lenFirst, lenSecond];
        }
Exemplo n.º 11
0
        public async void CheckDnas(List <string> dnamock, bool expected)
        {
            CheckMutantCommand checkCommand = new CheckMutantCommand()
            {
                dna = dnamock
            };
            bool IsMutant = expected;

            _processor.Setup(x => x.isMutant(checkCommand.dna)).Returns(IsMutant);
            _mediator
            .Setup(m => m.Publish(It.IsAny <DnaProcessedEvent>(), It.IsAny <CancellationToken>()))
            .Verifiable();

            Dna dna = new Dna()
            {
                DnaSecuence = string.Join("|", checkCommand.dna.ToArray()), IsMutant = IsMutant
            };

            _repository.Setup(x => x.AddAsync(It.IsAny <Dna>())).ReturnsAsync(true);

            var result = await _sut.Handle(checkCommand, new System.Threading.CancellationToken());

            Assert.Equal(IsMutant, result);
            _repository.VerifyAll();
            _processor.VerifyAll();
            _mediator.VerifyAll();
        }
Exemplo n.º 12
0
        public async Task MutantService_IsMutantAsync_ValidDnaAlreadySaved_Succeeds()
        {
            //Arrange
            Mock <MutantService> serviceMock = GetMutantServiceMock();
            MutantService        service     = serviceMock.Object;
            Human human = new Human()
            {
                Dna = new string[] { "AAA", "CCC", "TTT" }
            };
            Dna savedDna = new Dna()
            {
                Id          = Guid.NewGuid(),
                ChainString = "AAA,CCC,TTT",
                IsMutant    = true
            };

            serviceMock.Setup(x => x.IsDnaValid(It.IsAny <string[]>())).Returns(true).Verifiable();
            _memoryCacheServiceMock.Setup(x => x.GetAsync(It.IsAny <string>(), It.IsAny <Func <Task <Dna> > >())).ReturnsAsync(savedDna).Verifiable();
            serviceMock.Setup(x => x.VerifyIsMutant(It.IsAny <string[]>())).Returns(true).Verifiable();

            //Action
            bool result = await service.IsMutantAsync(human);

            //Asserts
            Assert.IsTrue(result);
            serviceMock.Verify(x => x.IsDnaValid(It.IsAny <string[]>()), Times.Once);
            _memoryCacheServiceMock.Verify(x => x.GetAsync(It.IsAny <string>(), It.IsAny <Func <Task <Dna> > >()), Times.Once);
            serviceMock.Verify(x => x.VerifyIsMutant(It.IsAny <string[]>()), Times.Never);
        }
Exemplo n.º 13
0
    public override int GetSpeed(CellBug cellbug)
    {
        if (!cellbug)
        {
            return(0);
        }
        //需要访问dna
        Dna dna            = cellbug.GetAbility().GetDna();
        int speedGeneTotal = dna.GetDnaIndex(Const.DnaLineEnum.OneEnum, Const.GenesEnum.SpeedEnum)
                             + dna.GetDnaIndex(Const.DnaLineEnum.TwoEnum, Const.GenesEnum.SpeedEnum);

        if (speedGeneTotal == 0)
        {
            nowSpeed = lowSpeed;
        }
        else if (speedGeneTotal == 1)
        {
            nowSpeed = middleSpeed;
        }
        else if (speedGeneTotal == 2)
        {
            nowSpeed = highSpeed;
        }

        return(nowSpeed);
    }
Exemplo n.º 14
0
    void Start()
    {
        Game_Manger = GameObject.FindGameObjectWithTag("GameManger").GetComponent <GameManger>();

        Population = new Dna[PopulationLength];

        for (int i = 0; i < PopulationLength; i++)
        {
            Population[i] = new Dna();

            Population[i].Weight = new float[WeightsLenght];

            for (int j = 0; j < WeightsLenght; j++)
            {
                Population[i].Weight[j] = Random.Range(-1.0f, 1.0f);
            }


            Population[i].Fitness = 0;

            GameObject prefab = (GameObject)Instantiate(FlappyBirdPrefab, new Vector3(-7, 0, 0), new Quaternion(0, 0, 0, 0));

            Population[i].Prefab = prefab;

            prefab.GetComponent <FlappyBirdObject>().ParentIndex = i;
        }
        //Start The Generation Test
        GenerationNumberText.text      = GenerationNumber.ToString();
        Game_Manger.NumberOfFlappyBird = PopulationLength;
        Game_Manger.TimerFitness       = 0;
        RePopulitionbool = false;
    }
Exemplo n.º 15
0
 private static void CheckDnaIsNotReferentiallyEqual(Dna dna1, Dna dna2)
 {
     dna1.Should().NotBeSameAs(dna2); // NotBeSameAs = referential inequality
     dna1.ActivationIndexes.Should().NotBeSameAs(dna2.ActivationIndexes);
     dna1.WeightsAndBiases.Should().NotBeSameAs(dna2.WeightsAndBiases);
     dna1.OutputsPerLayer.Should().NotBeSameAs(dna2.OutputsPerLayer);
 }
Exemplo n.º 16
0
    public void CompareWeightsReturnsExpectedResultOfDifferent()
    {
        // Arrange
        const int nInputs  = 9;
        const int nOutputs = 1;

        int[] hiddenLayers = new int[] { 9 };
        Dna   dna1         = Dna.GenerateRandomDnaEncoding(nInputs, hiddenLayers, nOutputs, ActivationType.LeakyRelu, true);

        dna1.WeightsAndBiases.Should().HaveCount(100);
        dna1.WeightsAndBiases.Clear();
        dna1.WeightsAndBiases.AddRange(Enumerable.Repeat(1.00, 100));
        Dna dna2 = Dna.Clone(dna1);

        dna1.WeightsAndBiases.Should().Equal(dna2.WeightsAndBiases);
        dna2.WeightsAndBiases[2] = -49.00; // aggregate absolute weight difference of dna2 vs dna1 should now be 50
        dna1.WeightsAndBiases.Should().NotEqual(dna2.WeightsAndBiases);

        // Act
        var comparisonResult = DnaUtils.CompareWeights(dna1, dna2);

        // Assert
        float  percentWeightDiff      = comparisonResult.Item1;
        double percentWeightValueDiff = comparisonResult.Item2;

        percentWeightDiff.Should().Be(0.01f);     // ie. 1% of weights differ in value
        percentWeightValueDiff.Should().Be(0.5f); // ie. total weight values of dna2 differ by 50% (NOT 50% bigger)
    }
Exemplo n.º 17
0
        /// <summary>
        /// Saves in the database a bunch of DNAs.
        /// </summary>
        /// <param name="dnas">Collection of DNAs to save</param>
        /// <returns>void</returns>
        public async Task SaveAsync(ICollection <Dna> dnas)
        {
            if (dnas == null)
            {
                throw new ArgumentException("DNA cannot be null");
            }

            await Task.Run(() =>
            {
                using (ISession session = SessionManager.GetSession())
                {
                    using (ITransaction tx = session.BeginTransaction())
                    {
                        //TODO: I should only persist the entities that don't exist in DB

                        foreach (Dna dna in dnas)
                        {
                            //I need to check it again in the transaction to cover concurrency issues
                            Dna savedDna = _dnaRepository.GetByChainString(session, dna.ChainString);
                            if (savedDna == null)
                            {
                                _dnaRepository.Save(session, dna);
                            }
                        }
                        tx.Commit();
                    }
                }
            });
        }
Exemplo n.º 18
0
        public void DnaRepository_GetByChainString_ChainDoesExist_Succeeds()
        {
            //Arrange
            DnaRepository   repository  = GetDnaRepository();
            Mock <ISession> sessionMock = new Mock <ISession>();
            Guid            foundId     = Guid.NewGuid();
            IList <Dna>     list        = new List <Dna>()
            {
                new Dna()
                {
                    ChainString = "AAA,CCC,TTT"
                },
                new Dna()
                {
                    Id          = foundId,
                    ChainString = "CCC,CCC,TTT"
                },
                new Dna()
                {
                    ChainString = "TTT,TTT,TTT"
                }
            };
            string chain = "CCC,CCC,TTT"; //second one

            _dnaDaoMock.Setup(x => x.GetAll(It.IsAny <ISession>())).Returns(list.AsQueryable()).Verifiable();

            //Action
            Dna result = repository.GetByChainString(sessionMock.Object, chain);

            //Asserts
            Assert.IsNotNull(result);
            Assert.AreEqual(foundId, result.Id);
            Assert.AreEqual(chain, result.ChainString);
            _dnaDaoMock.Verify(x => x.GetAll(It.IsAny <ISession>()), Times.Once);
        }
Exemplo n.º 19
0
 public void PrintIndividual()
 {
     Console.WriteLine("Individual");
     Console.WriteLine("Weight:" + Weight);
     Console.WriteLine("Value:" + Value);
     Console.WriteLine("Profitability:" + Profitability);
     Dna.PrintGenome();
 }
Exemplo n.º 20
0
        static void Main(string[] args)
        {
            Dna      temp  = new Dna(5);
            Genepool gpool = new Genepool(temp, 10);

            gpool.Randomize();
            gpool.Render();
        }
Exemplo n.º 21
0
        public IEnumerable<Dna> Search(Dna word, uint d)
        {
            var rtn = new List<Dna>();

             RecursiveSearch(_root, rtn, word, d);

             return rtn;
        }
Exemplo n.º 22
0
 // Use on construction of DNA.  Blows away old changes.
 public void SetDnaAndBuildAvatar(IEnumerable <AssetInfo> assetInfos, Action <AvatarEntity> avatarAssetsSet)
 {
     //mLoadAvatarCallback = avatarAssetsLoaded;
     mAvatarDna    = new Dna();
     mChangesToDna = new Dna();
     mAvatarDna.UpdateDna(assetInfos);
     this.SetAssetsWithCallback(assetInfos, avatarAssetsSet);
 }
Exemplo n.º 23
0
 public override bool Equals(object obj)
 {
     return(obj is MutantAnalysisLog log &&
            Id == log.Id &&
            Dna.SequenceEqual(log.Dna) &&
            IsMutant == log.IsMutant &&
            Count == log.Count);
 }
Exemplo n.º 24
0
        public void DnaShouldHaveSameYCoordinateWithSperm_AfterMagnetActivated()
        {
            var sperm = new Sperm(500);
            var dna   = new Dna(0, 0, sperm);

            sperm.IsMagnetActivated = true;
            Assert.AreEqual(sperm.Location.Y, dna.GetLocation().Y);
        }
Exemplo n.º 25
0
 public void Init()
 {
     // Initialize Dna. Both genes store values between 0 and 360.
     // Gene 0 = move forward.
     // Gene 1 = turn angle.
     Dna            = new Dna(DnaLength, 360);
     distanceWalked = 0f;
 }
        /// <summary>
        /// Solves the REVC problem (http://rosalind.info/problems/revc/).
        /// </summary>
        private static void SolveRevc()
        {
            var dna = new Dna(File.ReadAllText(@"Data\REVC\rosalind_revc.txt"));

            var reverseComplement = dna.ReverseComplementDna();

            SaveResult(@"Results\rosalind_revc_results.txt", reverseComplement.Symbols);
        }
Exemplo n.º 27
0
        private Rabbit CreationOfRabbit()
        {
            var dnk = new Dna {
                Gene = GenerateGene()
            };

            return(new Rabbit(dnk, _fitness.GetFitness(dnk)));
        }
Exemplo n.º 28
0
        private void OnCreatureSelect(GameObject o)
        {
            Show();

            _dna      = o.GetComponent <Dna>();
            _fov      = o.GetComponent <CreatureFieldOfView>();
            _movement = o.GetComponent <CreatureMovement>();
        }
        /// <summary>
        /// Solves the RNA problem (http://rosalind.info/problems/rna/).
        /// </summary>
        private static void SolveRna()
        {
            var dna = new Dna(File.ReadAllText(@"Data\RNA\rosalind_rna.txt"));

            var rna = dna.TranscribeRna();

            SaveResult(@"Results\rosalind_rna_results.txt", rna.Symbols);
        }
Exemplo n.º 30
0
    public void Has_no_nucleotides()
    {
        var dna      = new Dna("");
        var expected = new Dictionary <char, int> {
            { 'A', 0 }, { 'T', 0 }, { 'C', 0 }, { 'G', 0 }
        };

        Assert.That(dna.NucleotideCounts, Is.EqualTo(expected));
    }
Exemplo n.º 31
0
    public void Counts_all_nucleotides()
    {
        var dna      = new Dna("AGCTTTTCATTCTGACTGCAACGGGCAATATGTCTCTGTGTGGATTAAAAAAAGAGTGTCTGATAGCAGC");
        var expected = new Dictionary <char, int> {
            { 'A', 20 }, { 'T', 21 }, { 'C', 12 }, { 'G', 17 }
        };

        Assert.That(dna.NucleotideCounts, Is.EqualTo(expected));
    }
Exemplo n.º 32
0
    public void Repetitive_sequence_has_only_guanosine()
    {
        var dna      = new Dna("GGGGGGGG");
        var expected = new Dictionary <char, int> {
            { 'A', 0 }, { 'T', 0 }, { 'C', 0 }, { 'G', 8 }
        };

        Assert.That(dna.NucleotideCounts, Is.EqualTo(expected));
    }
Exemplo n.º 33
0
        public static IEnumerable<Dna> FindPatterns(Dna input, Peptide peptide)
        {
            var dnaComp = input.Complimentary();

             var forward = match(input, peptide);

             var backWard = match(dnaComp, peptide);

             var resultMatches = forward.Concat(backWard.Select(d=>d.Complimentary()));

             return resultMatches;
        }
Exemplo n.º 34
0
        private void RecursiveSearch(Node node, List<Dna> rtn, Dna word, uint d)
        {
            var curDist = LevenshteinDistance(node.Word, word);
             var minDist = Math.Max(0,(int)curDist - (int)d);
             var maxDist = curDist + d;

             if (curDist <= d)
            rtn.Add(node.Word);

             foreach (var key in node.Keys.Cast<uint>().Where(key => minDist <= key && key <= maxDist))
             {
            RecursiveSearch(node[key], rtn, word, d);
             }
        }
Exemplo n.º 35
0
 private static IEnumerable<Dna> match(Dna input, Peptide peptide)
 {
     var resultMatches = new List<Dna>();
      var rna1 = input.Translate();
      for (uint offset = 0; offset < 3; offset++)
      {
     var pep = rna1.Transcribe(offset, true);
     var matches = DnaPattern.FindAllMatches(pep, peptide);
     foreach (uint match in matches)
     {
        var of = match * 3 + offset;
        var transDna = input.Substring(of, 3 * peptide.Length);
        resultMatches.Add(transDna);
     }
      }
      return resultMatches;
 }
Exemplo n.º 36
0
        public void Add(Dna word)
        {
            if (_root == null)
             {
            _root = new Node(word);
            return;
             }

             var curNode = _root;

             var dist = LevenshteinDistance(curNode.Word, word);
             while (curNode.ContainsKey(dist))
             {
            if (dist == 0) return;

            curNode = curNode[dist];
            dist = LevenshteinDistance(curNode.Word, word);
             }

             curNode.AddChild(dist, word);
        }
Exemplo n.º 37
0
		// Range: -1 Access: 0 Flags: ( 0, 4, 255 )
		public static void hgibs( dynamic location = null, ByTable viruses = null, Dna MobDNA = null ) {
			new Ent_Effect_Gibspawner_Human( location, viruses, MobDNA );
			return;
		}
 public FastaEntry(string label, Dna dna)
 {
     Label = label;
     Dna = dna;
 }
Exemplo n.º 39
0
 public Node(Dna word)
 {
     Word = word;
 }
Exemplo n.º 40
0
 public void AddChild(uint key, Dna word)
 {
     if (Children == null)
     Children = new HybridDictionary();
      Children[key] = new Node(word);
 }