コード例 #1
0
    public void MoleculeSymmetricalSitesInWrongStates()
    {
        MoleculeDef moleculeDef = Resources.Load("Tests/Molecules/Basic") as MoleculeDef;

        ComponentPattern[] components1 = new ComponentPattern[6];
        components1[0] = new ComponentPattern("A", "0", false);
        components1[1] = new ComponentPattern("A", "1", false);
        components1[2] = new ComponentPattern("A", "1", false);
        components1[3] = new ComponentPattern("A", "0", false);
        components1[4] = new ComponentPattern("A", "2", false);
        components1[5] = new ComponentPattern("A", "2", false);

        ComponentPattern[] components2 = new ComponentPattern[6];
        components2[0] = new ComponentPattern("A", "2", false);
        components2[1] = new ComponentPattern("A", "0", false);
        components2[2] = new ComponentPattern("A", "0", false);
        components2[3] = new ComponentPattern("A", "2", false);
        components2[4] = new ComponentPattern("A", "0", false);
        components2[5] = new ComponentPattern("A", "1", false);

        MoleculePattern molecule1 = new MoleculePattern(moleculeDef, components1);
        MoleculePattern molecule2 = new MoleculePattern(moleculeDef, components2);

        Assert.IsFalse(molecule1.Matches(molecule2));
        Assert.IsFalse(molecule2.Matches(molecule1));
    }
コード例 #2
0
    public void MoleculeUniqueSites()
    {
        MoleculeDef moleculeDef = Resources.Load("Tests/Molecules/Basic") as MoleculeDef;

        ComponentPattern[] components1 = new ComponentPattern[6];
        components1[0] = new ComponentPattern("A", "0", false);
        components1[1] = new ComponentPattern("B", "0", false);
        components1[2] = new ComponentPattern("C", "1", false);
        components1[3] = new ComponentPattern("D", "0", false);
        components1[4] = new ComponentPattern("E", "2", false);
        components1[5] = new ComponentPattern("F", "2", false);

        ComponentPattern[] components2 = new ComponentPattern[6];
        components2[0] = new ComponentPattern("B", "0", false);
        components2[1] = new ComponentPattern("D", "0", false);
        components2[2] = new ComponentPattern("E", "2", false);
        components2[3] = new ComponentPattern("A", "0", false);
        components2[4] = new ComponentPattern("F", "2", false);
        components2[5] = new ComponentPattern("C", "1", false);

        MoleculePattern molecule1 = new MoleculePattern(moleculeDef, components1);
        MoleculePattern molecule2 = new MoleculePattern(moleculeDef, components2);

        Assert.IsTrue(molecule1.Matches(molecule2));
        Assert.IsTrue(molecule2.Matches(molecule1));
    }
コード例 #3
0
        public void EnumIsNotComponent()
        {
            var orm = GetOrm();
            var p   = new ComponentPattern(orm.Object);

            p.Match(typeof(Something)).Should().Be.False();
        }
コード例 #4
0
    public void Molecule3TypesOfSites()
    {
        MoleculeDef moleculeDef = Resources.Load("Tests/Molecules/Basic") as MoleculeDef;

        ComponentPattern[] components1 = new ComponentPattern[6];
        components1[0] = new ComponentPattern("p", "0", false);
        components1[1] = new ComponentPattern("p", "0", false);
        components1[2] = new ComponentPattern("p", "1", false);
        components1[3] = new ComponentPattern("p", "0", false);
        components1[4] = new ComponentPattern("active", "0", false);
        components1[5] = new ComponentPattern("inhibit", "0", false);

        ComponentPattern[] components2 = new ComponentPattern[6];
        components2[0] = new ComponentPattern("active", "0", false);
        components2[1] = new ComponentPattern("inhibit", "0", false);
        components2[2] = new ComponentPattern("p", "1", false);
        components2[3] = new ComponentPattern("p", "0", false);
        components2[4] = new ComponentPattern("p", "0", false);
        components2[5] = new ComponentPattern("p", "0", false);

        MoleculePattern molecule1 = new MoleculePattern(moleculeDef, components1);
        MoleculePattern molecule2 = new MoleculePattern(moleculeDef, components2);

        Assert.IsTrue(molecule1.Matches(molecule2));
        Assert.IsTrue(molecule2.Matches(molecule1));
    }
コード例 #5
0
        public void ClassWithPoidFieldIsNotComponent()
        {
            var orm = GetOrm();
            var p   = new ComponentPattern(orm.Object);

            p.Match(typeof(Entity)).Should().Be.False();
        }
コード例 #6
0
        public void ClassWithoutPoidIsComponent()
        {
            var orm = GetOrm();
            var p   = new ComponentPattern(orm.Object);

            p.Match(typeof(AComponent)).Should().Be.True();
        }
