public void CalculateFundingWinnerTest() { Voter v1 = new Voter("rep1"); Voter v2 = new Voter("rep2"); Voter v3 = new Voter("rep3"); PolicyCategory pc = new PolicyCategory("test"); var fundingOptions = new List<FundingOption> { new FundingOption("op1", 1, FundingType.ImportTax), new FundingOption("op2", 1, FundingType.IncomeTax), new FundingOption("op3", 1, FundingType.InheritanceTax) }; Policy pol = new Policy(pc, "pol1", 1); var pref1 = new FundingVote(fundingOptions[0], 1); var pref2 = new FundingVote(pref1); pref2.AddOption(fundingOptions[2], fundingOptions[0]); var pref3 = new FundingVote(pref1); pref3.AddOption(fundingOptions[1], null); PolicyVote vote1 = new PolicyVote(pc, pol, 1, pref1); PolicyVote vote2 = new PolicyVote(pc, pol, 1, pref2); PolicyVote vote3 = new PolicyVote(pc, pol, 1, pref3); v1.Vote(vote1); v2.Vote(vote2); v3.Vote(vote3); Assert.AreEqual(fundingOptions[0], pc.CalculateWinner().Funding); }
public void Initialize() { this.pc = new PolicyCategory("parent"); var childPc = new PolicyCategory("child1"); var childPc2 = new PolicyCategory("child2"); Policy pol = new Policy( childPc2, "pol1", 2); Policy pol2 = new Policy(childPc, "pol2", 3); Policy pol3 = new Policy(childPc, "pol3", 4); this.pc.AddSubItem(childPc); this.pc.AddSubItem(childPc2); }
public void CalculatePolicyWinnerTest() { PolicyCategory pc = new PolicyCategory("test1"); Policy pol = new Policy(pc, "pol", 1); Policy pol1 = new Policy(pc, "pol1", 1); Policy pol2 = new Policy(pc, "pol2", 1); Voter v1 = new Voter("rep1"); Voter v2 = new Voter("rep2"); Voter v3 = new Voter("rep3"); Voter v4 = new Voter("rep4"); var fo = new FundingOption("op1", 1, FundingType.ImportTax); var vote1 = new PolicyVote(pc, pol1, 2, fo); var vote2 = new PolicyVote(pc, pol2, 1, fo); var vote3 = new PolicyVote(pc, pol2, 1, fo); var vote4 = new PolicyVote(pc, pol, 1, fo); vote4.AddPolicy(pol1, fo); v1.Vote(vote1); v2.Vote(vote2); v3.Vote(vote3); v4.Vote(vote4); Assert.AreEqual(pol1, pc.CalculateWinner()); }
private void AddPolicy(Policy pol) { this.policies.Add(pol.Id, pol); foreach (PolicyCategory pc in this.Parents) { pc.AddPolicy(pol); } }
private void Reallocate(Voter v, Policy p) { throw new NotImplementedException(); }