Skip to content

Commit 0e407f4

Browse files
committed
tests passing?
1 parent ede3b9a commit 0e407f4

2 files changed

Lines changed: 31 additions & 1 deletion

File tree

src/backend/container/blockContainer.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -437,7 +437,7 @@ bool BlockContainer::tryRemoveConnection(ConnectionEnd connectionEndB, Connectio
437437
blockA->getPosition(), blockA->getConnectionPosition(connectionEndA.getConnectionId()).value()
438438
);
439439
} else {
440-
difference->addCreatedConnection(
440+
difference->addRemovedConnection(
441441
blockA->getPosition(), blockA->getConnectionPosition(connectionEndA.getConnectionId()).value(),
442442
blockB->getPosition(), blockB->getConnectionPosition(connectionEndB.getConnectionId()).value()
443443
);

tests/evaluator/weirdCases.cpp

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,3 +131,33 @@ TEST_F(WeirdCasesEvaluatorTest, InitializationBehaviorWithICs) {
131131
evaluator2->tickStep(1);
132132
EXPECT_EQ(evaluator2->getState(xnorPos), logic_state_t::LOW);
133133
}
134+
135+
TEST_F(WeirdCasesEvaluatorTest, PullUpPullDownButWithDifferentConnectionMethod) {
136+
Position pullUpPos(0, 0);
137+
Position pullDownPos(1, 0);
138+
139+
logInfo("Inserting pull-up and pull-down junctions", "WeirdCasesEvaluatorTest::PullUpPullDownButWithDifferentConnectionMethod");
140+
141+
ASSERT_TRUE(circuit->tryInsertBlock(pullUpPos, Rotation::ZERO, BlockType::JUNCTION_H));
142+
ASSERT_TRUE(circuit->tryInsertBlock(pullDownPos, Rotation::ZERO, BlockType::JUNCTION_L));
143+
144+
EXPECT_EQ(evaluator->getState(pullUpPos), logic_state_t::HIGH);
145+
EXPECT_EQ(evaluator->getState(pullDownPos), logic_state_t::LOW);
146+
147+
const Block* pullUpBlock = circuit->getBlockContainer().getBlock(pullUpPos);
148+
const Block* pullDownBlock = circuit->getBlockContainer().getBlock(pullDownPos);
149+
ASSERT_NE(pullUpBlock, nullptr);
150+
ASSERT_NE(pullDownBlock, nullptr);
151+
152+
logInfo("Creating connection between pull-up and pull-down junctions", "WeirdCasesEvaluatorTest::PullUpPullDownButWithDifferentConnectionMethod");
153+
154+
ASSERT_TRUE(circuit->tryCreateConnection({ pullUpBlock->id(), connection_end_id_t(0) }, { pullDownBlock->id(), connection_end_id_t(0) }));
155+
EXPECT_EQ(evaluator->getState(pullUpPos), logic_state_t::UNDEFINED);
156+
EXPECT_EQ(evaluator->getState(pullDownPos), logic_state_t::UNDEFINED);
157+
158+
logInfo("Removing connection between pull-up and pull-down junctions", "WeirdCasesEvaluatorTest::PullUpPullDownButWithDifferentConnectionMethod");
159+
160+
ASSERT_TRUE(circuit->tryRemoveConnection({ pullDownBlock->id(), connection_end_id_t(0) }, { pullUpBlock->id(), connection_end_id_t(0) }));
161+
EXPECT_EQ(evaluator->getState(pullUpPos), logic_state_t::HIGH);
162+
EXPECT_EQ(evaluator->getState(pullDownPos), logic_state_t::LOW);
163+
}

0 commit comments

Comments
 (0)