Commit 5e177f3a authored by 16이상민's avatar 16이상민

Refactoring test method

parent 6901aa96
...@@ -44,6 +44,9 @@ public class CoordinateMapperManager : MonoBehaviour ...@@ -44,6 +44,9 @@ public class CoordinateMapperManager : MonoBehaviour
_DepthCoordinates = new DepthSpacePoint[KinectModule.KinectConstants.ColorWidth * _DepthCoordinates = new DepthSpacePoint[KinectModule.KinectConstants.ColorWidth *
KinectModule.KinectConstants.ColorHeight]; KinectModule.KinectConstants.ColorHeight];
_SourceBuffer = new KinectModule.SourceBuffer();
_KinectAccessManager = new KinectModule.KinectAccessManager();
_KinectAccessManager.Access(); _KinectAccessManager.Access();
} }
......
...@@ -9,8 +9,6 @@ public class CoordinateMapperView : MonoBehaviour ...@@ -9,8 +9,6 @@ public class CoordinateMapperView : MonoBehaviour
private DepthSpacePoint[] DepthPoints; private DepthSpacePoint[] DepthPoints;
private byte[] BodyIndexPoints; private byte[] BodyIndexPoints;
// In play mode, texture of gameobject should be same as texture which made by shader when after update.
void Start () void Start ()
{ {
......
...@@ -2,14 +2,10 @@ ...@@ -2,14 +2,10 @@
using UnityEngine.TestTools; using UnityEngine.TestTools;
using NUnit.Framework; using NUnit.Framework;
using System.Collections; using System.Collections;
using Windows.Kinect;
using System.Runtime.InteropServices;
using System;
class CoordinateMapperViewTests class CoordinateMapperViewTests
{ {
// A UnityTest behaves like a coroutine in PlayMode // TODO: Reduce warning factors
// and allows you to yield null to skip a frame in EditMode
[UnityTest] [UnityTest]
public IEnumerator MainTexture_Equal_Texture_Generate_By_Shader_When_After_Update() public IEnumerator MainTexture_Equal_Texture_Generate_By_Shader_When_After_Update()
{ {
...@@ -19,31 +15,36 @@ class CoordinateMapperViewTests ...@@ -19,31 +15,36 @@ class CoordinateMapperViewTests
yield return null; yield return null;
var Managers = GameObject.Find("Managers");
var CoordinateMapperManager = Managers.GetComponent<CoordinateMapperManager>();
var tmpObj = GameObject.CreatePrimitive(PrimitiveType.Plane); var tmpObj = GameObject.CreatePrimitive(PrimitiveType.Plane);
tmpObj.GetComponent<Renderer>().material = Resources.Load("GreenScreen/GreenScreen.mat", typeof(Material)) as Material; tmpObj.GetComponent<Renderer>().material = Resources.Load("GreenScreen/GreenScreen.mat", typeof(Material)) as Material;
tmpObj.GetComponent<Renderer>().material.SetTexture("_MainTex", CoordinateMapperManager.ColorTexture); var material = tmpObj.GetComponent<Renderer>().material;
SetTextureBuffer(material);
var DepthPoints = CoordinateMapperManager.DepthCoordinates;
var DepthBuffer = new ComputeBuffer(DepthPoints.Length, sizeof(float) * 2);
tmpObj.GetComponent<Renderer>().material.SetBuffer("depthCoordinates", DepthBuffer);
var BodyIndexPoints = CoordinateMapperManager.BodyIndexBuffer;
var BodyIndexBuffer = new ComputeBuffer(BodyIndexPoints.Length, sizeof(float));
tmpObj.GetComponent<Renderer>().material.SetBuffer("bodyIndexBuffer", BodyIndexBuffer);
var CoordinateMapperView = GameObject.Find("CoordinateMapView"); var CoordinateMapperView = GameObject.Find("CoordinateMapView");
// Use the Assert class to test conditions.
// yield to skip a frame
yield return null; yield return null;
var expected = tmpObj.GetComponent<Renderer>().material.mainTexture; var expected = new Texture();
Graphics.CopyTexture(material.mainTexture, expected);
UnityEngine.Object.Destroy(tmpObj);
var actual = CoordinateMapperView.GetComponent<Renderer>().material.mainTexture; var actual = CoordinateMapperView.GetComponent<Renderer>().material.mainTexture;
Assert.AreEqual(expected, actual, "texture of gameobject should be same as texture which made by shader."); Assert.AreEqual(expected, actual, "texture of gameobject should be same as texture which made by shader.");
} }
void SetTextureBuffer(Material material)
{
var CoordinateMapperManager = GameObject.Find("Managers").GetComponent<CoordinateMapperManager>();
material.SetTexture("_MainTex", CoordinateMapperManager.ColorTexture);
var DepthPoints = CoordinateMapperManager.DepthCoordinates;
var DepthBuffer = new ComputeBuffer(DepthPoints.Length, sizeof(float) * 2);
material.SetBuffer("depthCoordinates", DepthBuffer);
var BodyIndexPoints = CoordinateMapperManager.BodyIndexBuffer;
var BodyIndexBuffer = new ComputeBuffer(BodyIndexPoints.Length, sizeof(float));
material.SetBuffer("bodyIndexBuffer", BodyIndexBuffer);
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment