from composer_ans.art1 import ART1Network, ART1Params def test_generic_art1_commits_first_category() -> None: network = ART1Network(ART1Params(max_categories=3, input_length=4, vigilance=0.9)) result = network.categorize((1, 0, 1, 0)) assert result.winner == 0 assert result.new_category is True assert result.committed_categories == 1 assert result.expected_vector == (1, 0, 1, 0) def test_generic_art1_reuses_matching_category() -> None: network = ART1Network(ART1Params(max_categories=3, input_length=4, vigilance=0.9)) network.categorize((1, 0, 1, 0)) result = network.categorize((1, 0, 1, 0)) assert result.winner == 0 assert result.new_category is False assert result.committed_categories == 1