public void Overlapping_AreNot_NonOverlapping() { var d1 = DoubleConverter.FromFloatingPointBinaryString("101"); var d2 = DoubleConverter.FromFloatingPointBinaryString("10"); Assert.IsFalse(ExpansionExtensions.AreNonOverlapping(d1, d2)); }
public void NonOverlapping_Are_NonOverlapping() { var d1 = DoubleConverter.FromFloatingPointBinaryString("1100"); var d2 = DoubleConverter.FromFloatingPointBinaryString("-10.1"); Assert.IsTrue(ExpansionExtensions.AreNonOverlapping(d1, d2)); }
public void TwoSum_ResultsNonOverlappingNonAdjacent_Random() { var rnd = new RandomDouble(1); // Use a specific seed to ensure repeatability int testCount = 1000000; for (int i = 0; i < testCount; i++) { double a = rnd.NextDoubleFullRange(); double b = rnd.NextDoubleFullRange(); double x; double y; EA.TwoSum(a, b, out x, out y); Assert.IsTrue(ExpansionExtensions.AreNonOverlapping(x, y)); Assert.IsTrue(ExpansionExtensions.AreNonAdjacent(x, y)); } }
/// <summary> /// Parses a HTML table in file to get all the card data listed within. /// </summary> /// <param name="filepath"></param> /// <param name="type"></param> /// <returns></returns> private static IEnumerable <InvestigatorCard> Parse(string filepath, InvestigatorCardType type) { List <InvestigatorCard> cards = new List <InvestigatorCard>(); HtmlDocument doc = new HtmlDocument(); doc.Load(filepath); foreach (HtmlNode rowNode in doc.DocumentNode.Descendants("tr")) { IEnumerable <HtmlNode> cardNodes = rowNode.Descendants("td"); string name = cardNodes.ElementAt(0).InnerText.Trim(); string traitsString = cardNodes.ElementAt(1).InnerText.Replace('-', ',').Replace('—', ','); HtmlNode expNode = cardNodes.ElementAt(2); HtmlNode expLinkNode = expNode.SelectSingleNode(".//a"); string expString = "Core"; if (expLinkNode != null) { expString = expLinkNode.GetAttributeValue("title", "Core"); } List <string> traits = new List <string>(); foreach (string traitRaw in traitsString.Split(',')) { traits.Add(traitRaw.ToUpper().Trim()); } Expansion exp = ExpansionExtensions.FromString(expString); InvestigatorCard card; if (type == InvestigatorCardType.Asset) { int cost = int.Parse(cardNodes.ElementAt(3).InnerText); card = new AssetCard(name, type, exp, traits, cost); } else { card = new InvestigatorCard(name, type, exp, traits); } cards.Add(card); } return(cards); }
public void FastTwoSum_ResultsNonOverlappingNonAdjacent_Random() { var rnd = new RandomDouble(1); // Use a specific seed to ensure repeatability int testCount = 1000000; int testsPerformed = 0; for (int i = 0; i < testCount; i++) { double a = rnd.NextDoubleFullRange(); double b = rnd.NextDoubleFullRange(); double x; double y; if (System.Math.Abs(a) >= System.Math.Abs(b)) { testsPerformed++; EA.FastTwoSum(a, b, out x, out y); Assert.IsTrue(ExpansionExtensions.AreNonOverlapping(x, y)); Assert.IsTrue(ExpansionExtensions.AreNonAdjacent(x, y)); } } Debug.Print("FastTwoSum_MaintainsNonOverlapping_Random Tested {0} out of {1} tries", testsPerformed, testCount); }