/* * Copyright 2018 Allan Wang * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ package com.pitchedapps.frost import com.pitchedapps.frost.facebook.requests.zip import org.junit.Test import kotlin.test.assertTrue /** * Created by Allan Wang on 2017-06-14. */ class MiscTest { /** * Spin off 15 threads * Pause each for 1 - 2s * Ensure that total zipped process does not take over 5s */ @Test fun zip() { val now = System.currentTimeMillis() val base = 1 val data: LongArray = (0..15).map { Math.random() + base } .toTypedArray().zip(List::toLongArray) { Thread.sleep((it * 1000).toLong()) System.currentTimeMillis() - now }.blockingGet() println(data.contentToString()) assertTrue( data.all { it >= base * 1000 && it < base * 1000 * 5 }, "zip did not seem to work on different threads" ) } }