@@ -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