/// <summary> /// Generates a Triangle from a valid TriangleName or valid set of Coordinates /// </summary> /// <param name="input"></param> public Triangle(string input) { if (input.Length < 4) { this.TriangleName = input; this.Coordinates = TriangleFunctions.GenerateCoordinates(input.ToCharArray()); } else { this.Coordinates = input; this.TriangleName = TriangleFunctions.GenerateTriangleName(input); } }
public void GenerateTriangleName() { string[] validTriangleNamesCapsOnly = new string[] { "A1", "A2", "A3", "A4", "A5", "A6", "A7", "A8", "A9", "A10", "A11", "A12", "B1", "B2", "B3", "B4", "B5", "B6", "B7", "B8", "B9", "B10", "B11", "B12", "C1", "C2", "C3", "C4", "C5", "C6", "C7", "C8", "C9", "C10", "C11", "C12", "D1", "D2", "D3", "D4", "D5", "D6", "D7", "D8", "D9", "D10", "D11", "D12", "E1", "E2", "E3", "E4", "E5", "E6", "E7", "E8", "E9", "E10", "E11", "E12", "F1", "F2", "F3", "F4", "F5", "F6", "F7", "F8", "F9", "F10", "F11", "F12" }; string[] validCoordinates = new string[] { "(0,10),(0,0),(10,10)", // A1 "(10,0),(0,0),(10,10)", // A2 "(10,10),(10,0),(20,10)", // A3 "(20,0),(10,0),(20,10)", // A4 "(20,10),(20,0),(30,10)", // A5 "(30,0),(20,0),(30,10)", // A6 "(30,10),(30,0),(40,10)", // A7 "(40,0),(30,0),(40,10)", // A8 "(40,10),(40,0),(50,10)", // A9 "(50,0),(40,0),(50,10)", // A10 "(50,10),(50,0),(60,10)", // A11 "(60,0),(50,0),(60,10)", // A12 "(0,20),(0,10),(10,20)", // B1 "(10,10),(0,10),(10,20)", // B2 "(10,20),(10,10),(20,20)", // B3 "(20,10),(10,10),(20,20)", // B4 "(20,20),(20,10),(30,20)", // B5 "(30,10),(20,10),(30,20)", // B6 "(30,20),(30,10),(40,20)", // B7 "(40,10),(30,10),(40,20)", // B8 "(40,20),(40,10),(50,20)", // B9 "(50,10),(40,10),(50,20)", // B10 "(50,20),(50,10),(60,20)", // B11 "(60,10),(50,10),(60,20)", // B12 "(0,30),(0,20),(10,30)", // C1 "(10,20),(0,20),(10,30)", // C2 "(10,30),(10,20),(20,30)", // C3 "(20,20),(10,20),(20,30)", // C4 "(20,30),(20,20),(30,30)", // C5 "(30,20),(20,20),(30,30)", // C6 "(30,30),(30,20),(40,30)", // C7 "(40,20),(30,20),(40,30)", // C8 "(40,30),(40,20),(50,30)", // C9 "(50,20),(40,20),(50,30)", // C10 "(50,30),(50,20),(60,30)", // C11 "(60,20),(50,20),(60,30)", // C12 "(0,40),(0,30),(10,40)", // D1 "(10,30),(0,30),(10,40)", // D2 "(10,40),(10,30),(20,40)", // D3 "(20,30),(10,30),(20,40)", // D4 "(20,40),(20,30),(30,40)", // D5 "(30,30),(20,30),(30,40)", // D6 "(30,40),(30,30),(40,40)", // D7 "(40,30),(30,30),(40,40)", // D8 "(40,40),(40,30),(50,40)", // D9 "(50,30),(40,30),(50,40)", // D10 "(50,40),(50,30),(60,40)", // D11 "(60,30),(50,30),(60,40)", // D12 "(0,50),(0,40),(10,50)", // E1 "(10,40),(0,40),(10,50)", // E2 "(10,50),(10,40),(20,50)", // E3 "(20,40),(10,40),(20,50)", // E4 "(20,50),(20,40),(30,50)", // E5 "(30,40),(20,40),(30,50)", // E6 "(30,50),(30,40),(40,50)", // E7 "(40,40),(30,40),(40,50)", // E8 "(40,50),(40,40),(50,50)", // E9 "(50,40),(40,40),(50,50)", // E10 "(50,50),(50,40),(60,50)", // E11 "(60,40),(50,40),(60,50)", // E12 "(0,60),(0,50),(10,60)", // F1 "(10,50),(0,50),(10,60)", // F2 "(10,60),(10,50),(20,60)", // F3 "(20,50),(10,50),(20,60)", // F4 "(20,60),(20,50),(30,60)", // F5 "(30,50),(20,50),(30,60)", // F6 "(30,60),(30,50),(40,60)", // F7 "(40,50),(30,50),(40,60)", // F8 "(40,60),(40,50),(50,60)", // F9 "(50,50),(40,50),(50,60)", // F10 "(50,60),(50,50),(60,60)", // F11 "(60,50),(50,50),(60,60)" }; // F12 for (int i = 0; i < (validTriangleNamesCapsOnly.Length - 1); i++) { Assert.AreEqual(TriangleFunctions.GenerateTriangleName(validCoordinates[i]), validTriangleNamesCapsOnly[i]); } }