コード例 #7
0
    public void MoleculePatternDifferentSpeciesSameSites()
    {
        MoleculeDef moleculeDef1 = Resources.Load("Tests/Molecules/A test") as MoleculeDef;

        ComponentPattern[] components1 = new ComponentPattern[3];
        components1[0] = new ComponentPattern("a", "0", false);
        components1[1] = new ComponentPattern("b", "0", false);
        components1[2] = new ComponentPattern("c", "0", false);

        MoleculeDef moleculeDef2 = Resources.Load("Tests/Molecules/Basic") as MoleculeDef;

        ComponentPattern[] components2 = new ComponentPattern[3];
        components2[0] = new ComponentPattern("a", "0", false);
        components2[1] = new ComponentPattern("b", "0", false);
        components2[2] = new ComponentPattern("c", "0", false);

        MoleculePattern pattern1 = new MoleculePattern(moleculeDef1, components1);
        MoleculePattern pattern2 = new MoleculePattern(moleculeDef2, components2);

        if (debug)
        {
            Debug.Log("MoleculePatternDifferentSpeciesSameSites: " + pattern1.GetHashCode() + " != " + pattern2.GetHashCode()
                      + " ? " + pattern1.Equals(pattern2));
        }

        Assert.IsTrue(HashCodesMatchEquals(pattern1, pattern2));
    }
コード例 #8
0
    public void ComplexPatternSpeciesInDifferentOrder()
    {
        MoleculeDef moleculeDef1 = Resources.Load("Tests/Molecules/A test") as MoleculeDef;

        ComponentPattern[] components1 = new ComponentPattern[3];
        components1[0] = new ComponentPattern("a", "0", false);
        components1[1] = new ComponentPattern("b", "0", false);
        components1[2] = new ComponentPattern("c", "0", false);
        MoleculePattern pattern1 = new MoleculePattern(moleculeDef1, components1);

        MoleculeDef moleculeDef2 = Resources.Load("Tests/Molecules/B test") as MoleculeDef;

        ComponentPattern[] components2 = new ComponentPattern[3];
        components2[0] = new ComponentPattern("a", "0", false);
        components2[1] = new ComponentPattern("b", "0", false);
        components2[2] = new ComponentPattern("c", "0", false);
        MoleculePattern pattern2 = new MoleculePattern(moleculeDef2, components2);

        ComplexPattern complexPattern1 = new ComplexPattern(new MoleculePattern[] { pattern1, pattern2 });
        ComplexPattern complexPattern2 = new ComplexPattern(new MoleculePattern[] { pattern2, pattern1 });

        if (debug)
        {
            Debug.Log("ComplexPatternSpeciesInDifferentOrder: " + complexPattern1.GetHashCode() + " != " + complexPattern2.GetHashCode()
                      + " ? " + complexPattern1.Equals(complexPattern2));
        }

        Assert.IsTrue(HashCodesMatchEquals(complexPattern1, complexPattern2));
    }
コード例 #9
0
    public IEnumerator SetMoleculeState()
    {
        Reactor reactor = CreateReactor("SetMoleculeState");

        yield return(new WaitForEndOfFrame());

        Molecule molecule = reactor.GetComponentInChildren <Molecule>();

        MoleculeDef moleculeDef = Resources.Load("Tests/Molecules/Tester") as MoleculeDef;

        ComponentPattern[] components = new ComponentPattern[6];
        components[0] = new ComponentPattern("p", "1", false);
        components[1] = new ComponentPattern("p", "1", false);
        components[2] = new ComponentPattern("p", "0", false);
        components[3] = new ComponentPattern("p", "0", false);
        components[4] = new ComponentPattern("active", "1", false);
        components[5] = new ComponentPattern("inhibit", "0", false);
        MoleculePattern pattern = new MoleculePattern(moleculeDef, components);

        yield return(new WaitForSeconds(0.1f));

        pattern.SetStateOfMolecule(molecule);
        AssertIsTrue(pattern.Matches(molecule));

        DestroyReactor(reactor);
    }
コード例 #10
0
    public void Molecule1TypeOfSites()
    {
        MoleculeDef moleculeDef = Resources.Load("Tests/Molecules/Basic") as MoleculeDef;

        ComponentPattern[] components1 = new ComponentPattern[3];
        components1[0] = new ComponentPattern("A", "0", false);
        components1[1] = new ComponentPattern("A", "0", false);
        components1[2] = new ComponentPattern("A", "1", false);

        ComponentPattern[] components2 = new ComponentPattern[3];
        components2[0] = new ComponentPattern("A", "1", false);
        components2[1] = new ComponentPattern("A", "0", false);
        components2[2] = new ComponentPattern("A", "0", false);

        MoleculePattern molecule1 = new MoleculePattern(moleculeDef, components1);
        MoleculePattern molecule2 = new MoleculePattern(moleculeDef, components2);

        Assert.IsTrue(molecule1.Matches(molecule2));
        Assert.IsTrue(molecule2.Matches(molecule1));
    }
コード例 #11
0
 public void EnumIsNotComponent()
 {
     var orm = GetOrm();
     var p = new ComponentPattern(orm.Object);
     p.Match(typeof(Something)).Should().Be.False();
 }
コード例 #12
0
 public void ClassWithPoidIsNotComponent()
 {
     var orm = GetOrm();
     var p = new ComponentPattern(orm.Object);
     p.Match(typeof(AEntity)).Should().Be.False();
 }
コード例 #13
0
 public void ClassWithoutPoidIsComponent()
 {
     var orm = GetOrm();
     var p = new ComponentPattern(orm.Object);
     p.Match(typeof (AComponent)).Should().Be.True();
 }