diff options
author | August Sodora <augsod@gmail.com> | 2012-01-14 18:39:35 -0500 |
---|---|---|
committer | August Sodora <augsod@gmail.com> | 2012-01-14 18:39:58 -0500 |
commit | 244382e62e91f56c2f1461f6656a6e1f973ae1eb (patch) | |
tree | fc48ef6dbf9a6f7546180075982d2779f32e074f /basic/qa/cppunit | |
parent | 944140ae44708074ed7f88d3728e06c5e92413f5 (diff) |
Add tests for hex/octal numbers for basic scanner
Diffstat (limited to 'basic/qa/cppunit')
-rw-r--r-- | basic/qa/cppunit/test_scanner.cxx | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/basic/qa/cppunit/test_scanner.cxx b/basic/qa/cppunit/test_scanner.cxx index 3d34feb120f0..785d23c74007 100644 --- a/basic/qa/cppunit/test_scanner.cxx +++ b/basic/qa/cppunit/test_scanner.cxx @@ -39,6 +39,7 @@ namespace void testExclamation(); void testNumbers(); void testDataType(); + void testHexOctal(); // Adds code needed to register the test suite CPPUNIT_TEST_SUITE(ScannerTest); @@ -53,6 +54,7 @@ namespace CPPUNIT_TEST(testExclamation); CPPUNIT_TEST(testNumbers); CPPUNIT_TEST(testDataType); + CPPUNIT_TEST(testHexOctal); // End of test suite definition CPPUNIT_TEST_SUITE_END(); @@ -733,6 +735,100 @@ namespace CPPUNIT_ASSERT(symbols[1].text == cr); } + void ScannerTest::testHexOctal() + { + const rtl::OUString source1(RTL_CONSTASCII_USTRINGPARAM("&HA")); + const rtl::OUString source2(RTL_CONSTASCII_USTRINGPARAM("&HASDF")); + const rtl::OUString source3(RTL_CONSTASCII_USTRINGPARAM("&H10")); + const rtl::OUString source4(RTL_CONSTASCII_USTRINGPARAM("&&H&1H1&H1")); + const rtl::OUString source5(RTL_CONSTASCII_USTRINGPARAM("&O&O12")); + const rtl::OUString source6(RTL_CONSTASCII_USTRINGPARAM("&O10")); + const rtl::OUString source7(RTL_CONSTASCII_USTRINGPARAM("&HO")); + const rtl::OUString source8(RTL_CONSTASCII_USTRINGPARAM("&O123000000000000000000000")); + const rtl::OUString source9(RTL_CONSTASCII_USTRINGPARAM("&H1.23")); + + std::vector<Symbol> symbols; + + symbols = getSymbols(source1); + CPPUNIT_ASSERT(symbols.size() == 2); + CPPUNIT_ASSERT(symbols[0].number == 10); + CPPUNIT_ASSERT(symbols[0].text == rtl::OUString()); + CPPUNIT_ASSERT(symbols[0].type == SbxINTEGER); + CPPUNIT_ASSERT(symbols[1].text == cr); + + symbols = getSymbols(source2); + CPPUNIT_ASSERT(symbols.size() == 2); + CPPUNIT_ASSERT(symbols[0].number == 2783); + CPPUNIT_ASSERT(symbols[0].text == rtl::OUString()); + CPPUNIT_ASSERT(symbols[0].type = SbxINTEGER); + CPPUNIT_ASSERT(symbols[1].text == cr); + + symbols = getSymbols(source3); + CPPUNIT_ASSERT(symbols.size() == 2); + CPPUNIT_ASSERT(symbols[0].number == 16); + CPPUNIT_ASSERT(symbols[0].text == rtl::OUString()); + CPPUNIT_ASSERT(symbols[0].type = SbxINTEGER); + CPPUNIT_ASSERT(symbols[1].text == cr); + + symbols = getSymbols(source4); + CPPUNIT_ASSERT(symbols.size() == 6); + CPPUNIT_ASSERT(symbols[0].number == 0); + CPPUNIT_ASSERT(symbols[0].text == rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("&"))); + CPPUNIT_ASSERT(symbols[0].type == SbxVARIANT); + CPPUNIT_ASSERT(symbols[1].number == 0); + CPPUNIT_ASSERT(symbols[1].text == rtl::OUString()); + CPPUNIT_ASSERT(symbols[1].type == SbxINTEGER); + CPPUNIT_ASSERT(symbols[2].number == 1); + CPPUNIT_ASSERT(symbols[2].text == rtl::OUString()); + CPPUNIT_ASSERT(symbols[2].type == SbxINTEGER); + CPPUNIT_ASSERT(symbols[3].number == 1); + CPPUNIT_ASSERT(symbols[3].text == rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("H1"))); + CPPUNIT_ASSERT(symbols[3].type == SbxLONG); + CPPUNIT_ASSERT(symbols[4].number == 1); + CPPUNIT_ASSERT(symbols[4].text == rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("H1"))); + CPPUNIT_ASSERT(symbols[4].type == SbxVARIANT); + CPPUNIT_ASSERT(symbols[5].text == cr); + + symbols = getSymbols(source5); + CPPUNIT_ASSERT(symbols.size() == 3); + CPPUNIT_ASSERT(symbols[0].number == 0); + CPPUNIT_ASSERT(symbols[0].text == rtl::OUString()); + CPPUNIT_ASSERT(symbols[0].type == SbxINTEGER); + CPPUNIT_ASSERT(symbols[1].number == 0); + CPPUNIT_ASSERT(symbols[1].text == rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("O12"))); + CPPUNIT_ASSERT(symbols[1].type == SbxVARIANT); + CPPUNIT_ASSERT(symbols[2].text == cr); + + symbols = getSymbols(source6); + CPPUNIT_ASSERT(symbols.size() == 2); + CPPUNIT_ASSERT(symbols[0].number == 8); + CPPUNIT_ASSERT(symbols[0].text == rtl::OUString()); + CPPUNIT_ASSERT(symbols[0].type == SbxINTEGER); + CPPUNIT_ASSERT(symbols[1].text == cr); + + symbols = getSymbols(source7); + CPPUNIT_ASSERT(symbols.size() == 2); + CPPUNIT_ASSERT(symbols[0].number == 0); + CPPUNIT_ASSERT(symbols[0].text == rtl::OUString()); + CPPUNIT_ASSERT(symbols[1].text == cr); + + symbols = getSymbols(source8); + CPPUNIT_ASSERT(symbols.size() == 2); + CPPUNIT_ASSERT(symbols[0].number == -1744830464); + CPPUNIT_ASSERT(symbols[0].text == rtl::OUString()); + CPPUNIT_ASSERT(symbols[1].text == cr); + + symbols = getSymbols(source9); + CPPUNIT_ASSERT(symbols.size() == 3); + CPPUNIT_ASSERT(symbols[0].text == rtl::OUString()); + CPPUNIT_ASSERT(symbols[0].number == 1); + CPPUNIT_ASSERT(symbols[0].type == SbxINTEGER); + CPPUNIT_ASSERT(symbols[1].number == .23); + CPPUNIT_ASSERT(symbols[1].text == rtl::OUString()); + CPPUNIT_ASSERT(symbols[1].type == SbxDOUBLE); + CPPUNIT_ASSERT(symbols[2].text == cr); + } + // Put the test suite in the registry CPPUNIT_TEST_SUITE_REGISTRATION(ScannerTest); } // namespace |