如何测试对象的其他特征函数

时间:2018-11-14 19:53:49

标签: rust

我有一个实现Template函数的encoder结构,该函数返回对Box ed Encoder的引用。

我还有一个实现FixedEncoder的{​​{1}}结构

我可以创建Encoder并取出Template,但是如何测试Encoder的功能?我只是出于测试目的而获得FixedEncoder,因此“不安全”的解决方案很好(尽管首选安全的解决方案)

在下面的示例中,我得到了错误

FixedEncoder

示例(playground):

error[E0599]: no method named `length` found for type `&std::boxed::Box<(dyn Encoder + 'static)>` in the current scope

1 个答案:

答案 0 :(得分:0)

我能够使用import pandas as pd # Initialize example input dataframe col_names = ['id', '1', 'value1', '2', 'value2', '3', 'value3'] data = [ [1, 'ph', 7, 'temp', 44, 'cond', 3], [2, 'temp', 45, 'cond', 5, 'ph', 5], [3, 'temp', 12, 'ph', 5, 'cond', 8], ] df = pd.DataFrame(data, columns=col_names) # Reshape dataframe df2 = pd.concat([ df[['id', '1', 'value1']].rename(columns={'1': 'parameter', 'value1': 'value'}), df[['id', '2', 'value2']].rename(columns={'2': 'parameter', 'value2': 'value'}), df[['id', '3', 'value3']].rename(columns={'3': 'parameter', 'value3': 'value'}), ]) df2 = df2.pivot(index='id', columns='parameter', values='value') 完成此操作。

  1. In [3]: df2 Out[3]: parameter cond ph temp id 1 3 7 44 2 5 5 45 3 8 5 12 添加Any声明
  2. as_any添加Encoder函数
  3. 在恢复后的as_any上使用FixedEncoder

{{3}}

.as_any().downcast_ref().unwrap()