小编las*_*ain的帖子

用pytest测试类方法

在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()

python pytest

24
推荐指数
3
解决办法
2万
查看次数

使用while循环从串口读取

我在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)

go

7
推荐指数
1
解决办法
1万
查看次数

PostgreSQL 11:使用 json_object_agg() 的多个键值对

使用 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)

sql arrays postgresql json group-by

4
推荐指数
3
解决办法
4052
查看次数

Borwein在Fortran中计算Pi的算法收敛太快

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)

fortran pi

0
推荐指数
1
解决办法
168
查看次数

标签 统计

arrays ×1

fortran ×1

go ×1

group-by ×1

json ×1

pi ×1

postgresql ×1

pytest ×1

python ×1

sql ×1