123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177 |
- package service
- import (
- "context"
- "flag"
- "math/rand"
- "testing"
- "time"
- "go-common/app/job/main/figure-timer/conf"
- "go-common/app/job/main/figure-timer/dao/mock_dao"
- "go-common/app/job/main/figure-timer/model"
- "go-common/library/log"
- "github.com/golang/mock/gomock"
- . "github.com/smartystreets/goconvey/convey"
- )
- var (
- s *Service
- c = context.TODO()
- )
- func init() {
- var err error
- flag.Set("conf", "../cmd/figure-timer-job-test.toml")
- if err = conf.Init(); err != nil {
- panic(err)
- }
- log.Init(conf.Conf.Log)
- s = New(conf.Conf)
- }
- func TestSplitMids(t *testing.T) {
- Convey("TEST split mids", t, func() {
- var (
- mids []int64
- concurrency int64 = 100
- midsSize int64 = 233
- )
- for i := int64(0); i < midsSize; i++ {
- mids = append(mids, i)
- }
- smids := splitMids(mids, concurrency)
- actualC := concurrency
- if actualC == 0 {
- actualC = 1
- }
- if actualC > midsSize {
- actualC = midsSize
- }
- So(len(smids), ShouldEqual, 233/3+1)
- total := 0
- for s := range smids {
- total += len(smids[s])
- }
- So(total, ShouldEqual, len(mids))
- })
- }
- func TestVersion(t *testing.T) {
- Convey("TEST week version", t, func() {
- var (
- ts = []time.Time{
- time.Date(2017, 9, 25, 0, 0, 0, 0, time.Local),
- time.Date(2017, 10, 1, 23, 59, 59, 99, time.Local),
- time.Date(2017, 9, 29, 12, 12, 12, 12, time.Local),
- }
- actual = time.Date(2017, 9, 25, 0, 0, 0, 0, time.Local)
- )
- for _, t := range ts {
- ver := weekVersion(t)
- So(ver, ShouldResemble, actual.Unix())
- }
- })
- }
- func TestCalcFigure(t *testing.T) {
- Convey("TEST calc offset", t, func() {
- var (
- max = 100.0
- k = 0.1
- x1 = 10.0
- x2 = 0.0
- )
- r := calcOffset(max, k, x1)
- So(r, ShouldEqual, 63)
- r = calcOffset(max, k, x2)
- So(r, ShouldEqual, 0)
- })
- Convey("TEST calc figure", t, func() {
- var (
- userInfo = &model.UserInfo{
- Mid: 233,
- Exp: 673,
- SpyScore: 100,
- ArchiveViews: 0,
- VIPStatus: 0,
- }
- actionCounters = []*model.ActionCounter{
- {
- Mid: 233,
- CoinCount: 0,
- ReplyCount: 0,
- CoinLowRisk: 0,
- CoinHighRisk: 0,
- ReplyLowRisk: 0,
- ReplyHighRisk: 0,
- ReplyLiked: 0,
- ReplyUnliked: 0,
- Version: time.Date(2017, 10, 2, 0, 0, 0, 0, time.Local),
- },
- }
- records = []*model.FigureRecord{
- {
- XPosCreativity: 0,
- XNegFriendly: 0,
- XPosFriendly: 0,
- XNegLawful: 80,
- Version: time.Date(2017, 9, 25, 0, 0, 0, 0, time.Local),
- },
- }
- weekVer = time.Date(2018, 1, 2, 0, 0, 0, 0, time.Local).Unix()
- )
- figure, newRecord := s.CalcFigure(c, userInfo, actionCounters, records, weekVer)
- So(figure, ShouldNotBeNil)
- So(newRecord, ShouldNotBeNil)
- So(figure.LawfulScore, ShouldEqual, 2859)
- So(newRecord.XNegLawful, ShouldEqual, 0)
- So(newRecord.XPosLawful, ShouldEqual, 0)
- })
- }
- func TestRank(t *testing.T) {
- rand.Seed(time.Now().Unix())
- rank.Init()
- for i := 0; i < 1; i++ {
- rank.AddScore(rand.Int31n(5000))
- }
- s.calcRank(c, time.Now().Unix())
- }
- func TestFix(t *testing.T) {
- ctrl := gomock.NewController(t)
- defer ctrl.Finish()
- mockDao := mock_dao.NewMockDaoInt(ctrl)
- mockDao.EXPECT().Figures(gomock.Any(), gomock.Any(), gomock.Any()).Return(
- []*model.Figure{
- {Mid: 1000},
- {Mid: 2000},
- },
- true,
- nil,
- ).AnyTimes()
- mockDao.EXPECT().CalcRecords(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).Return(
- []*model.FigureRecord{
- {Version: time.Date(2018, 1, 2, 0, 0, 0, 0, time.Local)},
- },
- nil,
- ).AnyTimes()
- mockDao.EXPECT().ActionCounter(gomock.Any(), gomock.Any(), gomock.Any()).Return(
- &model.ActionCounter{
- PayLiveMoney: 2000,
- Version: time.Date(2018, 1, 2, 0, 0, 0, 0, time.Local),
- },
- nil,
- ).AnyTimes()
- mockDao.EXPECT().PutCalcRecord(gomock.Any(), gomock.Any(), gomock.Any()).Return(nil).AnyTimes()
- s.dao = mockDao
- Convey("TEST fix record", t, func() {
- s.fixproc()
- })
- }
|