|
@@ -17,10 +17,13 @@ using System.Text.RegularExpressions;
|
|
|
using WindowsInput;
|
|
|
using WindowsInput.Native;
|
|
|
using System.Threading.Tasks;
|
|
|
+using System.Linq;
|
|
|
+using Application = TestStack.White.Application;
|
|
|
+using Window = TestStack.White.UIItems.WindowItems.Window;
|
|
|
|
|
|
namespace WhiteTests
|
|
|
{
|
|
|
-
|
|
|
+
|
|
|
[TestClass]
|
|
|
public class UITest
|
|
|
{
|
|
@@ -92,8 +95,152 @@ namespace WhiteTests
|
|
|
return application.GetWindow("Sketch Assistant");
|
|
|
}
|
|
|
|
|
|
+ [DataTestMethod]
|
|
|
+ [TestCategory("FileIO")]
|
|
|
+ [DataRow("line")]
|
|
|
+ public void LoadSVGFileTest(String filename)
|
|
|
+ {
|
|
|
+ Window mainWindow = setupapp();
|
|
|
+ InputSimulator inputSimulator = new InputSimulator();
|
|
|
+ Thread.Sleep(20);
|
|
|
+ string[] files = Directory.GetFiles(getSketchAssistantDirectory() + @"\whitelisted", "*.svg", SearchOption.AllDirectories);
|
|
|
+ Thread.Sleep(20);
|
|
|
+ mainWindow.Get<Menu>(SearchCriteria.ByAutomationId("LoadMenuButton")).Click();
|
|
|
+ Thread.Sleep(20);
|
|
|
+ mainWindow.Get<Menu>(SearchCriteria.ByAutomationId("SVGMenuButton")).Click();
|
|
|
+ Thread.Sleep(1000);
|
|
|
+ inputSimulator.Keyboard.TextEntry(getSketchAssistantDirectory() + @"whitelisted\" + filename + ".svg");
|
|
|
+ Thread.Sleep(1000);
|
|
|
+ inputSimulator.Keyboard.KeyPress(VirtualKeyCode.RETURN);
|
|
|
+ Thread.Sleep(1000);
|
|
|
+ //Assert.AreEqual("Last Action: A new canvas was created.", mainWindow.Get<TextBox>(SearchCriteria.ByAutomationId("LastActionBox")).Text.ToString());
|
|
|
+ mainWindow.Close();
|
|
|
+ }
|
|
|
+
|
|
|
+ [TestMethod]
|
|
|
+ [TestCategory("DirectInput")]
|
|
|
+ public void DrawLineOnCanvasTest()
|
|
|
+ {
|
|
|
+ Window mainWindow = setupapp();
|
|
|
+ Thread.Sleep(20);
|
|
|
+ InputSimulator inputSimulator = new InputSimulator();
|
|
|
+ MouseSimulator mouseSimulator = new MouseSimulator(inputSimulator);
|
|
|
+ Assert.AreEqual("none", mainWindow.Get<TextBox>(SearchCriteria.ByAutomationId("LastActionBox")).Text.ToString());
|
|
|
+ mainWindow.Get<Button>(SearchCriteria.ByAutomationId("CanvasButton")).Click();
|
|
|
+ Thread.Sleep(20);
|
|
|
+ Assert.AreEqual("Last Action: A new canvas was created.", mainWindow.Get<TextBox>(SearchCriteria.ByAutomationId("LastActionBox")).Text.ToString());
|
|
|
+ Thread.Sleep(20);
|
|
|
+ inputSimulator.Mouse.MoveMouseBy(100,100);
|
|
|
+ inputSimulator.Mouse.LeftButtonDown();
|
|
|
+ Thread.Sleep(20);
|
|
|
+ inputSimulator.Mouse.MoveMouseBy(100, 100);
|
|
|
+ Thread.Sleep(20);
|
|
|
+ inputSimulator.Mouse.LeftButtonUp();
|
|
|
+ Thread.Sleep(20);
|
|
|
+ Assert.AreEqual("Last Action: Line number 0 was drawn.", mainWindow.Get<TextBox>(SearchCriteria.ByAutomationId("LastActionBox")).Text.ToString());
|
|
|
+ mainWindow.Close();
|
|
|
+ }
|
|
|
+
|
|
|
+ [TestMethod]
|
|
|
+ [TestCategory("DirectInput")]
|
|
|
+ public void UndoLineOnCanvasTest()
|
|
|
+ {
|
|
|
+ Window mainWindow = setupapp();
|
|
|
+ Thread.Sleep(20);
|
|
|
+ InputSimulator inputSimulator = new InputSimulator();
|
|
|
+ MouseSimulator mouseSimulator = new MouseSimulator(inputSimulator);
|
|
|
+ Assert.AreEqual("none", mainWindow.Get<TextBox>(SearchCriteria.ByAutomationId("LastActionBox")).Text.ToString());
|
|
|
+ mainWindow.Get<Button>(SearchCriteria.ByAutomationId("CanvasButton")).Click();
|
|
|
+ Thread.Sleep(20);
|
|
|
+ Assert.AreEqual("Last Action: A new canvas was created.", mainWindow.Get<TextBox>(SearchCriteria.ByAutomationId("LastActionBox")).Text.ToString());
|
|
|
+ Thread.Sleep(20);
|
|
|
+ inputSimulator.Mouse.MoveMouseBy(0, 200);
|
|
|
+ inputSimulator.Mouse.LeftButtonDown();
|
|
|
+ Thread.Sleep(20);
|
|
|
+ inputSimulator.Mouse.MoveMouseBy(500, 300);
|
|
|
+ Thread.Sleep(20);
|
|
|
+ inputSimulator.Mouse.LeftButtonUp();
|
|
|
+ Thread.Sleep(20);
|
|
|
+ Assert.AreEqual("Last Action: Line number 0 was drawn.", mainWindow.Get<TextBox>(SearchCriteria.ByAutomationId("LastActionBox")).Text.ToString());
|
|
|
+ Thread.Sleep(20);
|
|
|
+ mainWindow.Get<Button>(SearchCriteria.ByAutomationId("UndoButton")).Click();
|
|
|
+ Thread.Sleep(100);
|
|
|
+ Assert.AreEqual("Last Action: A new canvas was created.", mainWindow.Get<TextBox>(SearchCriteria.ByAutomationId("LastActionBox")).Text.ToString());
|
|
|
+ mainWindow.Close();
|
|
|
+ }
|
|
|
+
|
|
|
[TestMethod]
|
|
|
- [TestCategory("bla")]
|
|
|
+ [TestCategory("DirectInput")]
|
|
|
+ public void InvalidLineTest()
|
|
|
+ {
|
|
|
+ Window mainWindow = setupapp();
|
|
|
+ Thread.Sleep(20);
|
|
|
+ InputSimulator inputSimulator = new InputSimulator();
|
|
|
+ MouseSimulator mouseSimulator = new MouseSimulator(inputSimulator);
|
|
|
+ Assert.AreEqual("none", mainWindow.Get<TextBox>(SearchCriteria.ByAutomationId("LastActionBox")).Text.ToString());
|
|
|
+ mainWindow.Get<Button>(SearchCriteria.ByAutomationId("CanvasButton")).Click();
|
|
|
+ Thread.Sleep(20);
|
|
|
+ Assert.AreEqual("Last Action: A new canvas was created.", mainWindow.Get<TextBox>(SearchCriteria.ByAutomationId("LastActionBox")).Text.ToString());
|
|
|
+ Thread.Sleep(20);
|
|
|
+ mainWindow.Get<Button>(SearchCriteria.ByAutomationId("DrawButton")).Click();
|
|
|
+ Thread.Sleep(20);
|
|
|
+ inputSimulator.Mouse.LeftButtonDown();
|
|
|
+ inputSimulator.Mouse.MoveMouseBy(0, 200);
|
|
|
+ Thread.Sleep(20);
|
|
|
+ inputSimulator.Mouse.MoveMouseBy(500, 300);
|
|
|
+ Thread.Sleep(20);
|
|
|
+ inputSimulator.Mouse.LeftButtonUp();
|
|
|
+ Thread.Sleep(20);
|
|
|
+ Assert.AreEqual("Last Action: A new canvas was created.", mainWindow.Get<TextBox>(SearchCriteria.ByAutomationId("LastActionBox")).Text.ToString());
|
|
|
+ Thread.Sleep(20);
|
|
|
+ inputSimulator.Mouse.MoveMouseBy(-1000, 0);
|
|
|
+ Thread.Sleep(20);
|
|
|
+ inputSimulator.Mouse.LeftButtonDown();
|
|
|
+ inputSimulator.Mouse.MoveMouseBy(1000, 0);
|
|
|
+ inputSimulator.Mouse.LeftButtonUp();
|
|
|
+ Thread.Sleep(20);
|
|
|
+ Assert.AreEqual("Last Action: A new canvas was created.", mainWindow.Get<TextBox>(SearchCriteria.ByAutomationId("LastActionBox")).Text.ToString());
|
|
|
+ mainWindow.Close();
|
|
|
+ }
|
|
|
+
|
|
|
+ [TestMethod]
|
|
|
+ [TestCategory("DirectInput")]
|
|
|
+ public void PointsOnCanvasSimilarityTest()
|
|
|
+ {
|
|
|
+ Window mainWindow = setupapp();
|
|
|
+ Thread.Sleep(20);
|
|
|
+ InputSimulator inputSimulator = new InputSimulator();
|
|
|
+ MouseSimulator mouseSimulator = new MouseSimulator(inputSimulator);
|
|
|
+ Assert.AreEqual("none", mainWindow.Get<TextBox>(SearchCriteria.ByAutomationId("LastActionBox")).Text.ToString());
|
|
|
+ Assert.AreEqual("-", mainWindow.Get<TextBox>(SearchCriteria.ByAutomationId("LineSimilarityBox")).Text.ToString());
|
|
|
+ mainWindow.Get<Button>(SearchCriteria.ByAutomationId("CanvasButton")).Click();
|
|
|
+ inputSimulator.Mouse.MoveMouseBy(0, 200);
|
|
|
+ inputSimulator.Mouse.LeftButtonDown();
|
|
|
+ Thread.Sleep(20);
|
|
|
+ inputSimulator.Mouse.LeftButtonUp();
|
|
|
+ Thread.Sleep(20);
|
|
|
+ Assert.AreEqual("Last Action: Line number 0 was drawn.", mainWindow.Get<TextBox>(SearchCriteria.ByAutomationId("LastActionBox")).Text.ToString());
|
|
|
+ Assert.AreEqual("-", mainWindow.Get<TextBox>(SearchCriteria.ByAutomationId("LineSimilarityBox")).Text.ToString());
|
|
|
+ Thread.Sleep(20);
|
|
|
+ inputSimulator.Mouse.LeftButtonDown();
|
|
|
+ Thread.Sleep(20);
|
|
|
+ inputSimulator.Mouse.LeftButtonUp();
|
|
|
+ Thread.Sleep(20);
|
|
|
+ Assert.AreEqual("Last Action: Line number 1 was drawn.", mainWindow.Get<TextBox>(SearchCriteria.ByAutomationId("LastActionBox")).Text.ToString());
|
|
|
+ Assert.AreEqual("1", mainWindow.Get<TextBox>(SearchCriteria.ByAutomationId("LineSimilarityBox")).Text.ToString());
|
|
|
+ mainWindow.Get<Button>(SearchCriteria.ByAutomationId("UndoButton")).Click();
|
|
|
+ Thread.Sleep(20);
|
|
|
+ Assert.AreEqual("Last Action: Line number 0 was drawn.", mainWindow.Get<TextBox>(SearchCriteria.ByAutomationId("LastActionBox")).Text.ToString());
|
|
|
+ Assert.AreEqual("-", mainWindow.Get<TextBox>(SearchCriteria.ByAutomationId("LineSimilarityBox")).Text.ToString());
|
|
|
+ mainWindow.Get<Button>(SearchCriteria.ByAutomationId("RedoButton")).Click();
|
|
|
+ Thread.Sleep(20);
|
|
|
+ Assert.AreEqual("Last Action: Line number 1 was drawn.", mainWindow.Get<TextBox>(SearchCriteria.ByAutomationId("LastActionBox")).Text.ToString());
|
|
|
+ Assert.AreEqual("1", mainWindow.Get<TextBox>(SearchCriteria.ByAutomationId("LineSimilarityBox")).Text.ToString());
|
|
|
+ mainWindow.Close();
|
|
|
+ }
|
|
|
+
|
|
|
+ [TestMethod]
|
|
|
+ [TestCategory("DebugInput")]
|
|
|
public void CreateCanvasTest()
|
|
|
{
|
|
|
Window mainWindow = setupapp();
|
|
@@ -106,7 +253,7 @@ namespace WhiteTests
|
|
|
}
|
|
|
|
|
|
[TestMethod]
|
|
|
- [TestCategory("bla")]
|
|
|
+ [TestCategory("DebugInput")]
|
|
|
public void DrawLineTest()
|
|
|
{
|
|
|
Window mainWindow = setupapp();
|
|
@@ -126,6 +273,7 @@ namespace WhiteTests
|
|
|
}
|
|
|
|
|
|
[TestMethod]
|
|
|
+ [TestCategory("DebugInput")]
|
|
|
public void DeleteLineTest()
|
|
|
{
|
|
|
Window mainWindow = setupapp();
|
|
@@ -157,7 +305,7 @@ namespace WhiteTests
|
|
|
}
|
|
|
|
|
|
[TestMethod]
|
|
|
- [TestCategory("bla")]
|
|
|
+ [TestCategory("DebugInput")]
|
|
|
public void UndoTest()
|
|
|
{
|
|
|
Window mainWindow = setupapp();
|
|
@@ -181,7 +329,7 @@ namespace WhiteTests
|
|
|
}
|
|
|
|
|
|
[TestMethod]
|
|
|
- [TestCategory("bla")]
|
|
|
+ [TestCategory("DebugInput")]
|
|
|
public void RedoTest()
|
|
|
{
|
|
|
Window mainWindow = setupapp();
|
|
@@ -209,7 +357,8 @@ namespace WhiteTests
|
|
|
}
|
|
|
|
|
|
[TestMethod]
|
|
|
- public void DrawSeveralLines()
|
|
|
+ [TestCategory("DebugInput")]
|
|
|
+ public void DrawSeveralLinesTest()
|
|
|
{
|
|
|
Window mainWindow = setupapp();
|
|
|
Thread.Sleep(20);
|
|
@@ -237,7 +386,8 @@ namespace WhiteTests
|
|
|
}
|
|
|
|
|
|
[TestMethod]
|
|
|
- public void DeleteSeveralLines()
|
|
|
+ [TestCategory("DebugInput")]
|
|
|
+ public void DeleteSeveralLinesTest()
|
|
|
{
|
|
|
Window mainWindow = setupapp();
|
|
|
Thread.Sleep(20);
|
|
@@ -276,7 +426,8 @@ namespace WhiteTests
|
|
|
}
|
|
|
|
|
|
[TestMethod]
|
|
|
- public void UndoSeveralLines()
|
|
|
+ [TestCategory("DebugInput")]
|
|
|
+ public void UndoSeveralLinesTest()
|
|
|
{
|
|
|
Window mainWindow = setupapp();
|
|
|
Thread.Sleep(20);
|
|
@@ -312,7 +463,8 @@ namespace WhiteTests
|
|
|
}
|
|
|
|
|
|
[TestMethod]
|
|
|
- public void RedoSeveralLines()
|
|
|
+ [TestCategory("DebugInput")]
|
|
|
+ public void RedoSeveralLinesTest()
|
|
|
{
|
|
|
Window mainWindow = setupapp();
|
|
|
Thread.Sleep(20);
|
|
@@ -356,7 +508,8 @@ namespace WhiteTests
|
|
|
}
|
|
|
|
|
|
[TestMethod]
|
|
|
- public void UndoAndRedoTests()
|
|
|
+ [TestCategory("DebugInput")]
|
|
|
+ public void UndoAndRedoTest()
|
|
|
{
|
|
|
Window mainWindow = setupapp();
|
|
|
Thread.Sleep(20);
|
|
@@ -414,7 +567,80 @@ namespace WhiteTests
|
|
|
}
|
|
|
|
|
|
[TestMethod]
|
|
|
- public void PointDraw()
|
|
|
+ [TestCategory("DebugInput")]
|
|
|
+ public void UndoAndDrawTest()
|
|
|
+ {
|
|
|
+ Window mainWindow = setupapp();
|
|
|
+ Thread.Sleep(20);
|
|
|
+ Assert.AreEqual("none", mainWindow.Get<TextBox>(SearchCriteria.ByAutomationId("LastActionBox")).Text.ToString());
|
|
|
+ mainWindow.Get<Button>(SearchCriteria.ByAutomationId("CanvasButton")).Click();
|
|
|
+ Thread.Sleep(20);
|
|
|
+ Assert.AreEqual("Last Action: A new canvas was created.", mainWindow.Get<TextBox>(SearchCriteria.ByAutomationId("LastActionBox")).Text.ToString());
|
|
|
+ mainWindow.Get<Menu>(SearchCriteria.ByAutomationId("EditMenuButton")).Click();
|
|
|
+ Thread.Sleep(20);
|
|
|
+ mainWindow.Get<Menu>(SearchCriteria.ByAutomationId("DebugMode")).Click();
|
|
|
+ Thread.Sleep(20);
|
|
|
+ mainWindow.Get<Menu>(SearchCriteria.ByAutomationId("DebugFour")).Click();
|
|
|
+ Thread.Sleep(2000);
|
|
|
+ Assert.AreEqual("Last Action: Line number 0 was drawn.", mainWindow.Get<TextBox>(SearchCriteria.ByAutomationId("LastActionBox")).Text.ToString());
|
|
|
+ Thread.Sleep(20);
|
|
|
+ mainWindow.Get<Button>(SearchCriteria.ByAutomationId("UndoButton")).Click();
|
|
|
+ Thread.Sleep(20);
|
|
|
+ Assert.AreEqual("Last Action: A new canvas was created.", mainWindow.Get<TextBox>(SearchCriteria.ByAutomationId("LastActionBox")).Text.ToString());
|
|
|
+ Thread.Sleep(20);
|
|
|
+ mainWindow.Get<Menu>(SearchCriteria.ByAutomationId("EditMenuButton")).Click();
|
|
|
+ Thread.Sleep(20);
|
|
|
+ mainWindow.Get<Menu>(SearchCriteria.ByAutomationId("DebugMode")).Click();
|
|
|
+ Thread.Sleep(20);
|
|
|
+ mainWindow.Get<Menu>(SearchCriteria.ByAutomationId("DebugFour")).Click();
|
|
|
+ Thread.Sleep(2000);
|
|
|
+ Assert.AreEqual("Last Action: Line number 1 was drawn.", mainWindow.Get<TextBox>(SearchCriteria.ByAutomationId("LastActionBox")).Text.ToString());
|
|
|
+ Thread.Sleep(20);
|
|
|
+ mainWindow.Close();
|
|
|
+ }
|
|
|
+
|
|
|
+ [TestMethod]
|
|
|
+ [TestCategory("DebugInput")]
|
|
|
+ public void DeleteSeveralLinesAtOnceTest()
|
|
|
+ {
|
|
|
+ Window mainWindow = setupapp();
|
|
|
+ Thread.Sleep(20);
|
|
|
+ Assert.AreEqual("none", mainWindow.Get<TextBox>(SearchCriteria.ByAutomationId("LastActionBox")).Text.ToString());
|
|
|
+ mainWindow.Get<Button>(SearchCriteria.ByAutomationId("CanvasButton")).Click();
|
|
|
+ Thread.Sleep(20);
|
|
|
+ Assert.AreEqual("Last Action: A new canvas was created.", mainWindow.Get<TextBox>(SearchCriteria.ByAutomationId("LastActionBox")).Text.ToString());
|
|
|
+ mainWindow.Get<Menu>(SearchCriteria.ByAutomationId("EditMenuButton")).Click();
|
|
|
+ Thread.Sleep(20);
|
|
|
+ mainWindow.Get<Menu>(SearchCriteria.ByAutomationId("DebugMode")).Click();
|
|
|
+ Thread.Sleep(20);
|
|
|
+ mainWindow.Get<Menu>(SearchCriteria.ByAutomationId("DebugFour")).Click();
|
|
|
+ Thread.Sleep(2000);
|
|
|
+ Assert.AreEqual("Last Action: Line number 0 was drawn.", mainWindow.Get<TextBox>(SearchCriteria.ByAutomationId("LastActionBox")).Text.ToString());
|
|
|
+ Thread.Sleep(20);
|
|
|
+ mainWindow.Get<Menu>(SearchCriteria.ByAutomationId("EditMenuButton")).Click();
|
|
|
+ Thread.Sleep(20);
|
|
|
+ mainWindow.Get<Menu>(SearchCriteria.ByAutomationId("DebugMode")).Click();
|
|
|
+ Thread.Sleep(20);
|
|
|
+ mainWindow.Get<Menu>(SearchCriteria.ByAutomationId("DebugFour")).Click();
|
|
|
+ Thread.Sleep(2000);
|
|
|
+ Assert.AreEqual("Last Action: Line number 1 was drawn.", mainWindow.Get<TextBox>(SearchCriteria.ByAutomationId("LastActionBox")).Text.ToString());
|
|
|
+ Thread.Sleep(20);
|
|
|
+ mainWindow.Get<Button>(SearchCriteria.ByAutomationId("DeleteButton")).Click();
|
|
|
+ Thread.Sleep(20);
|
|
|
+ mainWindow.Get<Menu>(SearchCriteria.ByAutomationId("EditMenuButton")).Click();
|
|
|
+ Thread.Sleep(20);
|
|
|
+ mainWindow.Get<Menu>(SearchCriteria.ByAutomationId("DebugMode")).Click();
|
|
|
+ Thread.Sleep(20);
|
|
|
+ mainWindow.Get<Menu>(SearchCriteria.ByAutomationId("DebugFour")).Click();
|
|
|
+ Thread.Sleep(2000);
|
|
|
+ Assert.AreEqual("Last Action: Several Lines were deleted.", mainWindow.Get<TextBox>(SearchCriteria.ByAutomationId("LastActionBox")).Text.ToString());
|
|
|
+ Thread.Sleep(20);
|
|
|
+ mainWindow.Close();
|
|
|
+ }
|
|
|
+
|
|
|
+ [TestMethod]
|
|
|
+ [TestCategory("DebugInput")]
|
|
|
+ public void PointDrawTest()
|
|
|
{
|
|
|
Window mainWindow = setupapp();
|
|
|
Thread.Sleep(20);
|
|
@@ -434,7 +660,8 @@ namespace WhiteTests
|
|
|
}
|
|
|
|
|
|
[TestMethod]
|
|
|
- public void NewCanvasAfterDraw()
|
|
|
+ [TestCategory("DebugInput")]
|
|
|
+ public void NewCanvasAfterDrawTest()
|
|
|
{
|
|
|
Window mainWindow = setupapp();
|
|
|
Thread.Sleep(20);
|
|
@@ -479,7 +706,6 @@ namespace WhiteTests
|
|
|
}
|
|
|
|
|
|
[TestClass]
|
|
|
- //[DeploymentItem(@"WhiteTests\test_input_files\")]
|
|
|
public class FileImporterTests
|
|
|
{
|
|
|
/// <summary>
|
|
@@ -516,7 +742,7 @@ namespace WhiteTests
|
|
|
Regex rx = new Regex(@"^(.*\\SketchAssistant\\)");
|
|
|
Match match = rx.Match(TestContext.DeploymentDirectory);
|
|
|
String SketchAssistDir = match.Groups[1].Value;
|
|
|
- if(input_file_dir == null)
|
|
|
+ if (input_file_dir == null)
|
|
|
{
|
|
|
if (Directory.Exists(SketchAssistDir + @"\WhiteTests\test_input_files\"))
|
|
|
{
|
|
@@ -544,7 +770,7 @@ namespace WhiteTests
|
|
|
/// <param name="xCoordinates">an array containing the x coordinates of the points that will be created (length divisible by 3)</param>
|
|
|
/// <param name="yCoordinates">an array containing the y coordinates of the points that will be created (length divisible by 3)</param>
|
|
|
[DataTestMethod]
|
|
|
- [TestCategory("bla")]
|
|
|
+ [TestCategory("FileIO")]
|
|
|
[DataRow(new int[] { 54, 43, 57, 11, 145, 34, 113, 299, 0 }, new int[] { 33, 42, 140, 30, 30, 30, 32, 145, 2 })]
|
|
|
[DataRow(new int[] { 33, 42, 140, 30, 30, 30, 32, 145, 2 }, new int[] { 33, 42, 140, 30, 30, 30, 32, 145, 2 })]
|
|
|
[DataRow(new int[] { 33, 42, 140, 30, 30, 30, 32, 145, 2 }, new int[] { 54, 43, 57, 11, 145, 34, 113, 199, 0 })]
|
|
@@ -585,8 +811,8 @@ namespace WhiteTests
|
|
|
/// </summary>
|
|
|
/// <param name="file">the input file represented as an array of lines</param>
|
|
|
[DataTestMethod]
|
|
|
- [TestCategory("bla")]
|
|
|
- [DataRow(new String[] {})]
|
|
|
+ [TestCategory("FileIO")]
|
|
|
+ [DataRow(new String[] { })]
|
|
|
[DataRow(new String[] { "begindrawing", "300x300", "line", "50;50", "100;50", "endline", "enddrawing" })]
|
|
|
[DataRow(new String[] { "drawing", "300;300", "line", "50;50", "100;50", "endline", "enddrawing" })]
|
|
|
[DataRow(new String[] { "drawing", "30.5x300", "line", "50;50", "100;50", "endline", "enddrawing" })]
|
|
@@ -611,10 +837,11 @@ namespace WhiteTests
|
|
|
//try to initialize the left image with an invalid isad drawing
|
|
|
Tuple<int, int, List<InternalLine>> values1 = uut.ParseISADInputForTesting(file);
|
|
|
}
|
|
|
- catch (FileImporterException)
|
|
|
+ catch (FileImporterException e)
|
|
|
{
|
|
|
//save the occurence of an exception
|
|
|
correctExceptionThrown = true;
|
|
|
+ System.Diagnostics.Debug.WriteLine(e.ToString());
|
|
|
}
|
|
|
catch (Exception)
|
|
|
{
|
|
@@ -633,7 +860,7 @@ namespace WhiteTests
|
|
|
{
|
|
|
FileImporter uut = new FileImporter();
|
|
|
string[] files = Directory.GetFiles(getSketchAssistantDirectory() + @"\whitelisted", "*.svg", SearchOption.AllDirectories);
|
|
|
-
|
|
|
+
|
|
|
Assert.IsTrue(files.Length > 0);
|
|
|
|
|
|
foreach (string s in files) //parse each of the whitelisted files
|
|
@@ -670,8 +897,9 @@ namespace WhiteTests
|
|
|
{
|
|
|
uut.ParseSVGInputFile(s, 10000, 10000);
|
|
|
}
|
|
|
- catch (FileImporterException)
|
|
|
+ catch (FileImporterException e)
|
|
|
{
|
|
|
+ System.Diagnostics.Debug.WriteLine(e.ToString());
|
|
|
correctExceptionThrown = true;
|
|
|
}
|
|
|
catch (Exception)
|
|
@@ -689,26 +917,28 @@ namespace WhiteTests
|
|
|
/// The debug data element used to generate random lines.
|
|
|
/// </summary>
|
|
|
private DebugData DebugData = new DebugData();
|
|
|
-
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// Generates random lines and tests how similar they are.
|
|
|
/// To test the similarity score always stays between 0 and 1.
|
|
|
/// </summary>
|
|
|
[TestMethod]
|
|
|
+ [TestCategory("UnitTest")]
|
|
|
public void StaysWithinParameters()
|
|
|
{
|
|
|
- Parallel.For(1,100,
|
|
|
+ Parallel.For(1, 100,
|
|
|
i =>
|
|
|
{
|
|
|
- InternalLine l0 = DebugData.GetRandomLine(1, (uint) i);
|
|
|
+ InternalLine l0 = DebugData.GetRandomLine(1, (uint)i);
|
|
|
InternalLine l1 = DebugData.GetRandomLine(1, (uint)i);
|
|
|
var sim = GeometryCalculator.CalculateSimilarity(l0, l1);
|
|
|
Assert.IsTrue((sim >= 0));
|
|
|
Assert.IsTrue((sim <= 1));
|
|
|
- } );
|
|
|
+ });
|
|
|
}
|
|
|
|
|
|
[TestMethod]
|
|
|
+ [TestCategory("UnitTest")]
|
|
|
public void CorrectSimilarity()
|
|
|
{
|
|
|
Parallel.ForEach(DebugData.GetSimilarityTestData(),
|
|
@@ -720,6 +950,63 @@ namespace WhiteTests
|
|
|
Assert.AreEqual(tup.Item3, sim, 0.00000001);
|
|
|
});
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ [TestClass]
|
|
|
+ public class InternalLineUnitTests
|
|
|
+ {
|
|
|
+ /// <summary>
|
|
|
+ /// The debug data element used to generate random lines.
|
|
|
+ /// </summary>
|
|
|
+ private DebugData DebugData = new DebugData();
|
|
|
+
|
|
|
+ [TestMethod]
|
|
|
+ [TestCategory("UnitTest")]
|
|
|
+ public void MakePermanentTest()
|
|
|
+ {
|
|
|
+
|
|
|
+ List<Point> points = new List<Point>();
|
|
|
+ points.AddRange(DebugData.debugPoints4);
|
|
|
+ InternalLine uut = new InternalLine(points);
|
|
|
+ Assert.AreEqual(false, uut.isPoint);
|
|
|
+ uut.MakePermanent(5);
|
|
|
+ Assert.AreEqual(true, uut.isPoint);
|
|
|
+ Assert.AreEqual(5, uut.GetID());
|
|
|
+ Assert.AreEqual(0, uut.GetLength());
|
|
|
+ }
|
|
|
+
|
|
|
+ [DataTestMethod]
|
|
|
+ [TestCategory("UnitTest")]
|
|
|
+ [DataRow(new int[] { 1 ,1, 3, 3 }, new int[] { 1, 1, 2, 2, 3, 3 }, false, 2.828427125)]
|
|
|
+ [DataRow(new int[] { 1, 1, 3, 3 }, new int[] { 1, 1, 2, 2, 3, 3 }, true, 2.828427125)]
|
|
|
+ [DataRow(new int[] { 1, 1, 1, 4 ,3, 4 }, new int[] { 1, 1, 1, 2, 1, 3, 1, 4, 2, 4, 3, 4 }, false, 5)]
|
|
|
+ [DataRow(new int[] { 1, 1, 1, 4, 3, 4 }, new int[] { 1, 1, 1, 2, 1, 3, 1, 4, 2, 4, 3, 4 }, true, 5)]
|
|
|
+ public void PermanentLineTest(int[] inPoints, int[] outPoints, bool isTemp, double len)
|
|
|
+ {
|
|
|
+ List<Point> inLine = new List<Point>(); List<Point> outLine = new List<Point>();
|
|
|
+ for (int i = 0; i < inPoints.Length;i += 2) inLine.Add(new Point(inPoints[i], inPoints[i + 1]));
|
|
|
+ for (int i = 0; i < outPoints.Length; i += 2) outLine.Add(new Point(outPoints[i], outPoints[i + 1]));
|
|
|
+ InternalLine uut;
|
|
|
+ if (isTemp)
|
|
|
+ {
|
|
|
+ uut = new InternalLine(inLine);
|
|
|
+ var zip = inLine.Zip(uut.GetPoints(), (a,b) => new Tuple<Point, Point>(a, b));
|
|
|
+ foreach (Tuple < Point, Point> tup in zip)
|
|
|
+ {
|
|
|
+ Assert.AreEqual(tup.Item1, tup.Item2);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ uut = new InternalLine(inLine,0);
|
|
|
+ var zip = outLine.Zip(uut.GetPoints(), (a, b) => new Tuple<Point, Point>(a, b));
|
|
|
+ foreach (Tuple<Point, Point> tup in zip)
|
|
|
+ {
|
|
|
+ Assert.AreEqual(tup.Item1, tup.Item2);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ Assert.AreEqual(len, uut.GetLength(), 0.000001);
|
|
|
+ }
|
|
|
}
|
|
|
}
|