Added documentation and made some tests work better

This commit is contained in:
Lukasz Baldyga committed 2020-11-03 19:11:52 +00:00
1 parent af5862ef8a
commit 0d4b9372d0
2 files changed
+284 -27

No files matched your search

@@ -0,0 +1,127 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>Advanced Software Engineering Tests</name>
</assembly>
<members>
<member name="T:Advanced_Software_Engineering_Tests.CommandTester">
<summary>
The CommandTester class tests the commands possible, mostly by getting a verb and checking it's description..
</summary>
</member>
<member name="M:Advanced_Software_Engineering_Tests.CommandTester.VerbFactoryTester_Automatic1">
<summary>
Automatically tests:
- moveto
- drawto
- line
- shape
Current todo list:
- square
- rectangle
- circle
- triangle
- dot
- clear
- pen
- fill
</summary>
</member>
<member name="M:Advanced_Software_Engineering_Tests.CommandTester.MoveToTester_Manual1">
<summary>
tests the "move" command. See <see cref="T:Advanced_Software_Engineering.Verbs.DrawingVerbs.MoveTo"/>.
</summary>
</member>
<member name="M:Advanced_Software_Engineering_Tests.CommandTester.MoveToTester_Manual2">
<summary>
tests the "moveto" command. See <see cref="T:Advanced_Software_Engineering.Verbs.DrawingVerbs.MoveTo"/>.
</summary>
</member>
<member name="M:Advanced_Software_Engineering_Tests.CommandTester.DrawToTester_Manual1">
<summary>
tests the "drawto" command. See <see cref="T:Advanced_Software_Engineering.Verbs.DrawingVerbs.DrawTo"/>.
</summary>
</member>
<member name="M:Advanced_Software_Engineering_Tests.CommandTester.DrawToTester_Manual2">
<summary>
tests the "line" command. See <see cref="T:Advanced_Software_Engineering.Verbs.DrawingVerbs.DrawTo"/>.
</summary>
</member>
<member name="M:Advanced_Software_Engineering_Tests.CommandTester.DrawToTester_Manual3">
<summary>
tests the "lineto" command. See <see cref="T:Advanced_Software_Engineering.Verbs.DrawingVerbs.DrawTo"/>.
</summary>
</member>
<member name="M:Advanced_Software_Engineering_Tests.CommandTester.RegularPolygonTester_Manual1">
<summary>
tests the "regularpolygon" command. See <see cref="T:Advanced_Software_Engineering.Verbs.DrawingVerbs.RegularPolygon"/>.
</summary>
</member>
<member name="M:Advanced_Software_Engineering_Tests.CommandTester.RegularPolygonTester_Manual2">
<summary>
tests the "rp" command. See <see cref="T:Advanced_Software_Engineering.Verbs.DrawingVerbs.RegularPolygon"/>.
</summary>
</member>
<member name="M:Advanced_Software_Engineering_Tests.CommandTester.RegularPolygonTester_Manual3">
<summary>
tests the "regularpolygon" command. See <see cref="T:Advanced_Software_Engineering.Verbs.DrawingVerbs.RegularPolygon"/>.
</summary>
</member>
<member name="M:Advanced_Software_Engineering_Tests.CommandTester.RegularPolygonTester_Manual4">
<summary>
tests the "rp" command. See <see cref="T:Advanced_Software_Engineering.Verbs.DrawingVerbs.RegularPolygon"/>.
</summary>
</member>
<member name="M:Advanced_Software_Engineering_Tests.CommandTester.SquareTester_Manual1">
<summary>
tests the "square" command. See <see cref="T:Advanced_Software_Engineering.Verbs.DrawingVerbs.Square"/>.
</summary>
</member>
<member name="M:Advanced_Software_Engineering_Tests.CommandTester.SquareTester_Manual2">
<summary>
tests the "square" command. See <see cref="T:Advanced_Software_Engineering.Verbs.DrawingVerbs.Square"/>.
</summary>
</member>
<member name="M:Advanced_Software_Engineering_Tests.CommandTester.QuadrilateralTester_Manual1">
<summary>
tests the "quadrilateral" command using <see cref="T:Advanced_Software_Engineering.Verbs.DrawingVerbs.DrawLines"/>. See <see cref="T:Advanced_Software_Engineering.Verbs.DrawingVerbs.Quadrilateral"/>.
</summary>
</member>
<member name="M:Advanced_Software_Engineering_Tests.CommandTester.TriangleTester_Manual1">
<summary>
tests the "triangle" command. See <see cref="T:Advanced_Software_Engineering.Verbs.DrawingVerbs.Triangle"/>.
</summary>
</member>
<member name="M:Advanced_Software_Engineering_Tests.CommandTester.TriangleTester_Manual2">
<summary>
tests the "triangle" command. See <see cref="T:Advanced_Software_Engineering.Verbs.DrawingVerbs.Triangle"/>.
</summary>
</member>
<member name="M:Advanced_Software_Engineering_Tests.CommandTester.DotTester_Manual1">
<summary>
test the "dot" command. See <see cref="T:Advanced_Software_Engineering.Verbs.DrawingVerbs.Dot"/>.
</summary>
</member>
<member name="M:Advanced_Software_Engineering_Tests.CommandTester.ClearTester_Manual1">
<summary>
tests the
</summary>
</member>
<member name="T:Advanced_Software_Engineering_Tests.Properties.Resources">
<summary>
A strongly-typed resource class, for looking up localized strings, etc.
</summary>
</member>
<member name="P:Advanced_Software_Engineering_Tests.Properties.Resources.ResourceManager">
<summary>
Returns the cached ResourceManager instance used by this class.
</summary>
</member>
<member name="P:Advanced_Software_Engineering_Tests.Properties.Resources.Culture">
<summary>
Overrides the current thread's CurrentUICulture property for all
resource lookups using this strongly typed resource class.
</summary>
</member>
</members>
</doc>
@@ -1,14 +1,35 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Drawing;
using System.Text; using System.Text;
using Advanced_Software_Engineering; using Advanced_Software_Engineering;
using Advanced_Software_Engineering.Verbs.DrawingVerbs;
using Microsoft.VisualStudio.TestTools.UnitTesting; using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace Advanced_Software_Engineering_Tests { namespace Advanced_Software_Engineering_Tests {
/// <summary>
/// The CommandTester class tests the commands possible, mostly by getting a verb and checking it's description..
/// </summary>
[TestClass] [TestClass]
public class CommandTester { public class CommandTester {
Random rand = new Random(); Random rand = new Random();
/// <summary>
/// Automatically tests:
/// - moveto
/// - drawto
/// - line
/// - rp
/// Current todo list:
/// - square
/// - rectangle
/// - circle
/// - triangle
/// - dot
/// - clear
/// - pen
/// - fill
/// </summary>
[TestMethod] [TestMethod]
public void VerbFactoryTester_Automatic1() { public void VerbFactoryTester_Automatic1() {
Dictionary<string, int[]> commandParamaterNumber = new Dictionary<string, int[]> Dictionary<string, int[]> commandParamaterNumber = new Dictionary<string, int[]>
@@ -17,16 +38,16 @@ namespace Advanced_Software_Engineering_Tests {
{"drawto", new int[] { 2 } }, {"drawto", new int[] { 2 } },
{"line", new int[] { 2 } }, {"line", new int[] { 2 } },
{"lineto", new int[] { 2 } }, {"lineto", new int[] { 2 } },
{"shape", new int[] { 2, 3 } }, {"rp", new int[] { 2, 3 } },
//todo:
{"square", new int[] { 1, 2, 8 } }, {"square", new int[] { 1, 2, 8 } },
{"rectangle", new int[] { 1, 2, 6 } }, {"rectangle", new int[] { 1, 2, 6 } },
{"circle", new int[] { 1 } }, {"circle", new int[] { 1 } },
{"triangle", new int[] { 1, 2 } }, {"triangle", new int[] { 1, 2 } },
{"dot", new int[] { 0 } }, {"dot", new int[] { 0 } },
{"clear", new int[] { 0 } }, {"clear", new int[] { 0 } },
{"pen", new int[] {1, 3 } }, {"pen", new int[] { 1, 3 } },
{"fill", new int[] {1, 3 } } {"fill", new int[] { 1, 3 } }
}; };
foreach (string command in commandParamaterNumber.Keys) { foreach (string command in commandParamaterNumber.Keys) {
@@ -66,6 +87,9 @@ namespace Advanced_Software_Engineering_Tests {
} }
/// <summary>
/// tests the "move" command. See <see cref="MoveTo"/>.
/// </summary>
[TestMethod] [TestMethod]
public void MoveToTester_Manual1() { public void MoveToTester_Manual1() {
string input = "move 200, 300"; string input = "move 200, 300";
@@ -78,6 +102,9 @@ namespace Advanced_Software_Engineering_Tests {
Assert.AreEqual(correctDesc, verbDesc); Assert.AreEqual(correctDesc, verbDesc);
} }
/// <summary>
/// tests the "moveto" command. See <see cref="MoveTo"/>.
/// </summary>
[TestMethod] [TestMethod]
public void MoveToTester_Manual2() { public void MoveToTester_Manual2() {
string input = "moveto 200, 300"; string input = "moveto 200, 300";
@@ -90,6 +117,9 @@ namespace Advanced_Software_Engineering_Tests {
Assert.AreEqual(correctDesc, verbDesc); Assert.AreEqual(correctDesc, verbDesc);
} }
/// <summary>
/// tests the "drawto" command. See <see cref="DrawTo"/>.
/// </summary>
[TestMethod] [TestMethod]
public void DrawToTester_Manual1() { public void DrawToTester_Manual1() {
string input = "drawto 200, 300"; string input = "drawto 200, 300";
@@ -100,6 +130,9 @@ namespace Advanced_Software_Engineering_Tests {
Assert.AreEqual(correctDesc, verbDesc); Assert.AreEqual(correctDesc, verbDesc);
} }
/// <summary>
/// tests the "line" command. See <see cref="DrawTo"/>.
/// </summary>
[TestMethod] [TestMethod]
public void DrawToTester_Manual2() { public void DrawToTester_Manual2() {
string input = "line 200, 300"; string input = "line 200, 300";
@@ -110,6 +143,9 @@ namespace Advanced_Software_Engineering_Tests {
Assert.AreEqual(correctDesc, verbDesc); Assert.AreEqual(correctDesc, verbDesc);
} }
/// <summary>
/// tests the "lineto" command. See <see cref="DrawTo"/>.
/// </summary>
[TestMethod] [TestMethod]
public void DrawToTester_Manual3() { public void DrawToTester_Manual3() {
string input = "lineto 200, 300"; string input = "lineto 200, 300";
@@ -120,6 +156,9 @@ namespace Advanced_Software_Engineering_Tests {
Assert.AreEqual(correctDesc, verbDesc); Assert.AreEqual(correctDesc, verbDesc);
} }
/// <summary>
/// tests the "regularpolygon" command. See <see cref="RegularPolygon"/>.
/// </summary>
[TestMethod] [TestMethod]
public void RegularPolygonTester_Manual1() { public void RegularPolygonTester_Manual1() {
string input = "regularpolygon 3, 50"; string input = "regularpolygon 3, 50";
@@ -136,6 +175,9 @@ namespace Advanced_Software_Engineering_Tests {
Assert.AreEqual(correctDesc, verbDesc); Assert.AreEqual(correctDesc, verbDesc);
} }
/// <summary>
/// tests the "rp" command. See <see cref="RegularPolygon"/>.
/// </summary>
[TestMethod] [TestMethod]
public void RegularPolygonTester_Manual2() { public void RegularPolygonTester_Manual2() {
string input = "rp 3, 50"; string input = "rp 3, 50";
@@ -152,6 +194,9 @@ namespace Advanced_Software_Engineering_Tests {
Assert.AreEqual(correctDesc, verbDesc); Assert.AreEqual(correctDesc, verbDesc);
} }
/// <summary>
/// tests the "regularpolygon" command. See <see cref="RegularPolygon"/>.
/// </summary>
[TestMethod] [TestMethod]
public void RegularPolygonTester_Manual3() { public void RegularPolygonTester_Manual3() {
string input = "regularpolygon 3, 50, 25"; string input = "regularpolygon 3, 50, 25";
@@ -168,6 +213,9 @@ namespace Advanced_Software_Engineering_Tests {
Assert.AreEqual(correctDesc, verbDesc); Assert.AreEqual(correctDesc, verbDesc);
} }
/// <summary>
/// tests the "rp" command. See <see cref="RegularPolygon"/>.
/// </summary>
[TestMethod] [TestMethod]
public void RegularPolygonTester_Manual4() { public void RegularPolygonTester_Manual4() {
string input = "rp 3, 50, 25"; string input = "rp 3, 50, 25";
@@ -184,6 +232,9 @@ namespace Advanced_Software_Engineering_Tests {
Assert.AreEqual(correctDesc, verbDesc); Assert.AreEqual(correctDesc, verbDesc);
} }
/// <summary>
/// tests the "square" command. See <see cref="Square"/>.
/// </summary>
[TestMethod] [TestMethod]
public void SquareTester_Manual1() { public void SquareTester_Manual1() {
string input = "square 500"; string input = "square 500";
@@ -200,6 +251,9 @@ namespace Advanced_Software_Engineering_Tests {
Assert.AreEqual(correctDesc, verbDesc); Assert.AreEqual(correctDesc, verbDesc);
} }
/// <summary>
/// tests the "square" command. See <see cref="Square"/>.
/// </summary>
[TestMethod] [TestMethod]
public void SquareTester_Manual2() { public void SquareTester_Manual2() {
string input = "square 500, 45"; string input = "square 500, 45";
@@ -216,6 +270,46 @@ namespace Advanced_Software_Engineering_Tests {
Assert.AreEqual(correctDesc, verbDesc); Assert.AreEqual(correctDesc, verbDesc);
} }
/// <summary>
/// tests the "quadrilateral" command using <see cref="DrawLines"/>. See <see cref="Quadrilateral"/>.
/// </summary>
[TestMethod]
public void QuadrilateralTester_Manual1() {
string input = "quadrilateral 1, 2, 3, 4, 5, 6, 7, 8";
Point[] points = {
new Point(1, 2),
new Point(3, 4),
new Point(5, 6),
new Point(7, 8)
};
Verb verb = VerbFactory.MakeVerb(null, input);
string verbDesc = verb.GetDescription();
string correctDesc = new DrawLines(null, points).GetDescription();
Assert.AreEqual(verbDesc, correctDesc);
}
/// <summary>
/// Tests the "circle" command. See <see cref="Circle"/>.
/// </summary>
[TestMethod]
public void CircleTester_Manual1() {
string input = "circle 100";
Verb verb = VerbFactory.MakeVerb(null, input);
string verbDesc = verb.GetDescription();
string correctDesc = "Draws a circle radius " + 100d.ToString() + ", with origin of the pen";
Assert.AreEqual(correctDesc, verbDesc);
}
/// <summary>
/// tests the "triangle" command. See <see cref="Triangle"/>.
/// </summary>
[TestMethod] [TestMethod]
public void TriangleTester_Manual1() { public void TriangleTester_Manual1() {
string input = "triangle 500"; string input = "triangle 500";
@@ -232,6 +326,9 @@ namespace Advanced_Software_Engineering_Tests {
Assert.AreEqual(correctDesc, verbDesc); Assert.AreEqual(correctDesc, verbDesc);
} }
/// <summary>
/// tests the "triangle" command. See <see cref="Triangle"/>.
/// </summary>
[TestMethod] [TestMethod]
public void TriangleTester_Manual2() { public void TriangleTester_Manual2() {
string input = "triangle 500, 45"; string input = "triangle 500, 45";
@@ -248,90 +345,123 @@ namespace Advanced_Software_Engineering_Tests {
Assert.AreEqual(correctDesc, verbDesc); Assert.AreEqual(correctDesc, verbDesc);
} }
/// <summary>
/// test the "dot" command. See <see cref="Dot"/>.
/// </summary>
[TestMethod] [TestMethod]
public void DotTester_Manual1() { public void DotTester_Manual1() {
string input = "dot"; string input = "dot";
Verb verb = VerbFactory.MakeVerb(null, input); Verb verb = VerbFactory.MakeVerb(null, input);
string verbDesc = verb.GetDescription(); string verbDesc = verb.GetDescription();
string correctDesc = "Dots the pen at pen position"; //undecided string correctDesc = "Places a dot where the pen currently is";
Assert.AreEqual(correctDesc, verbDesc); Assert.AreEqual(correctDesc, verbDesc);
} }
/// <summary>
/// tests the "clear" command. See <see cref="Circle"/>.
/// </summary>
[TestMethod] [TestMethod]
public void ClearTester_Manual1() { public void ClearTester_Manual1() {
string input = ""; string input = "clear";
string[] inputParameters = { };
Verb verb = VerbFactory.MakeVerb(null, input); Verb verb = VerbFactory.MakeVerb(null, input);
string verbDesc = verb.GetDescription(); string verbDesc = verb.GetDescription();
string correctDesc = null; //undecided string correctDesc = "Clears the canvas";
Assert.AreEqual(correctDesc, verbDesc); Assert.AreEqual(correctDesc, verbDesc);
} }
/// <summary>
/// Tests the "reset" command. See <see cref="ResetPen"/>
/// </summary>
[TestMethod] [TestMethod]
public void ResetTester_Manual1() { public void ResetPenTester_Manual1() {
string input = ""; string input = "reset";
string[] inputParameters = { };
Verb verb = VerbFactory.MakeVerb(null, input); Verb verb = VerbFactory.MakeVerb(null, input);
string verbDesc = verb.GetDescription(); string verbDesc = verb.GetDescription();
string correctDesc = null; //undecided string correctDesc = "Moves pen to the start (0, 0)";
Assert.AreEqual(correctDesc, verbDesc); Assert.AreEqual(correctDesc, verbDesc);
} }
/// <summary>
/// Tests the "resetpen" command. See <see cref="ResetPen"/>.
/// </summary>
[TestMethod]
public void ResetPenTester_Manual2() {
string input = "resetpen";
Verb verb = VerbFactory.MakeVerb(null, input);
string verbDesc = verb.GetDescription();
string correctDesc = "Moves pen to the start (0, 0)";
Assert.AreEqual(correctDesc, verbDesc);
}
/// <summary>
/// Tests the command "pen". See <see cref="PenColor"/>
/// </summary>
[TestMethod] [TestMethod]
public void PenTester_Manual1() { public void PenTester_Manual1() {
string input = ""; string input = "pen red";
string[] inputParameters = { };
Verb verb = VerbFactory.MakeVerb(null, input); Verb verb = VerbFactory.MakeVerb(null, input);
string verbDesc = verb.GetDescription(); string verbDesc = verb.GetDescription();
string correctDesc = null; //undecided string correctDesc = "Set pen color to: red";
Assert.AreEqual(correctDesc, verbDesc); Assert.AreEqual(correctDesc, verbDesc);
} }
/// <summary>
/// Tests the command "fill". See <see cref="FillColor"/>.
/// </summary>
[TestMethod] [TestMethod]
public void FillTester_Manual1() { public void FillTester_Manual1() {
string input = ""; string input = "fill pink";
string[] inputParameters = { };
Verb verb = VerbFactory.MakeVerb(null, input); Verb verb = VerbFactory.MakeVerb(null, input);
string verbDesc = verb.GetDescription(); string verbDesc = verb.GetDescription();
string correctDesc = null; //undecided string correctDesc = "Set fill color to: pink";
Assert.AreEqual(correctDesc, verbDesc); Assert.AreEqual(correctDesc, verbDesc);
} }
/// <summary>
/// Tests the "if" command. It hasn't been implemented yet.
/// </summary>
[TestMethod] [TestMethod]
public void IfTester_Manual1() { public void IfTester_Manual1() {
string input = ""; string input = "if i == 10";
string[] inputParameters = { };
Verb verb = VerbFactory.MakeVerb(null, input); Verb verb = VerbFactory.MakeVerb(null, input);
string verbDesc = verb.GetDescription(); string verbDesc = verb.GetDescription();
string correctDesc = null; //undecided string correctDesc = "Tests if variable 'i' is equal to 10";
Assert.AreEqual(correctDesc, verbDesc); Assert.AreEqual(correctDesc, verbDesc);
} }
/// <summary>
/// Tests the "def" command. It hasn't been implemented yet.
/// </summary>
[TestMethod] [TestMethod]
public void MethodTester_Manual1() { public void MethodTester_Manual1() {
string input = ""; string input = "def duck, int i";
string[] inputParameters = { };
Verb verb = VerbFactory.MakeVerb(null, input); Verb verb = VerbFactory.MakeVerb(null, input);
string verbDesc = verb.GetDescription(); string verbDesc = verb.GetDescription();
string correctDesc = "Create a new method"; string correctDesc = "Create a new method called 'duck' with input 'int i'. The method: ";
Assert.AreEqual(correctDesc, verbDesc); Assert.AreEqual(correctDesc, verbDesc);
} }
/// <summary>
/// Tests the "int" declaration and assignment. It hasn't been implemented yet.
/// </summary>
[TestMethod] [TestMethod]
public void ValueTester_Manual1() { public void ValueTester_Manual1() {
string input = ""; string input = "int i = 10";
string[] inputParameters = { };
Verb verb = VerbFactory.MakeVerb(null, input); Verb verb = VerbFactory.MakeVerb(null, input);
string verbDesc = verb.GetDescription(); string verbDesc = verb.GetDescription();
string correctDesc = null; //undecided string correctDesc = "Declares and sets integer 'i' to '10'";
Assert.AreEqual(correctDesc, verbDesc); Assert.AreEqual(correctDesc, verbDesc);
} }