Example #1
0
        public void D_Nested_CreateNegativeVariableSP_Test()
        {
            SimplePart sP = new SimplePart("-x");

            Assert.False(sP.IsFinal);
            Assert.False(sP.IsValue);
        }
Example #2
0
 public virtual void OnCellPartEnterNearby(SimplePart cp)
 {
     if (Distance(cp) < CellPartBalance.i.springMaxDist && cp.transform.parent == transform.parent)
     {
         JointWrapper.MakeJoint(this, cp);
     }
 }
    public static SimplePart WhoControlsJoint(SimplePart sp1, SimplePart sp2)
    {
        if (sp1 is Membrane m1 && sp2 is Membrane m2)
        {
            // sp1 is the default controller if niether has an actual joint
            if (GetJoint(sp2, sp1) == null)
            {
                return(sp1);
            }
            else
            {
                return(sp2);
            }
        }

        if (sp1.JointDesire(sp2) > sp2.JointDesire(sp1))
        {
            return(sp1);
        }
        else if (sp1.JointDesire(sp2) == sp2.JointDesire(sp1))
        {
            // If same desire, choose arbitrariliy but consistently.
            return(sp1.GetInstanceID() < sp2.GetInstanceID() ? sp1 : sp2);
        }
        else
        {
            return(sp2);
        }
    }
Example #4
0
        public void C_Variables_CreateVarableSP_Test()
        {
            SimplePart sP = new SimplePart("X");

            Assert.True(sP.IsFinal);
            Assert.False(sP.IsValue);
        }
 public override void OnCellPartEnterNearby(SimplePart cp)
 {
     if (nextJoint == null)
     {
         FindNext();
     }
 }
Example #6
0
        public void A_Number_CreateSimpePartDoubleWithComma_Test()
        {
            SimplePart sP = new SimplePart("5,2");

            Assert.True(sP.IsFinal);
            Assert.True(sP.IsValue);
        }
Example #7
0
        public void F_SomeVariables_TwoVariablesCreate_Test()
        {
            SimplePart sP = new SimplePart("x + y");

            Assert.False(sP.IsFinal);
            Assert.False(sP.IsValue);
        }
Example #8
0
        public void C_Variables_FixVariable_Test()
        {
            SimplePart sP = new SimplePart("x");

            sP.FixValue("x", 5.6);

            Assert.AreEqual(5.6, sP.GetValue(), delta);
        }
Example #9
0
        public void A_Number_GetValueInteger_Test()
        {
            SimplePart sP = new SimplePart("5");

            Assert.True(sP.IsFinal);
            Assert.True(sP.IsValue);
            Assert.AreEqual(5, sP.GetValue());
        }
Example #10
0
        public void E_SomeOperations_DegreeWithBrackets_Test2()
        {
            SimplePart sP = new SimplePart("-3 ^ (x + 4)");

            sP.FixValue("x", -2.0);

            Assert.AreEqual(9.0, sP.GetValue(), delta);
        }
Example #11
0
        public void E_SomeOperations_PlusWithMyltiplyWithDegree_Test3()
        {
            SimplePart sP = new SimplePart("2 - 3 * x ^ 4");

            sP.FixValue("x", -1.0);

            Assert.AreEqual(-1.0, sP.GetValue(), delta);
        }
Example #12
0
        public void E_SomeOperations_PlusWithMyltiplyWithDegree_Test2()
        {
            SimplePart sP = new SimplePart("-3 + x * 4 ^ 2");

            sP.FixValue("x", 2.0);

            Assert.AreEqual(29.0, sP.GetValue(), delta);
        }
Example #13
0
        public void E_SomeOperations_PlusWithMyltiply_Test2()
        {
            SimplePart sP = new SimplePart("-3 * x + 4");

            sP.FixValue("x", -1.0);

            Assert.AreEqual(7.0, sP.GetValue(), delta);
        }
Example #14
0
        public void A_Number_GetValueDouble_Test()
        {
            SimplePart sP = new SimplePart("5.2");

            Assert.True(sP.IsFinal);
            Assert.True(sP.IsValue);
            Assert.True(Equals(5.2, sP.GetValue()));
        }
Example #15
0
        public void E_SomeOperations_PlusWithMinusWithBacket_Test2()
        {
            SimplePart sP = new SimplePart("(-3 - x) + 4");

            sP.FixValue("x", -1.0);

            Assert.AreEqual(0.0, sP.GetValue(), delta);
        }
