Ejemplo n.º 1
0
        public void ArbitraryTriangleRightArea()
        {
            TriangleArea triangle  = new TriangleArea(6, 4, 5);
            double       p         = (6 + 4 + 5) * 0.5;
            double       rightArea = Math.Sqrt(p * (p - 6) * (p - 4) * (p - 5));

            Assert.AreEqual(rightArea, triangle.Area);
        }
Ejemplo n.º 2
0
        private static void Act(int n, double expected)
        {
            var s      = BuildT(n);
            var msg    = $"Invalid answer for: \"{s}\"";
            var actual = TriangleArea.TArea(s);

            Assert.AreEqual(expected, actual, msg);
        }
Ejemplo n.º 3
0
        public void Area_3_4_5()
        {
            double a = 3, b = 4, c = 5;
            double expected = 6;

            double actual = TriangleArea.Area(a, b, c);

            Assert.AreEqual(expected, actual);
        }
Ejemplo n.º 4
0
        public void Area_2_4_8()
        {
            double a = 2, b = 4, c = 8;
            double expected = 4;

            double actual = TriangleArea.Area(a, b, c);

            Assert.AreEqual(expected, actual);
        }
Ejemplo n.º 5
0
        public void RightValues_Test()
        {
            // Arrange
            double a     = 6;
            double b     = 8;
            double c     = 10;
            double area1 = 24;
            double area2 = TriangleArea.Area(a, b, c);

            Assert.AreEqual(area1, area2);
        }
Ejemplo n.º 6
0
        public void TriangleExists_Test()
        {
            double a = 1;
            double b = 2;
            double c = 3;

            try
            {
                TriangleArea.Area(a, b, c);
            }
            catch (ArgumentException e)
            {
                StringAssert.Contains(e.Message, ConstMessage.WrongValues);
            }
        }
Ejemplo n.º 7
0
        public void SquaredParametersInfinity_Test()
        {
            double a = double.MaxValue / 2;
            double b = 15;
            double c = double.MaxValue - 10;

            try
            {
                TriangleArea.Area(a, b, c);
            }
            catch (ArgumentException e)
            {
                StringAssert.Contains(e.Message, ConstMessage.SquaredParameterInfinity);
            }
        }
Ejemplo n.º 8
0
        public void IncorrectLegLength_Test()
        {
            double a = 9;
            double b = 9;
            double c = 8;

            try
            {
                TriangleArea.Area(a, b, c);
            }
            catch (ArgumentException e)
            {
                StringAssert.Contains(e.Message, ConstMessage.TwoBigEqualsSides);
            }
        }
Ejemplo n.º 9
0
        public void NegativeValue_Test()
        {
            // Arrange
            double a = -6;
            double b = 8;
            double c = 10;

            try
            {
                TriangleArea.Area(a, b, c);
            }
            catch (ArgumentException e)
            {
                StringAssert.Contains(e.Message, ConstMessage.NegativeValues);
            }
        }
