public void MultiplyTest() { math_pack cs = new math_pack(); Assert.AreEqual(0, cs.fce_krat(0, 1), 0, "0 * 1 != 0"); Assert.AreEqual(10, cs.fce_krat(2, 5), 0, "2 * 5 != 10"); Assert.AreEqual(10, cs.fce_krat(1, 10), 0, "1 * 10 != 10"); Assert.AreEqual(-15, cs.fce_krat(-3, 5), 0, "-3 * 5 != -15"); Assert.AreEqual(-15, cs.fce_krat(3, -5), 0, "3 * (-5) != -15"); Assert.AreEqual(42, cs.fce_krat(-2, -21), 0, "-2 * (-21) != 42"); Assert.AreEqual(1200000, cs.fce_krat(6, 200000), 0, "6 * 200 000 != 1 200 000"); Assert.AreEqual(12.6, cs.fce_krat(3, 4.2), EPS, "3 * 4.2 != 12.6"); Assert.AreEqual(-12.6, cs.fce_krat(-3, 4.2), EPS, "-3 * 4.2 != -12.6"); Assert.IsTrue(Double.IsInfinity(cs.fce_krat(Double.MaxValue, 2))); }
/** * \brief Výpočet výsledku * \param input Kontrolní string, kde je celý příklad */ private void InputProcess(string input) { if (string.IsNullOrEmpty(input)) { textInput.Text = "0"; } else { int index = 0; try { #region výpočet while (ExampleList.Count > 1) //výpočet celého příkladu { #if DEBUG Console.WriteLine("//-------------------------"); Console.ForegroundColor = ConsoleColor.Blue; Console.WriteLine("ExampleList.Count = {0}", ExampleList.Count); Console.ForegroundColor = ConsoleColor.Cyan; for (int i = 0; i < ExampleList.Count; i++) { Console.WriteLine("\tExampleList[{0}]\t=\t{1}", i, ExampleList[i]); } Console.ResetColor(); Console.WriteLine("//-------------------------"); #endif //prioritník if (ExampleList.Contains("!")) //pokud stále existuje { index = ExampleList.IndexOf("!"); //nalezení indexu ExampleList[index - 1] = M.fce_fakt(double.Parse(ExampleList[index - 1])).ToString(); //výpočet ExampleList.RemoveAt(index); //smazaní nadbytečného } else if (ExampleList.Contains("√")) //jinak pokud stále existuje { index = ExampleList.IndexOf("√"); //nalezení indexu //if (int.Parse(ExampleList[index - 1]) > 15) throw new ArgumentOutOfRangeException(); ExampleList[index] = M.fce_odmocnina(double.Parse(ExampleList[index + 1]), int.Parse(ExampleList[index - 1]), iter).ToString(); //výpočet ExampleList.RemoveAt(index + 1); //smazání nadbytečného ExampleList.RemoveAt(index - 1); //smazaní nadbytečného } else if (ExampleList.Contains("^")) //pokud stále existuje { index = ExampleList.IndexOf("^"); //nalezení indexu ExampleList[index] = M.fce_mocnina(double.Parse(ExampleList[index - 1]), int.Parse(ExampleList[index + 1])).ToString(); //výpočet ExampleList.RemoveAt(index + 1); //smazání nadbytečného ExampleList.RemoveAt(index - 1); //smazaní nadbytečného } else if (ExampleList.Contains("÷")) //pokud stále existuje { index = ExampleList.IndexOf("÷"); //nalezení indexu ExampleList[index] = M.fce_deleno(double.Parse(ExampleList[index - 1]), double.Parse(ExampleList[index + 1])).ToString(); //výpočet ExampleList.RemoveAt(index + 1); //smazání nadbytečného ExampleList.RemoveAt(index - 1); //smazaní nadbytečného } else if (ExampleList.Contains("×")) //pokud stále existuje { index = ExampleList.IndexOf("×"); //nalezení indexu ExampleList[index] = M.fce_krat(double.Parse(ExampleList[index - 1]), double.Parse(ExampleList[index + 1])).ToString(); //výpočet ExampleList.RemoveAt(index + 1); //smazaní nadbytečného ExampleList.RemoveAt(index - 1); //smazání nadbytečného } else if (ExampleList.Contains("-")) //pokud stále existuje { index = ExampleList.IndexOf("-"); //nalezení indexu ExampleList[index] = M.fce_minus(double.Parse(ExampleList[index - 1]), double.Parse(ExampleList[index + 1])).ToString(); //výpočet ExampleList.RemoveAt(index + 1); //smazaní nadbytečného ExampleList.RemoveAt(index - 1); //smazání nadbytečného } else if (ExampleList.Contains("+")) //pokud stále existuje { index = ExampleList.IndexOf("+"); //nalezení indexu ExampleList[index] = M.fce_plus(double.Parse(ExampleList[index - 1]), double.Parse(ExampleList[index + 1])).ToString(); //výpočet ExampleList.RemoveAt(index + 1); //smazaní nadbytečného ExampleList.RemoveAt(index - 1); //smazání nadbytečného } else { textOutput.Text = "CALC ERROR"; //CHYBA ExampleList.Clear(); //vyčištění Example = string.Empty; //vyčištění InputShow(Example); //vyčištění return; } } #endregion výpočet textOutput.Text = ExampleList[0]; //výpis výsledku ANSWER = ExampleList[0]; //uložení výsledku GotResult = true; //dostal jsem výsledek MadeFakt = false; } catch (Exception ex) { #if DEBUG Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Exception: {0}", ex.TargetSite.Name); Console.ResetColor(); #endif switch (ex.TargetSite.Name) { case "fce_deleno": textOutput.Text = "DIV BY ZERO"; break; case "fce_odmocnina": textOutput.Text = "BAD ROOT NUMBER"; break; case "StringToNumber": textOutput.Text = "NO DOUBLE EXP"; break; default: textOutput.Text = "CALC ERROR"; break; } NumberMode = false; GotError = true; ANSWER = "0"; textInput.Text = "0"; } Example = string.Empty; //vyčištění ExampleList.Clear(); //vyčištění } }