Example #16
0
        public void E_SomeOperations_PlusWithMinus_Test2()
        {
            SimplePart sP = new SimplePart("-3 + x - 4");

            sP.FixValue("x", -1.0);

            Assert.AreEqual(-8.0, sP.GetValue(), delta);
        }
Example #17
0
        public void F_SomeVariables_TwoVariablesGetVariable_Test()
        {
            SimplePart sP = new SimplePart("x + y");

            Assert.AreEqual(new List <string> {
                "x", "y"
            }, sP.GetVariables());
        }
Example #18
0
        public void E_SomeOperations_DoublePlus_Test2()
        {
            SimplePart sP = new SimplePart("3 + x + 4");

            sP.FixValue("x", -2.0);

            Assert.AreEqual(5.0, sP.GetValue(), delta);
        }
Example #19
0
        public void D_Nested_FixValueVariableSP_Test()
        {
            SimplePart sP = new SimplePart("-x");

            sP.FixValue("x", 2.1);

            Assert.Pass();
        }
Example #20
0
        public void G_NegativeNumber_BadPractice_Test4()
        {
            SimplePart sP = new SimplePart("3 + (-x) * 4");

            sP.FixValue("x", -2.0);

            Assert.AreEqual(11.0, sP.GetValue(), delta);
        }
Example #21
0
        public void G_NegativeNumber_BadPractice_Test6()
        {
            SimplePart sP = new SimplePart("((3 + x) * 4) - x");

            sP.FixValue("x", -2.0);

            Assert.AreEqual(6.0, sP.GetValue(), delta);
        }
Example #22
0
        public void F_SomeVariables_OneVariablesDegree_Test()
        {
            SimplePart sP = new SimplePart("x ^ x");

            sP.FixValue("x", 3.0);

            Assert.AreEqual(27.0, sP.GetValue(), delta);
        }
Example #23
0
        public void G_NegativeNumber_BadPractice_Test3()
        {
            SimplePart sP = new SimplePart("t + (-2 + x)");

            sP.FixValue("x", -2.0);
            sP.FixValue("t", 4.0);

            Assert.AreEqual(0.0, sP.GetValue(), delta);
        }
Example #24
0
        public void F_SomeVariables_OneXTwoYSumWithMyltiply_Test()
        {
            SimplePart sP = new SimplePart("x + y * x");

            sP.FixValue("x", 2.0);
            sP.FixValue("y", 3);

            Assert.AreEqual(8.0, sP.GetValue(), delta);
        }
Example #25
0
        public void F_SomeVariables_TwoVariablesDegree_Test2()
        {
            SimplePart sP = new SimplePart("x ^ y");

            sP.FixValue("x", -2.0);
            sP.FixValue("y", 3);

            Assert.AreEqual(-8.0, sP.GetValue(), delta);
        }
Example #26
0
        public void F_SomeVariables_TwoVariablesMylt_Test()
        {
            SimplePart sP = new SimplePart("x * y");

            sP.FixValue("x", -2.0);
            sP.FixValue("y", 3.5);

            Assert.AreEqual(-7.0, sP.GetValue(), delta);
        }
Example #27
0
        public void F_SomeVariables_TwoVariablesDiv_Test()
        {
            SimplePart sP = new SimplePart("x / y");

            sP.FixValue("x", 6.0);
            sP.FixValue("y", 1.5);

            Assert.AreEqual(4.0, sP.GetValue(), delta);
        }
Example #28
0
        public void F_SomeVariables_TwoVariablesSetValue_Test()
        {
            SimplePart sP = new SimplePart("x + y");

            sP.FixValue("x", -2.0);
            sP.FixValue("y", 2.0);

            Assert.AreEqual(0.0, sP.GetValue(), delta);
        }
Example #29
0
        public void D_B_Brackets_GetValueCosVariableSP_Test()
        {
            SimplePart sP = new SimplePart("cos(x)");

            sP.FixValue("x", 3.14);

            var result = sP.GetValue();

            Assert.AreEqual(Math.Cos(3.14), result);
        }
Example #30
0
        public void D_Nested_GetValueMinusSP_Test2()
        {
            SimplePart sP = new SimplePart("3.2 - x");

            sP.FixValue("x", 3);

            var result = sP.GetValue();

            Assert.AreEqual(0.2, result, delta);
        }