#include "catch.hpp"

#include "fasm_utils.h"

namespace fasm {
namespace {

using Catch::Matchers::Equals;
using Catch::Matchers::Contains;

TEST_CASE("parse_names", "[fasm]") {
    std::string name;
    int index;

    parse_name_with_optional_index("A", &name, &index);
    CHECK_THAT(name, Equals("A"));
    CHECK(index == 0);

    parse_name_with_optional_index("ABCD[500]", &name, &index);
    CHECK_THAT(name, Equals("ABCD"));
    CHECK(index == 500);
}

TEST_CASE("split_fasm_entry", "[fasm]") {
    auto parts = split_fasm_entry("A B C", " ", "");
    REQUIRE(parts.size() == 3);
    CHECK_THAT(parts[0], Equals("A"));
    CHECK_THAT(parts[1], Equals("B"));
    CHECK_THAT(parts[2], Equals("C"));

    parts = split_fasm_entry("A \nB\n\tC ", "\n", "\t ");

    REQUIRE(parts.size() == 3);
    CHECK_THAT(parts[0], Equals("A"));
    CHECK_THAT(parts[1], Equals("B"));
    CHECK_THAT(parts[2], Equals("C"));
}

} // namespace
} // namespace fasm
