public function it_should_be_able_to_report_the_happiness_changes_from_the_table_setting(Person $david, Person $alice, Person $bob, Person $carol) { $carol->happinessChange("Alice")->shouldBeCalled()->willReturn(-62); $alice->happinessChange("Carol")->shouldBeCalled()->willReturn(-79); $alice->happinessChange("David")->shouldBeCalled()->willReturn(-2); $david->happinessChange("Alice")->shouldBeCalled()->willReturn(64); $david->happinessChange("Bob")->shouldBeCalled()->willReturn(-7); $bob->happinessChange("David")->shouldBeCalled()->willReturn(-63); $bob->happinessChange("Carol")->shouldBeCalled()->willReturn(-7); $carol->happinessChange("Bob")->shouldBeCalled()->willReturn(60); $david->name()->shouldBeCalled()->willReturn("David"); $alice->name()->shouldBeCalled()->willReturn("Alice"); $bob->name()->shouldBeCalled()->willReturn("Bob"); $carol->name()->shouldBeCalled()->willReturn("Carol"); $this->happinessChange()->shouldBe(-96); }
public function it_should_be_able_to_report_the_highest_possible_happiness_change(Permutations $permutations, Person $david, Person $alice, Person $bob, Person $carol) { $realPerms = new Permutations(); $permutations->calculate([0, 1, 2, 3])->shouldBeCalled()->willReturn($realPerms->calculate([0, 1, 2, 3])); $david->happinessChange("Alice")->shouldBeCalled()->willReturn(46); $david->happinessChange("Carol")->shouldBeCalled()->willReturn(41); $david->happinessChange("Bob")->shouldBeCalled()->willReturn(-7); $alice->happinessChange("David")->shouldBeCalled()->willReturn(-2); $alice->happinessChange("Bob")->shouldBeCalled()->willReturn(54); $alice->happinessChange("Carol")->shouldBeCalled()->willReturn(-79); $bob->happinessChange("Alice")->shouldBeCalled()->willReturn(83); $bob->happinessChange("Carol")->shouldBeCalled()->willReturn(-7); $bob->happinessChange("David")->shouldBeCalled()->willReturn(-63); $carol->happinessChange("Bob")->shouldBeCalled()->willReturn(60); $carol->happinessChange("David")->shouldBeCalled()->willReturn(55); $carol->happinessChange("Alice")->shouldBeCalled()->willReturn(-62); $david->name()->shouldBeCalled()->willReturn("David"); $alice->name()->shouldBeCalled()->willReturn("Alice"); $bob->name()->shouldBeCalled()->willReturn("Bob"); $carol->name()->shouldBeCalled()->willReturn("Carol"); $this->highestHappinessChange([$david, $alice, $bob, $carol])->happinessChange()->shouldBe(330); }