Exemple #1
0
//方程操作一系列函数
struct array * caculate_function(struct array *p1,struct array *p2)
{
    int i,j;
    int n=(int)p1->m;
    struct array *p3=create_array(n);
    for(i=1;i<=n;i++)
    {
    *modify_m(p3,1,i)=value_array(instead_array(p1,p2,i))/value_array(p1);
    }
return p3;
}
Exemple #2
0
/**
 * Test that choice_option correctly reports its capabilities.
 */
TEST(choice_option_test, capabilities)
{
    auto short_name = std::string("f");
    auto name = std::string("foo");
    auto option = qflags::choice_option(name.c_str(), short_name.c_str(), {"bar", "baz"}, "bar");

    EXPECT_EQ(name, option.name());
    EXPECT_EQ(short_name, option.short_name());
    EXPECT_EQ(false, option.is_set());
    EXPECT_EQ(false, option.is_flag());
    EXPECT_EQ(false, option.is_command());
    EXPECT_EQ(false, option.is_array());
    EXPECT_EQ(false, option.is_boolean());
    EXPECT_EQ(false, option.is_integer());
    EXPECT_EQ(true, option.is_string());
    EXPECT_EQ(0u, option.array_size());

    EXPECT_THROW(option.value_boolean(), std::logic_error);
    EXPECT_THROW(option.value_integer(), std::logic_error);
    EXPECT_EQ("bar", option.value_string());
    EXPECT_THROW(option.value_array(0), std::logic_error);

    EXPECT_THROW(static_cast<bool>(option), std::logic_error);
    EXPECT_THROW(static_cast<int64_t>(option), std::logic_error);
    EXPECT_THROW(static_cast<int>(option), std::logic_error);
    EXPECT_EQ("bar", static_cast<std::string>(option));
}
std::vector<xmlrpc_c::value>
paramList::getArray(unsigned int const paramNumber,
                     unsigned int const minSize,
                     unsigned int const maxSize) const {

    if (paramNumber >= this->paramVector.size())
        throw(fault("Not enough parameters", fault::CODE_TYPE));

    const xmlrpc_c::value * const paramP(&this->paramVector[paramNumber]);

    if (paramP->type() != value::TYPE_ARRAY)
        throw(fault("Parameter that is supposed to be an array is not", 
                    fault::CODE_TYPE));

    xmlrpc_c::value_array const arrayValue(*paramP);
    
    if (arrayValue.size() < minSize)
        throw(fault("Array parameter has too few elements",
                    fault::CODE_TYPE));
    
    if (arrayValue.size() > maxSize)
        throw(fault("Array parameter has too many elements",
                    fault::CODE_TYPE));

    return value_array(*paramP).vectorValueValue();
}
Exemple #4
0
double value_array(struct array *p1)
{
    int i,j;
    int n=(int)p1->m;
    double sum=0;
    if((int)p1->m==1)return(*modify_m(p1,1,1));
    else
    {
        i=1;
    for(j=1;j<=n;j++)
    {
        sum=sum+pow((-1),j+1)*(*modify_m(p1,i,j))*value_array(son_array(p1,i,j));
    }
    return sum;
    }

}