Ejemplo n.º 10
0
    public override void OnInspectorGUI()
    {
        base.OnInspectorGUI();
        GUILayout.Space(50);

        //if (!Role.Skin && Role.BaseLook.Length == 0)
        //    Role.Skin = Role.GetComponentInChildren<SkinnedMeshRenderer>();

        if (GUILayout.Button("Save"))
        {
            AssetDatabase.SaveAssets();
        }

        if (GUILayout.Button("Build"))
        {
            AssetExporter.GetShaders();
            AssetExporter.GetPublicAssets();
            AssetExporter.BuildAssetBundles(this.Role.gameObject);
            Selection.activeObject = this.serializedObject.targetObject;
        }

        if (GUILayout.Button("生成控制器"))
        {
            if (Selection.activeObject != this.Role.gameObject)
            {
                return;
            }
            string rootpath = Path.GetDirectoryName(AssetDatabase.GetAssetPath(Selection.activeObject));
            Selection.activeObject = AssetDatabase.LoadAssetAtPath(rootpath, typeof(Object));

            Object[] clips    = Selection.GetFiltered(typeof(AnimationClip), SelectionMode.DeepAssets);
            Animator animator = this.Role.gameObject.GetComponent <Animator>();
            animator.runtimeAnimatorController = AssetExporter.CreateOverrideController(string.Format("{0}.controller", this.Role.gameObject.name), rootpath, clips);
        }

        if (GUILayout.Button("生成骨骼数据"))
        {
            if (Selection.activeObject != this.Role.gameObject)
            {
                return;
            }
            Transform[]       bones  = this.Role.gameObject.GetComponentsInChildren <Transform>(true);
            List <GameObject> golist = new List <GameObject>();
            for (int i = 0; i < bones.Length; i++)
            {
                golist.Add(bones[i].gameObject);
            }

            this.Role.Bones = golist.ToArray();
        }

        if (GUILayout.Button("复制动画"))
        {
            if (Role != null)
            {
                List <OverrideAnimiClip> list = new List <OverrideAnimiClip>();
                Animator roleAnimator         = Role.GetComponent <Animator>();
                if (roleAnimator == null || !(roleAnimator.runtimeAnimatorController is AnimatorOverrideController) || roleAnimator.avatar == null)
                {
                    return;
                }
                AnimatorOverrideController Controller = roleAnimator.runtimeAnimatorController as AnimatorOverrideController;
                List <KeyValuePair <AnimationClip, AnimationClip> > overrides = new List <KeyValuePair <AnimationClip, AnimationClip> >();
                Controller.GetOverrides(overrides);

                for (int i = 0; i < overrides.Count; i++)
                {
                    KeyValuePair <AnimationClip, AnimationClip> kvp = overrides[i];
                    if (kvp.Value == null)
                    {
                        continue;
                    }
                    list.Add(new OverrideAnimiClip(kvp.Key.name, kvp.Value));
                }
                Role.AnimiClips = list.ToArray();
            }
        }

        if (GUILayout.Button("添加目标"))
        {
            if (!ModelLoader.self)
            {
                return;
            }
            RoleObject target = ModelLoader.CreateRole(this.Role, false);
            target.transform.position = new Vector3(Random.Range(-5, 5), 0, Random.Range(10, 15));
            target.transform.LookAt(ModelLoader.self.transform);
            target.tag     = "target";
            target.enabled = false;

            ModelLoader.targetList.Add(target);
        }

        if (GUILayout.Button("预览低模"))
        {
            if (!EditorApplication.isPlaying)
            {
                EditorUtility.DisplayDialog("Error", "需要在运行状态下才能进行该操作", "OK");
                return;
            }

            ModelLoader.ResetPreviewingObject();

            roleObject = ModelLoader.CreateRole(this.Role, false);

            roleObject.tag               = "self";
            ModelLoader.self             = roleObject;
            ModelLoader.PreviewingObject = roleObject.gameObject;
            ModelLoader.SetupCamera(ModelLoader.PreviewingObject.transform);
            TriangleArea ta = roleObject.gameObject.AddComponent <TriangleArea>();
        }

        if (GUILayout.Button("预览高模"))
        {
            if (!EditorApplication.isPlaying)
            {
                EditorUtility.DisplayDialog("Error", "需要在运行状态下才能进行该操作", "OK");
                return;
            }

            ModelLoader.ResetPreviewingObject();

            roleObject = ModelLoader.CreateRole(this.Role, true);

            roleObject.tag               = "self";
            ModelLoader.self             = roleObject;
            ModelLoader.PreviewingObject = roleObject.gameObject;
            ModelLoader.SetupCamera(ModelLoader.PreviewingObject.transform);
            TriangleArea ta = roleObject.gameObject.AddComponent <TriangleArea>();
        }

        //当Inspector 面板发生变化时保存数据
        if (GUI.changed)
        {
            EditorUtility.SetDirty(target);
        }
    }
Ejemplo n.º 11
0
 private void btnGo_Click(object sender, EventArgs e)
 {
     if (cbOperation.Text.Equals("Quadratic Solver"))
     {
         this.Hide();
         QuadraticSolver qs = new QuadraticSolver();
         qs.ShowDialog();
         this.Close();
     }
     else if (!cbOperation.Text.Equals("") && !cbShape.Text.Equals(""))
     {
         if (cbOperation.Text.Equals("Calculate Area"))
         {
             if (cbShape.Text.Equals("Circle"))
             {
                 this.Hide();
                 CircleArea circleArea = new CircleArea();
                 circleArea.ShowDialog();
                 this.Close();
             }
             else if (cbShape.Text.Equals("Square"))
             {
                 this.Hide();
                 SquareArea squareArea = new SquareArea();
                 squareArea.ShowDialog();
                 this.Close();
             }
             else if (cbShape.Text.Equals("Triangle"))
             {
                 this.Hide();
                 TriangleArea triangleArea = new TriangleArea();
                 triangleArea.ShowDialog();
                 this.Close();
             }
         }
         else if (cbOperation.Text.Equals("Calculate Perimeter"))
         {
             if (cbShape.Text.Equals("Circle"))
             {
                 this.Hide();
                 CirclePerimeter circlePerimeter = new CirclePerimeter();
                 circlePerimeter.ShowDialog();
                 this.Close();
             }
             else if (cbShape.Text.Equals("Square"))
             {
                 this.Hide();
                 SquarePerimeter squarePerimeter = new SquarePerimeter();
                 squarePerimeter.ShowDialog();
                 this.Close();
             }
             else if (cbShape.Text.Equals("Triangle"))
             {
                 this.Hide();
                 TrianglePerimeter trianglePerimeter = new TrianglePerimeter();
                 trianglePerimeter.ShowDialog();
                 this.Close();
             }
         }
     }
 }