alpar@2086: /* -*- C++ -*- alpar@2086: * alpar@2086: * This file is a part of LEMON, a generic C++ optimization library alpar@2086: * alpar@2391: * Copyright (C) 2003-2007 alpar@2086: * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport alpar@2086: * (Egervary Research Group on Combinatorial Optimization, EGRES). alpar@2086: * alpar@2086: * Permission to use, modify and distribute this software is granted alpar@2086: * provided that this copyright notice appears in all copies. For alpar@2086: * precise terms see the accompanying LICENSE file. alpar@2086: * alpar@2086: * This software is provided "AS IS" with no warranty of any kind, alpar@2086: * express or implied, and with no claim as to its suitability for any alpar@2086: * purpose. alpar@2086: * alpar@2086: */ alpar@2086: alpar@2086: #include alpar@2207: #include alpar@2086: #include alpar@2086: #include "test_tools.h" alpar@2086: alpar@2086: using namespace std; alpar@2086: using namespace lemon; alpar@2086: int main() alpar@2086: { alpar@2086: Polynomial pi(5); alpar@2086: check(pi.deg()==5,"Something is wrong here."); alpar@2086: pi[0]=12; alpar@2086: pi[5]=3; alpar@2086: pi[2]=7; alpar@2086: check(pi[1]==0,"Uninitialized elements should be(?) zero."); alpar@2086: { alpar@2086: Polynomial pd=pi; alpar@2086: check(pd.deg()==5,"Something is wrong here."); alpar@2086: check(pd[0]==12,"Something is wrong here."); alpar@2086: check(pd[5]==3,"Something is wrong here."); alpar@2086: alpar@2086: } alpar@2086: alpar@2086: Polynomial pd; alpar@2086: pd=pi; alpar@2086: check(pd.deg()==5,"Something is wrong here."); alpar@2086: check(pd[0]==12,"Something is wrong here."); alpar@2086: check(pd[5]==3,"Something is wrong here."); alpar@2086: alpar@2086: check(pd(0)==12,"Something is wrong here."); alpar@2086: check(pd(1)==22,"Something is wrong here."); alpar@2086: check(pd(2)==136,"Something is wrong here."); alpar@2086: alpar@2086: check((pd*pi).deg()==10,"Something is wrong here."); alpar@2086: check((pd*pi)[10]==9,"Something is wrong here."); alpar@2086: check((pd*pi)[7]==42,"Something is wrong here."); alpar@2086: alpar@2086: Polynomial pd2=pd+pi; alpar@2086: check(pd2[5]==6,"Something is wrong here."); alpar@2086: pd2+=pd; alpar@2086: pd2+=pi; alpar@2086: check(pd2[5]==12,"Something is wrong here."); alpar@2086: pd2-=pd; alpar@2086: pd2-=pi; alpar@2086: check(pd2[5]==6,"Something is wrong here."); alpar@2086: check((pd-pi)[5]==0,"Something is wrong here."); alpar@2086: alpar@2086: Polynomial pdd=pd.derivate(); alpar@2086: pd.derivateMyself(); alpar@2086: check(pdd==pd,"Something is wrong here."); alpar@2086: check(pd.deg()==4,"Something is wrong here."); alpar@2086: check(pd[4]==15,"Something is wrong here."); alpar@2086: alpar@2086: alpar@2086: Polynomial pdi=pd.integrate(); alpar@2086: pd.integrateMyself(); alpar@2086: check(pdi==pd,"Something is wrong here."); alpar@2086: check(pd.deg()==5,"Something is wrong here."); alpar@2086: check(pd[5]==3,"Something is wrong here."); alpar@2086: check(pd[0]==0,"Something is wrong here."); alpar@2086: alpar@2086: alpar@2086: }