using System.Collections;
using System.Collections.Generic;
using NUnit.Framework;
using UnityEngine;
using UnityEngine.TestTools;
using UnityEngine.SceneManagement;

public class MapTests
{
	
 	[OneTimeSetUp]
    public void OneTimeSetup()
    {
        SceneManager.LoadScene("Scenes/Demo/Demo_Start", LoadSceneMode.Single); // Selects scene for test
    }
	

    [UnityTest]
    public IEnumerator heightCheckTest()
    {
		GameObject MapGen = GameObject.FindWithTag("Map");
		MapGeneration Script = MapGen.GetComponent();
		Assert.IsTrue(Script.retH() > 0);
        return null;
    }
	
	    [UnityTest]
    public IEnumerator widthCheckTest()
    {
		GameObject MapGen = GameObject.FindWithTag("Map");
		MapGeneration Script = MapGen.GetComponent();
		Assert.IsTrue(Script.retW() > 0);
        return null;
    }
	
	    [UnityTest]
    public IEnumerator startXCheckTest()
    {
		GameObject MapGen = GameObject.FindWithTag("Map");
		MapGeneration Script = MapGen.GetComponent();
		Assert.IsTrue(Script.retSX() > 0 && Script.retSX() < Script.retW());
        return null;
    }
	
	    [UnityTest]
    public IEnumerator startYCheckTest()
    {
		GameObject MapGen = GameObject.FindWithTag("Map");
		MapGeneration Script = MapGen.GetComponent();
		Assert.IsTrue(Script.retSY() > 0 && Script.retSY() < Script.retH());
        return null;
    }
	
	    [UnityTest]
    public IEnumerator desiredRoomCountCheckTest()
    {
		GameObject MapGen = GameObject.FindWithTag("Map");
		MapGeneration Script = MapGen.GetComponent();
		Assert.IsTrue(Script.retDesiredRooms() > 0 && Script.retDesiredRooms() <= (Script.retH()) * (Script.retW()) - 1);
        return null;
    }
}