/*
* Copyright (C) Ascensio System SIA, 2009-2026
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation, together with the
* additional terms provided in the LICENSE file.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: https://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA by email at info@onlyoffice.com
* or by postal mail at 20A-6 Ernesta Birznieka-Upisha Street, Riga,
* LV-1050, Latvia, European Union.
*
* The interactive user interfaces in modified versions of the Program
* are required to display Appropriate Legal Notices in accordance with
* Section 5 of the GNU AGPL version 3.
*
* No trademark rights are granted under this License.
*
* All non-code elements of the Product, including illustrations,
* icon sets, and technical writing content, are licensed under the
* Creative Commons Attribution-ShareAlike 4.0 International License:
* https://creativecommons.org/licenses/by-sa/4.0/legalcode
*
* This license applies only to such non-code elements and does not
* modify or replace the licensing terms applicable to the Program's
* source code, which remains licensed under the GNU Affero General
* Public License v3.
*
* SPDX-License-Identifier: AGPL-3.0-only
*/
#include "../conversionmathformula.h"
#include "gtest/gtest.h"
TEST(SMConvectorTest, BinOperatorPlus)
{
std::wstring wsBinOperator = L"2 + 3";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring XmlString = L"2+3";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsBinOperator),XmlString);
}
TEST(SMConvectorTest,BinOperatorOver)
{
std::wstring wsBinOperator = L"2 over 3";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring XmlString = L"23";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsBinOperator),XmlString);
}
TEST(SMConvectorTest,BinOperatorCdot)
{
std::wstring wsBinOperator = L"5 cdot 8";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring XmlString = L"5\u00B78";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsBinOperator),XmlString);
}
TEST(SMConvectorTest,BinOperatorTimes)
{
std::wstring wsBinOperator = L"5 times 8";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring XmlString = L"5\u00D78";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsBinOperator),XmlString);
}
TEST(SMConvectorTest,BinOperatorMultipl)
{
std::wstring wsBinOperator = L"4 * 2";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring XmlString = L"4*2";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsBinOperator),XmlString);
}
TEST(SMConvectorTest,BinOperatorDiv)
{
std::wstring wsBinOperator = L"4div2";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring XmlString = L"4\u00F72";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsBinOperator),XmlString);
}
TEST(SMConvectorTest,BinOperatorDivision)
{
std::wstring wsBinOperator = L"4/2";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring XmlString = L"42";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsBinOperator),XmlString);
}
TEST(SMConvectorTest,BinOperatorOplus)
{
std::wstring wsBinOperator = L"226oplus179";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring XmlString = L"226\u2295179";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsBinOperator),XmlString);
}
TEST(SMConvectorTest,BinOperatorOdot)
{
std::wstring wsBinOperator = L"226 odot 179";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring XmlString = L"226\u2299179";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsBinOperator),XmlString);
}
TEST(SMConvectorTest,BinOperatorOtimes)
{
std::wstring wsBinOperator = L"226 otimes 179";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring XmlString = L"226\u2297179";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsBinOperator),XmlString);
}
TEST(SMConvectorTest,OperatorSum)
{
std::wstring wsOperator = L"sum 5";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring XmlString = L"5";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsOperator),XmlString);
}
TEST(SMConvectorTest,OperatorSumFrom)
{
std::wstring wsOperator = L"sum from 10 5";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring XmlString = L"105";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsOperator),XmlString);
}
TEST(SMConvectorTest,OperatorSumTo)
{
std::wstring wsOperator = L"sum to 10 5";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring XmlString = L"105";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsOperator),XmlString);
}
TEST(SMConvectorTest,OperatorSumFromTo)
{
std::wstring wsOperator = L"sum from 666 to 777 567";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring XmlString = L"666777567";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsOperator),XmlString);
}
TEST(SMConvectorTest,SetOperationUnion)
{
std::wstring wsString = L"23 union 45";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"23\u22C345";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,SetOperationIntersection)
{
std::wstring wsString = L"15 intersection 1234";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"15\u22C21234";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,SetOperationSetminus)
{
std::wstring wsString = L"7 setminus 15745";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"7\u221615745";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,SetOperationSetquotient)
{
std::wstring wsString = L"91 setquotient 45";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"91\u221545";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,SetOperationSubset)
{
std::wstring wsString = L"1 subset 2";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"1\u22822";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,SetOperationSubseteq)
{
std::wstring wsString = L"77subseteq66";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"77\u228666";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,SetOperationSupset)
{
std::wstring wsString = L"11supset22";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"11\u228322";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,SetOperationSupseteq)
{
std::wstring wsString = L"1 supseteq 2";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"1\u22872";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,SetOperationNsubset)
{
std::wstring wsString = L"21nsubset2";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"21\u22842";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,SetOperationNsubseteq)
{
std::wstring wsString = L"782nsubseteq250";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"782\u2288250";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,SetOperationNsupset)
{
std::wstring wsString = L"1nsupset2";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"1\u22852";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,SetOperationNsupseteq)
{
std::wstring wsString = L"1nsupseteq2";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"1\u22892";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,SetOperationIn)
{
std::wstring wsString = L"1 in 2";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"1\u22082";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,SetOperationNotin)
{
std::wstring wsString = L"3 notin 4";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"3\u22094";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,SetOperationOwns)
{
std::wstring wsString = L"5owns6";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"5\u220B6";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,ConnectionDlarrow)
{
std::wstring wsString = L"7 dlarrow 8";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"7\u21D08";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,ConnectionDlrarrow)
{
std::wstring wsString = L"9 dlrarrow 10";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"9\u21D410";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,ConnectionDrarrow)
{
std::wstring wsString = L"11drarrow12";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"11\u21D212";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,ConnectionEquals)
{
std::wstring wsString = L"13=14";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"13=14";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,ConnectionNotequals)
{
std::wstring wsString = L"15 <> 16";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"15\u226016";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,ConnectionLearrow)
{
std::wstring wsString = L"17<18";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"17<18";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,ConnectionLearrowequals)
{
std::wstring wsString = L"19<= 20";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"19\u226420";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,ConnectionRiarrow)
{
std::wstring wsString = L"21 >22";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"21>22";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,ConnectionRiarrowequals)
{
std::wstring wsString = L"23 >=24";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"23\u226524";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,ConnectionDllearrow)
{
std::wstring wsString = L"25 <<26";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"25\u226A26";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,ConnectionDlriarrow)
{
std::wstring wsString = L"27 >> 28";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"27\u226B28";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,ConnectionApprox)
{
std::wstring wsString = L"29 approx30";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"29\u224830";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,ConnectionSim)
{
std::wstring wsString = L"31sim 32";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"31\u223C32";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,ConnectionSimeq)
{
std::wstring wsString = L"33 simeq 34";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"33\u224334";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,ConnectionEquiv)
{
std::wstring wsString = L"35 equiv 36";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"35\u226136";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,ConnectionProp)
{
std::wstring wsString = L"37 prop 38";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"37\u221D38";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,ConnectionParallel)
{
std::wstring wsString = L"39 parallel 30";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"39\u222530";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,ConnectionOrtho)
{
std::wstring wsString = L"41ortho42";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"41\u22A542";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,ConnectionDivides)
{
std::wstring wsString = L"43 divides 44";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"43\u222344";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,ConnectionNdivides)
{
std::wstring wsString = L"45 ndivides 46";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"45\u222446";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,ConnectionToward)
{
std::wstring wsString = L"47 toward 48";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"47\u219248";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,ConnectionTransl)
{
std::wstring wsString = L"49 transl 50";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"49\u22B750";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,ConnectionTransr)
{
std::wstring wsString = L"51 transr 52";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"51\u22B652";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,ConnectionDef)
{
std::wstring wsString = L"53def54";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"53\u225D54";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,ConnectionPrec)
{
std::wstring wsString = L"55prec56";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"55\u227A56";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,ConnectionSucc)
{
std::wstring wsString = L"57 succ 58";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"57\u227B58";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,ConnectionPreccurlyeq)
{
std::wstring wsString = L"59 preccurlyeq 60";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"59\u227C60";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,ConnectionSucccurlyeq)
{
std::wstring wsString = L"61 succcurlyeq 62";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"61\u227D62";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,ConnectionPrecsim)
{
std::wstring wsString = L"63 precsim 64";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"63\u227E64";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,ConnectionSuccsim)
{
std::wstring wsString = L"65 succsim 66";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"65\u227F66";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,ConnectionNprec)
{
std::wstring wsString = L"67nprec68";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"67\u228068";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,ConnectionNsucc)
{
std::wstring wsString = L"69nsucc70";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"69\u228170";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,BracketRound)
{
std::wstring wsString = L"(2+3)";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"2+3";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,BracketSquare)
{
std::wstring wsString = L"[4-5]";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"4-5";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,BracketLdbracket)
{
std::wstring wsString = L"ldbracket 6+7 rdbracket";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"6+7";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,BracketLbrace)
{
std::wstring wsString = L"lbrace 8 - 9 rbrace";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"8-9";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,BracketLangle)
{
std::wstring wsString = L"langle 10 over 11 rangle";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"1011";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,BracketLceil)
{
std::wstring wsString = L"lceil 12 ominus 13 rceil";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"12\u229613";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,BracketLfloor)
{
std::wstring wsString = L"lfloor 14 union 15 rfloor";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"14\u22C315";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,BracketLline)
{
std::wstring wsString = L"lline 16 / 17 rline";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"1617";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,BracketLdline)
{
std::wstring wsString = L"ldline 18 oplus 19 rdline";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"18\u229519";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,FunctionCos)
{
std::wstring wsString = L"cos{2+3}";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"cos2+3";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,FunctionSin)
{
std::wstring wsString = L"sin 4 over 5";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"sin45";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,FunctionTan)
{
std::wstring wsString = L"tan{6 / 7}";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"tan67";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,FunctionCot)
{
std::wstring wsString = L"cot(8 over 9)";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"cot89";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,FunctionSinh)
{
std::wstring wsString = L"sinh 2 supset 3";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"sinh2\u22833";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,FunctionCosh)
{
std::wstring wsString = L"cosh 2 + 3";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"cosh2+3";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,FunctionTanh)
{
std::wstring wsString = L"tanh(11otimes12)";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"tanh11\u229712";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,FunctionCoth222)
{
std::wstring wsString = L"coth222";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"coth222";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,FunctionArcsin)
{
std::wstring wsString = L"arcsin{13 ominus 14}";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"arcsin13\u229614";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,FunctionArccos)
{
std::wstring wsString = L"arccos{15 - 16}";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"arccos15-16";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,FunctionArctan)
{
std::wstring wsString = L"arctan 17 over 18";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"arctan1718";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,FunctionArccot)
{
std::wstring wsString = L"arccot 20 + 30";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"arccot20+30";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,FunctionArsinh)
{
std::wstring wsString = L"{arsinh{2/3}} over sum from 1 to 5 10";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"arsinh231510";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,FunctionArcosh)
{
std::wstring wsString = L"35 + 27 over {arcosh binom 23 78}";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"35+27arcosh2378";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,FunctionArtanhArcoth)
{
std::wstring wsString = L"arcoth 30 subset {artanh 27}";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"arcoth30\u2282artanh27";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,MatrixBinom)
{
std::wstring wsString = L"binom{2 over 7 supset 277}{arcoth 89}";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"27\u2283277arcoth89";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,MatrixMatrix)
{
std::wstring wsString = L"matrix{2 / 8 -5 # sum from 2 over 10 union 3 to 10*10 100 ## cosh(10) # 2 oplus 10over100 }";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"28-5210\u22C3310*10100cosh102\u229510100";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,MatrixStack)
{
std::wstring wsString = L"stack{2 over 10 # binom 2 3 # matrix{1 # 2 ## 3 # 4}}";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"210231234";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,IndexLower)
{
std::wstring wsString = L"25 over 1 _ 2 ";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"2512";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,IndexUpper)
{
std::wstring wsString = L"{binom {cos 5} 2 over 4 }^ 10";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"cos52410";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,IndexLsup)
{
std::wstring wsString = L"{2 over 7} lsup binom 2+3 {cos 15}";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"\x28002+3cos1527";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,IndexLsub)
{
std::wstring wsString = L"2222^10 lsub 2 over 3";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"2\x28002222103";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,BracketWithIndexOverbrace)
{
std::wstring wsString = L"color red size 16 {2/3} overbrace color navy size 18 stack{10 # 100 # 10 }";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"231010010";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,OperatorLllint)
{
std::wstring wsString = L"color red bold lllint from color navy bold 2 over color crimson 10 to color green (2 color orange bold + 3) 100";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"2102+3100";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,BracketLdlineAttribute)
{
std::wstring wsString = L"color green left ldline color navy bold 10 over color purple dot underline 100 color orange bold ital + 3 right rdline + ital bold 10";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"10100+3+10";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,Example11)
{
std::wstring wsString = L"f(x) = sum from { n=0 } to { infinity } { {f^{(n)}(x_0) } over { fact{n} } (x-x_0)^n }";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"fx=n=0\u221Efnx0n\u0021x-x0n";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,AttributeGrade)
{
std::wstring wsString = L"color green bold evaluate {E = color black m c^ color yellow 2} from {color crimson b over color teal a} to color navy overstrike infinity";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"E=mc2ba\u221E";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,Example2)
{
std::wstring wsString = L"C = %pi cdot d = 2 cdot %pi cdot r";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString =L"C=\u03C0\u00B7d=2\u00B7\u03C0\u00B7r";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,Example3)
{
std::wstring wsString = L"c = sqrt{ a^2 + b^2 }";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString =L"c=a2+b2";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,Example4)
{
std::wstring wsString = L"vec F = m times vec a";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString =L"F=m\u00D7a";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,Example5)
{
std::wstring wsString = L"E = m c^2";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString =L"E=mc2";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,Example6)
{
std::wstring wsString = L"G_{%mu %nu} + %LAMBDA g_{%mu %nu}= frac{8 %pi G}{c^4} T_{%mu %nu}";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString =L"G\u03BC\u03BD+\u039Bg\u03BC\u03BD=8\u03C0Gc4T\u03BC\u03BD";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,Example8)
{
std::wstring wsString = L"d over dt left( {partial L}over{partial dot q} right) = {partial L}over{partial q}";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString =L"ddt\u2202L\u2202q=\u2202L\u2202q";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,Example9)
{
std::wstring wsString = L"int from a to b f'(x) dx = f(b) - f(a)";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString =L"abf'xdx=fb-fa";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,Example10)
{
std::wstring wsString = L"ldline %delta bold{r}(t) rdline approx e^{%lambda t} ldline %delta { bold{r} }_0 rdline";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString =L"\u03B4rt\u2248e\u03BBt\u03B4r0";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,LimAndCsub)
{
std::wstring wsString = L"{lim from 2 over 10 to 1 5} csub 244";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString =L"lim21015244";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,LimSupAndCsup)
{
std::wstring wsString = L"limsup from 10 to 2 csup 10 100";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString =L"lim sup10210100";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,OverWithoutLeft)
{
std::wstring wsString = L"over +- 2_10 5";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString =L"\u00B12105";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,Newline)
{
std::wstring wsString = L"2 over 3 newline 10 csup 2 ";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"23102";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,IndexAndBinOp)
{
std::wstring wsString = L"2 union 3^4 over 10";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"2\u22C33410";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,Example7)
{
std::wstring wsString = L" %DELTA t' = { %DELTA t } over sqrt{ 1 - v^2 over c^2 }";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"\u0394t'=\u0394t1-v2c2";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,UnarySign)
{
std::wstring wsString = L"3+6 over 9 newline -+5 over 10";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"3+69\u2213510";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,Example13)
{
std::wstring wsString = L"nroot{3}{x^3-7x^2+14x-8}+sqrt{7/8+4/9+nroot{3}{sqrt{7/8+4/9}}}";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"3x3-7x2+14x-8+78+49+378+49";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,Example14)
{
std::wstring wsString = L"sum_{i=0}^{infinity} {(-1)^i over (2i+1)} x^{2i+1} = sin(x)";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"i=0\u221E-1i2i+1x2i+1=sinx";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,Example15)
{
std::wstring wsString = L"lim_{x->0} {sin(x) over x} = 1";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"limx\u27940sinxx=1";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,Example16)
{
std::wstring wsString = L"int_0^{infinity} x^2 e^{-x} dx = 2";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"0\u221Ex2e-xdx=2";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,Example17)
{
std::wstring wsString = L"{a^{2} over b} + {b^{2} over a} >= 2 sqrt{a b}";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"a2b+b2a\u22652ab";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,Example18)
{
std::wstring wsString = L"10^1_2lsub5lsup4";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"541021";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,IndexWithColor)
{
std::wstring wsString = L"bold 2 ^ 3 _4 lsup color blue 5 csub color red 6 csup 7 lsub 8";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"\x280058\x280067243";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,FunctionWithColor)
{
std::wstring wsString = L"func e^ 7_2 lsup 10 2over3";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"\x280010e2723";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,IncorrectSizeAndFontInput)
{
std::wstring wsString = L"size font bolt ital 2";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"bolt2";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,IncorrectRGBColorInput)
{
std::wstring wsString = L"color rgb 255 0 257 2 color rgb 10";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"2550257210";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,IncorrectHexColorInput)
{
std::wstring wsString = L"color hex 161616FF RGB color hex 66 RGB color hex RGB color hex FFAACCFF RGB color hex 99112288FF0000 RGB ";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"RGBRGBRGBRGBRGB";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,IndexWithoutElement)
{
std::wstring wsString = L"2^_3 ";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"23";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,Neg)
{
std::wstring wsString = L"-1 neg 10 over 5 or 7";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"-1\u00AC105\u22287";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,Frac)
{
std::wstring wsString = L"sum_{n=1}^{ infty} frac{1}{n^2} + frac{1}{n^3} = frac{ pi^2}{6} + zeta(3)";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"n=1\u221E1n2+1n3=pi26+zeta3";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,BracketIndexOnTopAndOperationOnSet)
{
std::wstring wsString = L"3 + 10 over 5 setminus 1 overbrace 2";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"3+105\u221612";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,SqrtWithIndex)
{
std::wstring wsString = L"sqrt{2}^{ log_2{8}} = 4";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"2log28=4";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,Binom)
{
std::wstring wsString = L"binom 2 = 4 3 binom 2+1abc 5";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"2=432+1abc5";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,UnarySignWithColor)
{
std::wstring wsString = L"color green [color red 2 color blue + 10 setminus color red 5 over 9 underbrace 3 ]";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"2+10\u2216593";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,rSubrSup)
{
std::wstring wsString = L"2 rSub 20 1 rSup 28";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"220128";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,DifferentRegisters)
{
std::wstring wsString = L"2 OvEr 10 unION 5";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"210\x22C35";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,Quotes)
{
std::wstring wsString = L"\"2 + 3\" over 10 2 \"+\" 5 over 3";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"2 + 3102+53";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,NumberWithDot)
{
std::wstring wsString = L"goal.25 over 100";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"goal.25100";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,OperatorWithoutValue)
{
std::wstring wsString = L"lim_{x->5}";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"limx\u27945";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,MatrixWithDifferentValues)
{
std::wstring wsString = L"matrix{2} matrix 2 matrix";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"22";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,StackWithDifferentValues)
{
std::wstring wsString = L"stack stack{2} stack 2";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"22";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,Partial)
{
std::wstring wsString = L"{partial f(x)} over { partial x } = ln(x) + tan^-1(x^2)";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"\u2202fx\u2202x=lnx+tan-1x2";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,LimWithArrow)
{
std::wstring wsString = L"lim from { x->1^-"" }{ {x^{2}-1 } over { x-1 }} = 2 ";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"limx\u27941-x2-1x-1=2";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,FunctionWithAttributeAndIndex)
{
std::wstring wsString = L"{%sigma' = %sigma color red bold func e ^ color blue frac 2 3 }";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"\u03C3'=\u03C3e23";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
TEST(SMConvectorTest,UnarPlusMinus)
{
std::wstring wsString = L"2 color red + - 4 over 10";
StarMath::CStarMathConverter oConverterStarMath;
std::wstring wsXmlString = L"2+-410";
EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
}
//TEST(SMConvectorTest,AttributeMatrix)
//{
// std::wstring wsString = L"";
// StarMath::CStarMathConverter oConverterStarMath;
// std::wstring wsXmlString = L"";
// EXPECT_EQ(oConverterStarMath.ConvertStarMathToOOXml(wsString),wsXmlString);
//}