在pytest的文档中列出了测试用例的各种示例.他们中的大多数都展示了功能测试.但我错过了一个如何测试类和类方法的例子.假设我们在cool.py要测试的模块中有以下类:
class SuperCool(object):
def action(self, x):
return x * x
Run Code Online (Sandbox Code Playgroud)
相应的测试课如何tests/test_cool.py看?
class TestSuperCool():
def test_action(self, x):
pass
Run Code Online (Sandbox Code Playgroud)
怎么test_action()用来测试action()?
我在Go写了一个简短的程序,通过串口与传感器通信:
package main
import (
"fmt"
"github.com/tarm/goserial"
"time"
)
func main() {
c := &serial.Config{Name: "/dev/ttyUSB0", Baud: 9600}
s, err := serial.OpenPort(c)
if err != nil {
fmt.Println(err)
}
_, err = s.Write([]byte("\x16\x02N0C0 G A\x03\x0d\x0a"))
if err != nil {
fmt.Println(err)
}
time.Sleep(time.Second/2)
buf := make([]byte, 40)
n, err := s.Read(buf)
if err != nil {
fmt.Println(err)
}
fmt.Println(string(buf[:n]))
s.Close()
}
Run Code Online (Sandbox Code Playgroud)
它工作正常,但在写入端口后,我必须等待大约半秒才能开始读取它.我想使用while循环而不是time.Sleep读取所有传入的数据.我的尝试不起作用:
buf := make([]byte, 40)
n := 0
for {
n, _ := s.Read(buf)
if n > …Run Code Online (Sandbox Code Playgroud) 使用 PostgreSQL 11,聚合函数json_object_agg()从键和值创建一个 JSON 对象,就像当前的正常运行时间:
# SELECT json_object_agg('uptime', date_trunc('second',
current_timestamp - pg_postmaster_start_time()));
Run Code Online (Sandbox Code Playgroud)
这将输出 JSON 对象:
{ "uptime" : "00:45:55" }
Run Code Online (Sandbox Code Playgroud)
如何将多个键值对合并为一个对象?例如,如何将 PostgreSQL 版本字符串添加到对象中?
# SELECT json_object_agg('version', version());
Run Code Online (Sandbox Code Playgroud)
所需的结果可能如下所示:
{
"uptime": "00:60:01",
"version": "PostgreSQL 11.7"
}
Run Code Online (Sandbox Code Playgroud) Fortran 中具有四次收敛的Borwein 算法的以下实现虽然可以计算 Pi,但收敛得太快了。理论上,a四次收敛到 1/?。在每次迭代中,正确数字的数量因此增加了四倍。
! pi.f90
program main
use, intrinsic :: iso_fortran_env, only: real128
implicit none
real(kind=real128), parameter :: CONST_PI = acos(-1._real128)
real(kind=real128) :: pi
integer :: i
do i = 1, 10
pi = borwein(i)
print '("Pi (n = ", i3, "): ", f0.100)', i, pi
end do
print '("Pi:", 11x, f0.100)', CONST_PI
contains
function borwein(n) result(pi)
integer, intent(in) :: n
real(kind=real128) :: pi
real(kind=real128) :: a, y
integer :: i
y = sqrt(2._real128) …Run Code Online (Sandbox Code Playgroud)