tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

TestInterval.cpp (2088B)


      1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
      2 /* This Source Code Form is subject to the terms of the Mozilla Public
      3 * License, v. 2.0. If a copy of the MPL was not distributed with this
      4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
      5 
      6 #include "MP4Interval.h"
      7 #include "gtest/gtest.h"
      8 
      9 using mozilla::MP4Interval;
     10 
     11 TEST(MP4Interval, Length)
     12 {
     13  MP4Interval<int> i(15, 25);
     14  EXPECT_EQ(10, i.Length());
     15 }
     16 
     17 TEST(MP4Interval, Intersection)
     18 {
     19  MP4Interval<int> i0(10, 20);
     20  MP4Interval<int> i1(15, 25);
     21  MP4Interval<int> i = i0.Intersection(i1);
     22  EXPECT_EQ(15, i.start);
     23  EXPECT_EQ(20, i.end);
     24 }
     25 
     26 TEST(MP4Interval, Equals)
     27 {
     28  MP4Interval<int> i0(10, 20);
     29  MP4Interval<int> i1(10, 20);
     30  EXPECT_EQ(i0, i1);
     31 
     32  MP4Interval<int> i2(5, 20);
     33  EXPECT_NE(i0, i2);
     34 
     35  MP4Interval<int> i3(10, 15);
     36  EXPECT_NE(i0, i2);
     37 }
     38 
     39 TEST(MP4Interval, IntersectionVector)
     40 {
     41  nsTArray<MP4Interval<int>> i0;
     42  i0.AppendElement(MP4Interval<int>(5, 10));
     43  i0.AppendElement(MP4Interval<int>(20, 25));
     44  i0.AppendElement(MP4Interval<int>(40, 60));
     45 
     46  nsTArray<MP4Interval<int>> i1;
     47  i1.AppendElement(MP4Interval<int>(7, 15));
     48  i1.AppendElement(MP4Interval<int>(16, 27));
     49  i1.AppendElement(MP4Interval<int>(45, 50));
     50  i1.AppendElement(MP4Interval<int>(53, 57));
     51 
     52  nsTArray<MP4Interval<int>> i;
     53  MP4Interval<int>::Intersection(i0, i1, &i);
     54 
     55  EXPECT_EQ(4u, i.Length());
     56 
     57  EXPECT_EQ(7, i[0].start);
     58  EXPECT_EQ(10, i[0].end);
     59 
     60  EXPECT_EQ(20, i[1].start);
     61  EXPECT_EQ(25, i[1].end);
     62 
     63  EXPECT_EQ(45, i[2].start);
     64  EXPECT_EQ(50, i[2].end);
     65 
     66  EXPECT_EQ(53, i[3].start);
     67  EXPECT_EQ(57, i[3].end);
     68 }
     69 
     70 TEST(MP4Interval, Normalize)
     71 {
     72  nsTArray<MP4Interval<int>> i;
     73  i.AppendElement(MP4Interval<int>(20, 30));
     74  i.AppendElement(MP4Interval<int>(1, 8));
     75  i.AppendElement(MP4Interval<int>(5, 10));
     76  i.AppendElement(MP4Interval<int>(2, 7));
     77 
     78  nsTArray<MP4Interval<int>> o;
     79  MP4Interval<int>::Normalize(i, &o);
     80 
     81  EXPECT_EQ(2u, o.Length());
     82 
     83  EXPECT_EQ(1, o[0].start);
     84  EXPECT_EQ(10, o[0].end);
     85 
     86  EXPECT_EQ(20, o[1].start);
     87  EXPECT_EQ(30, o[1].end);
     88 }